原题:http://codeforces.com/gym/100863/problem/C
Problem C
思路:
这题翻译一下就是:给出一个数列的前两项a[1],a[2],通项公式为:a[n]=a[n-2]-a[n-1]。输出数列中第一个负数以及它的下标。若没有则输出两个0.
这道题我能过纯粹靠运气。做题的时候觉得a[n]全>=0的数列是不存在的,然而第四个点TLE了。所以我设置计数器数到>=300个月时直接停止,居然一发AC。
现在我还是不太清楚这道题到底应该怎么解orz
源代码:
#include <cstdio> #include <cstdlib> __int32 p1,p2,p3=0; int month=2; int main() { scanf("%d%d",&p1,&p2); while (p3>=0) { month++; if (month>300) { printf("0 0\n"); exit(0); } p3=p1-p2; p1=p2; p2=p3; } printf("%d %d\n",month,p3); return 0; }
探讨CodeForces健身房题目C的解决方案,介绍了一个通过设置计数器来找到数列中第一个负数及其位置的方法,并分享了作者的解题经验。

208

被折叠的 条评论
为什么被折叠?



