过几天就要CSP考试了,考试中途还是看不到评测结果的…结果今天卡uva一道水题…OMG
是时候反思一下了:
题目大意:
代码一看很简单,却不容易AC:wtcl
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL; //运算过程中有可能超过int范围的,事先没意识到...wtcl
int main() {
int a,b;
while(cin>>a>>b) {
cout<<a<<" "<<b<<" "; //题意是在输出的时候不改变原顺序...wtcl
if(a>b) swap(a,b); //题意没说输入一定小在前、大在后...wtcl
LL maxn=-1e18;
for(int i=a;i<=b;i++) {
LL m=i;
LL cnt=0;
while(m!=1) {
if(m&1) m=3*m+1;
else m=m/2;
cnt++;
}
maxn = max(maxn,cnt+1);
}
cout<<maxn<<endl;
}
return 0;
}
尽管一般国内的oj题不会有这么多坑,但是uva pro100这道题还是能给我们一些启示:
- 审题重要(尤其是英文题面GG)
- 应事先对数据规模进行预判
再过十天就要考试了,oi模式下的细节更应该注意啊啊啊
2019/9/4谨记
ps:欢迎关注数构算法公众号:Design of Algorithm