[TIOJ] 1088. [Interactive] 取石頭(二)
題目連結: http://tioj.infor.org/problems/1088 標準的nim遊戲。本題如果知道nim的玩法應該就秒解了,因為nim的遊戲方法就是讓所有數xor起來為零,因為當一個人拿到xor直為零的時候他必定沒辦法再讓版面的xor值為零,而且你也一定可已把盤面xor值弄成零,所以就看兩下吧XD p.s附個我寫的lib1088.h lib1088.h #include <cstdio>
int __stones[3];
void Initialize(int *a,int *b,int *c){
printf("How many stones:");
scanf("%d%d%d",a,b,c);
__stones[0]=*a;__stones[1]=*b;__stones[2]=*c;
}
void Take_Stone(int pile_no, int num, int *com_pile, int *com_num){
__stones[pile_no-1]-=num;
printf("Now: ");
for(int i=0;i<3;i++) printf("%d ",__stones[i]);
puts("");
bool flag=1;
for(int i=0;i<3;i++)
if(__stones[i]>0)flag=0;
if(flag){
puts("You Lose!");
exit(0);
}
printf("Chosse and sum:");
scanf("%d%d",com_pile, com_num);
__stones[(*com_pile)-1]-=(*com_num);
for(int i=0;i...