摘要: /*如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的取法,那么先取者肯定获胜。总之,要保持给对手留下(m+1)的倍数,就能最后获胜*/#includeusing namespace std;int main(){ int c; while(cin>>c){ int n, m; for(int i=0; i& 阅读全文
posted @ 2014-02-05 11:10 静坐观雨 阅读(260) 评论(0) 推荐(0)
摘要: #include#includeusing namespace std;const int maxn = 1000 + 10;int c;int n, m;struct Node{ int p; int h;}node[maxn];bool cmp(Node a, Node b){ //升序 return a.p >c; while(c--){ cin>>n>>m; for(int i=0; i>node[i].p>>node[i].h; } sort(node, node + m, cmp); double sum = 0; for(int i 阅读全文
posted @ 2014-02-05 10:24 静坐观雨 阅读(199) 评论(0) 推荐(0)