Array Game

Link

题目大意: A l i c e Alice Alice 与 B o b Bob Bob ,从一个长度为 n n n 的数组中轮流从数组首部或尾部取数, A l i c e Alice Alice 先手。取到的数放入一个原本为空的新数组中,且要保证新数组严格单调递增,最先不能操作的人输,问谁赢。

首先我们可以考虑一个情况,若此时在某种条件下,只能放首端或者只能放尾端才能维持新数组的递增,也就是别无选择的情况,那么没有被选择的另一端就被堵住了,永远也没有可能被选择了,这个时候可选择的一端的连续递增的数就是游戏的必然走势了,我们根据总步数判断奇偶性就可以判断谁输谁赢了。

那么如果遇到可以决策的情况,也就是在两端都可以选择的情况下,假定此时某端为 A A A ,另一端为 B B B ,且 A ≥ B A≥B A≥B ,那么如果我拿了 A A A ,那么 B B B 端就被永远堵住了,游戏走势就确定了,此时的人可以判断选择 A A A 能否一定赢得游戏,如果能,自然直接选择 A A A ,这样此时执行选择的人必赢。如果选 A A A 必输,那么这个人肯定不选 A A A ,于是就只能选 B B B 。只要先 O ( n ) O(n) O(n) 预处理以 i i i 为起点的正反两个方向的连续上升长度,这样一步要么能直接判断是否能赢,要么可以使得原数组长度减一, O ( n ) O(n) O(n) 即可实现。

#include <bits/stdc++.h>using namespace std;const int N = 2e5 + 10;int n, a[N], pre[N], lst[N], bk = -1;int main() {#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);
#endifscanf("%d", &n);for (int i = 1; i <= n; ++i) {scanf("%d", &a[i]);}pre[n] = 1;for (int i = n - 1; i >= 1; --i) {if (a[i] < a[i + 1]) pre[i] = pre[i + 1] + 1;else pre[i] = 1;}lst[1] = 1;for (int i = 2; i <= n; ++i) {if (a[i] < a[i - 1]) lst[i] = lst[i - 1] + 1;else lst[i] = 1;}int i = 1, j = n, cur = 1;while(i < j) {if (a[i] >= a[j]) {int steps = min(pre[i], j - i + 1);if (a[i] > bk && ((n - j + i - 1 + steps) & 1) == (cur & 1)) {cout << (cur == 1 ? "Alice" : "Bob");return 0;}else if (a[j] > bk) {bk = a[j];j--;}else {cout << (cur == 1 ? "Bob" : "Alice");return 0;}}else {int steps = min(lst[j], j - i + 1);if (a[j] > bk && ((n - j + i - 1 + steps) & 1) == (cur & 1)) {cout << (cur == 1 ? "Alice" : "Bob");return 0;}else if (a[i] > bk) {bk = a[i];i++;}else {cout << (cur == 1 ? "Bob" : "Alice");return 0;}}cur ^= 1;}cout << (cur == 1 ? "Alice" : "Bob");
}

Bubble Cup 14 - Finals Online Mirror (Unrated, ICPC Rules, Teams Preferred, Div. 2) E. Array Game相关推荐

  1. Bubble Cup 14 - Finals Online Mirror (Unrated, ICPC Rules, Teams Preferred, Div. 2) J. Robot Factor

    翻译: 你已经收到了Bubble机器人的数据.你知道你的任务是制造工厂设施,但在你开始之前,你需要知道工厂有多大,有多少房间.当你查看数据时,你会发现你有这个结构的尺寸,它是矩形的:N x M. 然后 ...

  2. Bubble Cup 14 - Finals Online Mirror (Unrated, ICPC Rules, Teams Preferred, Div. 2) J. Robot Factory

    传送门 题意: 给你一个矩阵,矩阵中的每一个数的二进制串可以表示出该位置周围的围墙信息,让你求出所有的房间大小. 思路: 建图,搜索,一气呵成. #include<iostream> #i ...

  3. COMPFEST 14 - Preliminary Online Mirror (Unrated, ICPC Rules, Teams Preferred) H. Hot Black Hot Whit

    翻译: 有一天,你会成为查内克医生的助理.查内克医生给你的第一个任务就是保管好他的魔法宝石. 查内克博士有

  4. COMPFEST 14 - Preliminary Online Mirror (Unrated, ICPC Rules, Teams Preferred) A、B、G、H、M(数学、构造、图论)

    A. Accumulation of Dominoes 签到,数砖块 #include<bits/stdc++.h> #define int long long using namespa ...

  5. Bubble Cup 12 - Finals [Online Mirror, unrated, Div. 1] F. Workout plan(优先队列)

    有一个人要锻炼 n 天,初始时战斗力为 k,每天都要达到 x[i] 才可以,每天都有一款饮料价格为 c[i],每一款饮料都可以让他的战斗力增加 A,问最少要花都少钱才能完成每天的计划,如果有一天不能输 ...

  6. 2021-2022 ICPC, NERC, Northern Eurasia Onsite (Unrated, Online Mirror, ICPC Rules, Teams Preferred)

    2021-2022 ICPC, NERC, Northern Eurasia Onsite (Unrated, Online Mirror, ICPC Rules, Teams Preferred) ...

  7. Codeforces Bubble Cup 8 - Finals [Online Mirror] B. Bribes lca

    B. Bribes Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/575/problem/B De ...

  8. Bubble Cup X - Finals [Online Mirror] G. Bathroom terminal(STL)

    Description Smith wakes up at the side of a dirty, disused bathroom, his ankle chained to pipes. Nex ...

  9. 2020-2021 ICPC, NERC, Northern Eurasia Onsite (Unrated, Online Mirror, ICPC Rules, Teams Preferred)

    D. Digits 题意 给定一个长度为n的数组a和一个k,求数组中最大的元素乘积的尾数为k (每个元素只能用一次),输出方案数 1<= ai <= 10001 <= n <= ...

最新文章

  1. GitHub接连封杀开源项目惹众怒,CEO亲自道歉
  2. 电力管理信息系统数据库表总结
  3. 现代密码学3.4--CPA安全,多次加密
  4. ITK:创建三角形四边形网格
  5. 美味果冻(牛客练习赛53B)
  6. solr crud_Spring Data Solr教程:CRUD(差不多)
  7. 数据库范式(1NF 2NF 3NF BCNF)详解
  8. 朱啸虎回应“美团滴滴合并”;小米成世界第四大手机制造商;Ant Design 3.26.1 发布 | 极客头条...
  9. 完美解决doc、docx格式word转换为Html
  10. 苹果收购倒闭智能家居安防初创公司 Lighthouse AI 专利...
  11. Groovy的规则脚本引擎实战
  12. OSPF学习小结与实验
  13. Python深度学习实现DIY专属个人表情包
  14. AP微观和宏观经济学考察重点分析
  15. 视频加密选择在线加密还是软件加密好?
  16. WAIC预热 | 赋能企业数字化转型,容智信息×亿欧“AI商业落地论坛”重磅来袭
  17. CocosCreator之微信小游戏的抽奖转盘
  18. xilinx 官方技术资料
  19. 用于自动驾驶汽车的传感器融合
  20. 听说reStructuredText不错

热门文章

  1. 屌丝逆袭,渣本毕业1年多进阿里
  2. 09年的老电脑说想看一下CPU温度,作为Python工程师,怎能安装X大师?
  3. 考拉 css,LESS/Sass 编译工具Koala介绍
  4. 微信小程序:强大新UI装逼神器
  5. SQL SERVER 日期格式化
  6. 计算机不断自动重启,计算机不断自动重启[解决方案]
  7. android面试——成都卡德智能科技有限公司
  8. python graphviz_python下graphviz安装
  9. mysql服务哪里启动_mysql服务怎么启动和关闭?
  10. 跟着王进老师学开发之C#篇第五季:图书管理系统-王进-专题视频课程