社区讨论
题目是不是数据过水
P6243 [USACO06OPEN] The Milk Queue G参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mhiz9sur
- 此快照首次捕获于
- 2025/11/03 18:09 4 个月前
- 此快照最后确认于
- 2025/11/03 18:09 4 个月前
先按 升序排一遍,再按 降序来一遍,两者取最小就能过?!
CPP#include<bits/stdc++.h>
using namespace std;
# define N 25005
pair<int,int>S[N];
int n;
bool cmp(pair<int,int>x,pair<int,int>y)
{
return x.second>y.second;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&S[i].first,&S[i].second);
}
sort(S+1,S+1+n,cmp);
long long a=0,b=0,t=0;
for(int i=1;i<=n;i++)
{
if(a+S[i].first>=t)
{
t=a+S[i].first+S[i].second;
}else t=t+S[i].second;
a=a+S[i].first;
}
sort(S+1,S+1+n);
a=0;
b=0;
long long ans=0;
for(int i=1;i<=n;i++)
{
if(a+S[i].first>=ans)
{
ans=a+S[i].first+S[i].second;
}else ans=ans+S[i].second;
a=a+S[i].first;
}
printf("%lld\n",min(t,ans));
return 0;
}
有人能证明或证伪吗,玄关QWQ
回复
共 2 条回复,欢迎继续交流。
正在加载回复...