以最近的思考题目和做题目的状态来看,西安是白去了。不过,要慢慢调整。。。
本来以为,西安的邀请赛绝对是一个分水岭。目前看来还没有到达预期的目的。。可能是根本没有写赛后总结的原因吧?
题目链接:点击打开链接
第一眼看到是时候,以为是一个简单的bash博弈的变形。后来,想了一下,不是这样的。
换了一种思路:1肯定是一个必败态。那么1+(1,3,7,8)一定是一个必胜态。。也就是说必败态+(1.3.7.8)一定是一个必胜态。。。
Ps:为什么?
代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int N=1e4+10;
bool ans[N];
int main(){
for(int i=1;i<=N-5;i++){
if(ans[i]==0){
ans[i+1]=true;ans[i+3]=true;
ans[i+7]=true;ans[i+8]=true;
}
}
int T;
scanf("%d",&T);
while(T--){
int n;
scanf("%d",&n);
printf("%d\n",ans[n]);
}
return 0;
}
打印出前1000项,可以看出,必败态n%15==1||3||5||7的。所以
code again:
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int main(){
int T;
scanf("%d",&T);
while(T--){
int n;
scanf("%d",&n);
n=n%15;
if(n==1||n==3||n==5||n==7) puts("0");
else puts("1");
}
return 0;
}
需要好好总结+思考!!!!