标签:trap single scan elves which lin arc ast cli
贪心!
局部贪心。
现在前面有一个已经叠好的罗汉,而我们要在下面塞两头牛A B
为了让A在B上,有sum + a.weight - b.strengh < sum + b.weight - a.strengh
也就是说,前面的决策不影响这里,这里的决策也不影响前面
只要将队列按这个模式排好就行
1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 using namespace std; 5 6 struct node{ 7 long long str,wei; 8 }arr[1000000]; 9 10 bool cmp(const node &a,const node &b){ 11 return (a.wei-b.str)<(b.wei-a.str); 12 } 13 14 long long n,ret = -10000000000; 15 16 int main(){ 17 scanf("%lld",&n); 18 for(int i = 1;i <= n;i++){ 19 scanf("%lld%lld",&arr[i].wei,&arr[i].str); 20 } 21 22 sort(arr+1,arr+1+n,cmp); 23 24 long long sum = 0; 25 for(int i = 1;i <= n;i++){ 26 // printf("%d/%d ",arr[i].wei,arr[i].str); 27 ret = max(ret,sum-arr[i].str); 28 sum += arr[i].wei; 29 } 30 31 printf("%lld",ret); 32 return 0; 33 }
1629: [Usaco2007 Demo]Cow Acrobats
标签:trap single scan elves which lin arc ast cli
原文地址:http://www.cnblogs.com/Chorolop/p/7501036.html