C. 还记得那年的煎饼果子吗(思维,贪心,大一期中考核)
题目来源:https://codeforces.com/gym/547381/problem/C
//
题意:有n种煎饼果子,吃完第i种煎饼果子需要ai的时间,lyc和llf不能同时吃一个种类的煎饼果子,问两个人都吃完各自所有的煎饼果子的最小时间。
//
思路:“赛时的出发点就错了,后面一直在浪费时间写模拟,我没有想清楚如果两个人同时吃,等的情况。”就贪心,一个人从小往大吃到次大的,另一个人先吃最大的。此时就存在两种情况了:1:从小到大的都吃完了,吃大的还没吃完。2:从小到大的还在吃的途中,另一个人大的就吃完了。结果是如何,懂。
//
题解:
点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
int n,sum=0;
cin>>n;
vector<int>a(n+1,0);
for(int i=1;i<=n;i++){cin>>a[i];sum+=a[i];}
sort(a.begin()+1,a.begin()+1+n);
int tmp=0;//tmp:从小的往大的吃
for(int i=1;i<n;i++){
tmp+=a[i];
}
if(tmp<=a[n]){cout<<2*a[n]<<endl;}
else{cout<<sum<<endl;}
return 0;
}
浙公网安备 33010602011771号