hdu1896
http://acm.hdu.edu.cn/showproblem.php?pid=1896
题意:Sempr在走路时,如果遇到为奇数的石头,就把它往前扔,遇到为偶数的石头则不处理,要是同一位置有多个石头,则先扔最重的石头(也就是扔的最近的那个石头),要你求扔的石头离初始位置的最大距离。
#include<iostream> #include<queue> using namespace std; struct ss { friend operator<(const ss a,const ss b) { if(a.p>b.p) return 1; else if(a.p==b.p&&a.q>b.q) return 1; else return 0; } int p,q; }; int main() { int t; scanf("%d",&t); while(t--) { priority_queue<ss>Q; int n,i; scanf("%d",&n); for(i=1;i<=n;i++) { ss k; scanf("%d%d",&k.p,&k.q); Q.push(k); } int m=0,sum=0; ss tmp; while(!Q.empty()) { m++; if(m%2) { tmp.p=Q.top().p+Q.top().q; tmp.q=Q.top().q; Q.pop(); Q.push(tmp); } else { sum=Q.top().p; Q.pop(); } } printf("%d\n",sum); } return 0; }
朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。