标签:operator contain from wrong tle time ++ blog 出发点
2 2 1 5 2 4 2 1 5 6 6Sample Output
11 12
题意是求从出发点到最后一块石头的距离,遇到奇数石头可以扔,偶数不管,那么就是创建优先队列,扔出去的,按照扔出去以后的位置和原来能扔的距离入队就好了。不停直到队列为空。
代码:
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <queue> using namespace std; struct stone { int loc,dis; friend bool operator <(stone a,stone b) { if(a.loc==b.loc)return a.dis>b.dis; return a.loc>b.loc; } }temp,cn; int main() { int T,n,p,d,loca=0,c=0,maxi=0; priority_queue <stone>q; scanf("%d",&T); while(T--) { loca=c=maxi=0; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d%d",&p,&d); temp.loc=p,temp.dis=d; q.push(temp); } while(!q.empty()) { c++; cn=q.top(); q.pop(); if(loca<cn.loc)loca=cn.loc; if(c%2==1) { temp.loc=loca+cn.dis; if(maxi<temp.loc)maxi=temp.loc; temp.dis=cn.dis; q.push(temp); } } printf("%d\n",maxi>loca?maxi:loca); } }
标签:operator contain from wrong tle time ++ blog 出发点
原文地址:http://www.cnblogs.com/8023spz/p/7217312.html