题目大意:有$n$个采石场,每行一个$m_i$一个$x_i$,表示第$i$个采石场有$m_i$辆车,这个采石场中车中的石子为从$x_i$开始的自然数。Nim游戏若先手赢输出"tolik",后手赢输出"bolik"。

题解:Nim游戏,可以发现连续的四个自然数且第一个数可被4整除,那么它们的异或值为0

卡点:1.未考虑$m_i < 4$的情况

  2.未考虑$x_i < 4$的情况

C++ Code:

#include <cstdio>
#define int long long
using namespace std;
int n, x, m, ans;
inline int min(int a, int b) {return a < b ? a : b;}
int calc(int x) {
int tmp = x % 4;
if (!tmp) return x;
else if (tmp == 1) return 1;
else if (tmp == 2) return x + 1;
else if (tmp == 3) return 0;
}
int run(int x, int m) {
return calc(x - 1) ^ calc(x + m - 1);
}
//int run(int x, int m) {
// int tmp = (x - 1) / 4 + 1, res = 0;
// for (int i = x; i < min(x + m, tmp * 4); i++) res ^= i;
// tmp = (x + m - 1) / 4;
// for (int i = tmp * 4; i <= x + m - 1; i++) res ^= i;
// return res;
//}
signed main() {
scanf("%lld", &n);
while (n--) {
scanf("%lld%lld", &x, &m);
ans ^= run(x, m);
}
if (ans) puts("tolik");
else puts("bolik");
return 0;
}

  

最新文章

  1. Java POI 解析word文档
  2. 项目vue2.0仿外卖APP(一)
  3. 《bootstrap》实战---作为了解
  4. log4j PatternLayout 输出解析
  5. AC日记——配对碱基链 openjudge 1.7 07
  6. java编程思想-java IO系统
  7. shell脚本中切换用户执行相应的命令或者shell脚本的方法
  8. java开发前奏
  9. Struts2中通配符的使用
  10. paper 77:[转载]ENDNOTE使用方法,常用!
  11. 收藏本网站兼容火狐IE
  12. asp调用.net xml web services
  13. ☀【Node】处理POST请求
  14. onSubmit的使用
  15. 【转】java中byte, int的转换, byte String转换
  16. 《TCP/IP作品详细解释2:达到》注意事项--ARP:地址解析协议
  17. [刷题]Codeforces 786A - Berzerk
  18. metasploit联动beef启动
  19. H5之postMessage 。实现跨域
  20. PSR-0 规范实例讲解 -- php 自动加载

热门文章

  1. Post 和 Get的区别?
  2. JZOJ 5941. 乘
  3. 数据分析处理库Pandas——常用操作
  4. python之三元运算
  5. node获取URL数据
  6. Notepad++删除空行的多种实现办法
  7. define 和 const常量有什么区别?
  8. 『AngularJS』创建 Service
  9. (1)分布式下的爬虫Scrapy应该如何做-安装
  10. Loadrunner11.0安装与简单使用