智算之道2020第三场初赛试题及参考答案

上传人:ja****ee 文档编号:143102277 上传时间:2020-08-26 格式:DOC 页数:12 大小:62.50KB
返回 下载 相关 举报
智算之道2020第三场初赛试题及参考答案_第1页
第1页 / 共12页
智算之道2020第三场初赛试题及参考答案_第2页
第2页 / 共12页
智算之道2020第三场初赛试题及参考答案_第3页
第3页 / 共12页
智算之道2020第三场初赛试题及参考答案_第4页
第4页 / 共12页
智算之道2020第三场初赛试题及参考答案_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《智算之道2020第三场初赛试题及参考答案》由会员分享,可在线阅读,更多相关《智算之道2020第三场初赛试题及参考答案(12页珍藏版)》请在金锄头文库上搜索。

1、智算之道2020第三场初赛试题T1 水杯小 D 有一个能显示温度的杯子. 其原理是杯盖上的一个传感器. 只有在杯子内的水的体积大于等于某个数 LL的时候传感器才能显示水温,并且如果水温不在 A,B 内传感器也无法显示水温.注意,这里温度对水的体积没有影响初始水杯为空,有 n 次操作,操作分为三种:1 x 表示把水温变成 x.2 x 表示把水的体积变成 x.3 查询传感器的显示情况. 如果不能显示水温输出 GG,否则输出水温.输入格式第一行四个整数 n,L,A,B,含义如题目所示.接下来 n 行,每行一个整数 opt 或两个整数 opt,x,表示执行操作 opt.输出格式对于所有操作 3 输出结

2、果,每行一个答案.数据规模与约定对于 100% 的数据, 1n1000,273AB100,1L1000,1opt3.对于操作 1,273x100;对于操作 2,1x1000.样例输入5 2 1 31 52 331 23样例输出GG2【参考答案】1. #include 2.3. using namespace std;4.5. int main()6. 7. int n, L, A, B, temp, V;8. cin n L A B;9.10. for(int i = 0; i type;14. if(type = 1)15. 16. cin x;17. temp = x;18. 19. el

3、se if(type = 2)20. 21. cin x;22. V = x;23. 24. else if(type = 3)25. 26. if(temp = A & temp = L)27. 28. cout temp endl;29. 30. else31. 32. cout GG endl;33. 34. 35. 36. return 0;37. T2 鳖Alice 和 Bob 在打扑克.有一副点数为 1n 的扑克牌,除了两种点数只有三张牌以外,其余的点数都有四张牌,点数相同的牌认为是相同的. 给出一个牌的顺序,Alice 和Bob 轮流按顺序摸牌,Alice 先手,当某个人新摸到的

4、牌已经在 Ta 的手牌中存在时,把这两张牌同时从 Ta 的手牌中移除. 注意手牌的顺序是摸牌的顺序.摸完牌后,从 Alice 开始,重复以下过程:如果有人没有手牌了,那么没有手牌的人获胜,结束.计数器 cnt 加一把对方的第一张手牌放到自己的手牌中,使其成为自己的最后一张手牌. 如果该牌之前已在自己的手牌中出现过,那么把这两张牌同时从自己的手牌中移除.由对方继续操作.给出牌的顺序,求出 cnt 的值. 可以证明在有限步内游戏一定会结束.输入格式第一行一个整数 nn ,表示点数为1cdots n1n.第二行 4n-24n2 个正整数,表示牌的顺序. 保证恰好有两种点数出现了三次,其余点数出现四次

5、.输出格式一行一个整数表示 cnt 的值.数据规模与约定对于50% 的数据,3n100。对于 100% 的数据,3n100000。样例输入51 1 1 1 2 2 2 2 3 3 3 3 4 4 4 5 5 5样例输出1【参考答案】1. #include 2.3. const int maxN = 4 * 100007;4. int amaxN, bmaxN;5. int lastPosAmaxN, lastPosBmaxN;6. bool aHasmaxN, bHasmaxN;7.8.9. int main()10. 11. /freopen(T2.txt, r, stdin);12.13.

6、14. int n;15. scanf(%d, &n);16.17. int cntA = 0, cntB = 0, posA = 1, posB = 1;18.19. /第一阶段,摸牌20. for(int i = 1, x; i = 4 * n - 2; i+)21. 22. scanf(%d, &x);23.24. if(i % 2)25. 26. aposA = x;27. if(aHasx)28. 29. cntA-;30. 31. else32. 33. cntA+;34. lastPosAx = posA;35. 36.37. posA+;38. aHasx = !aHasx;3

7、9. 40. else41. 42. bposB = x;43. if(bHasx)44. 45. cntB-;46. 47. else48. 49. cntB+;50. lastPosBx = posB;51. 52.53. posB+;54. bHasx = !bHasx;55. 56. 57.58. /第二阶段,抽对方的牌59. bool aliceTurn = true; /Alice先抽60. int ans = 0;61. int j = 1, k = 1;62. while(cntA & cntB)63. 64. ans+;65. if(aliceTurn)/Alice抽Bob的

8、牌66. 67. while(j posB)68. 69. if(bHasbj & lastPosBbj = j)70. 71. bHasbj = false; /bj被Alice抽走72. cntB-;73.74. if(aHasbj)75. 76. cntA-;77. 78. else79. 80. cntA+;81. lastPosAbj = posA;82. aposA+ = bj;83. 84. aHasbj = !aHasbj;85. j+;86. break;87. 88. else89. 90. j+;91. 92. /for93. 94. else /Bob抽Alice的牌95. 96. while(k posA)97. 98. if(aHasak)99. 100. aHasak = false; /ak被Bob抽走101. cntA-;102.103. if(bHasak)104. 105. cntB-;106. 107. else108. 109. cntB+;110. lastPosBak = posB;111. bposB+ = ak;112. 113.114. bHasak = !bHasak;115. k+;116.117. break;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 初中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号