社区讨论

神秘做法95分WA#2求调

P14635[NOIP2025] 糖果店参与者 1已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mikc3c0a
此快照首次捕获于
2025/11/29 21:35
3 个月前
此快照最后确认于
2025/12/01 15:00
3 个月前
查看原帖
CPP
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,m,mn=1e18,p;
struct node
{
	ll x,y;
}cd[100005];
bool cmp(node a,node b)
{
	if(a.x==b.x) return a.y<b.y;
	else return a.x<b.x;
}
ll check(ll sum,ll nk)
{
	ll w=m-sum;
	nk+=(w/mn)*2;
	if(w-(w/mn)*mn>cd[p].x) nk++;
	return nk;
} 
int main() 
{
    cin >> n >> m;
    for(int i=1;i<=n;i++)
    {
    	cin >> cd[i].x >> cd[i].y;
    	mn=min(mn,cd[i].x+cd[i].y);
	}
	sort(cd+1,cd+n+1,cmp);
	for(int i=1;i<=n;i++) if(cd[i].x+cd[i].y==mn) p=i;//p是x+y最小的位置 
	ll sum=0,ans=check(0,0),mk=0;
	double pn=mn/2;
	for(int i=1;i<=n;i++)
	{
		if(i==p) continue;
		sum+=cd[i].x;
		if(sum>m) break;
		mk++;
		ans=max(ans,check(sum,mk));
	}
	cout << ans;
    return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...