博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷P1247 取火柴游戏
阅读量:5864 次
发布时间:2019-06-19

本文共 712 字,大约阅读时间需要 2 分钟。

经典NIM游戏。

取XOR和即可。

注意输出方案时,找到大于异或和sum的,变为a[i] ^ sum即可。

1 #include 
2 const int N = 500010; 3 int a[N]; 4 int main() { 5 int n, sum = 0; 6 scanf("%d", &n); 7 for(int i = 1; i <= n; i++) { 8 scanf("%d", &a[i]); 9 sum ^= a[i];10 }11 12 if(!sum) {13 printf("lose");14 return 0;15 }16 17 for(int i = 1; i <= n; i++) {18 if((a[i] ^ sum) <= a[i]) {19 printf("%d %d\n", a[i] - (a[i] ^ sum), i);20 a[i] = a[i] ^ sum;21 break;22 }23 }24 for(int i = 1; i <= n; i++) {25 printf("%d ", a[i]);26 }27 return 0;28 }
AC代码

 

转载于:https://www.cnblogs.com/huyufeifei/p/9649050.html

你可能感兴趣的文章
[转]JS获取URL传参方法
查看>>
HDU-1066 Last non-zero Digit in N!
查看>>
WEBSERVICE-AXIS2服务端代码
查看>>
第一章 C语言概述
查看>>
java中字符串的非空判断
查看>>
关于int main(int argc,char* argv[])详解
查看>>
linux-软件下载安装
查看>>
C# DateTime判断时间
查看>>
C# Combox控件绑定自定义数据
查看>>
java错题本
查看>>
apply()与call()的区别
查看>>
QT 读取txt文件的几种方法
查看>>
centos7下误执行chmod -R 777 /后的权限修复方法
查看>>
SIGSEGV 和 SIGBUS & gdb看汇编
查看>>
argparse
查看>>
CSS布局
查看>>
Model
查看>>
第五周 IP通信基础回顾
查看>>
Java NIO学习笔记八 Pipe
查看>>
php抽象类
查看>>