当前位置: 首页 > news >正文

博弈论,CF 1600E - Array Game

目录

一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

二、解题报告

1、思路分析

2、复杂度

3、代码详解


一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

1600E - Array Game

二、解题报告

1、思路分析

记最长递增前缀长度为L,最长递减后缀长度为R

必胜态:L R 一奇一偶 或者 二者均奇

否则为必败态
证明:

先考虑一侧,比如递增前缀,如果L是偶数,那么我们先手在左侧拿,后手一定也能在左侧拿

如果一直保持左侧拿,先手就输了

如果LR都是偶数,那么就算先手前后来回换,我们一定会走到一侧没法拿另一侧为偶数,然后输掉游戏,因此 LR都是偶数为必败态

若L,R一奇一偶,那么先手拿奇,后手就落入了必败态

若L,R二者均奇,那么我们拿第一个元素大的那个,就会使得一侧不能拿,后手会落入必败态

2、复杂度

时间复杂度: O(N)空间复杂度:O(N)

3、代码详解

 ​
#include <bits/stdc++.h>
#include <ranges>using i64 = long long;
using i32 = unsigned int;
using u64 = unsigned long long;
using i128 = __int128;constexpr int inf32 = 1E9 + 7;
constexpr i64 inf64 = 1E18 + 7;
constexpr int P = 1'000'000'007;void solve() {int n;std::cin >> n;std::vector<int> a(n);for (int i = 0; i < n; ++ i) std::cin >> a[i];int L = 0, R = 0;for (int i = 0; i < n; ++ i)if (!i || a[i] > a[i - 1])++ L;elsebreak;for (int i = n - 1; ~i; -- i)if (i + 1 == n || a[i] > a[i + 1])++ R;elsebreak;if (((L + R) & 1) || ((L & 1) && (R & 1)))std::cout << "Alice";elsestd::cout << "Bob";
}auto FIO = []{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);return 0;
}();int main () {#ifdef DEBUGfreopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);#endifint T = 1;// std::cin >> T;while (T --)solve();return 0;
}

http://www.lryc.cn/news/428791.html

相关文章:

  • win10安装docker,打包python、java然后centos执行镜像
  • 【数据结构入门】二叉树之堆的实现
  • 智能微气候:精准调控背后的算法革命
  • eNSP 华为交换机链路聚合
  • 编译器揭秘
  • ubuntu下qt连接mysql出现 QMYSQL driver not loaded
  • html 首行缩进2字符
  • 什么是IP?
  • js拖拽交换元素位置
  • 在 C++ 中实现自定义容器的实用指南
  • 《深入浅出WPF》读书笔记.4名称空间详解
  • 电驱动总成
  • JavaScript class和正则
  • [Linux#42][线程] 锁的接口 | 原理 | 封装与运用 | 线程安全
  • 奇异递归Template有啥奇的?
  • 每天五分钟深度学习框架pytorch:神经网络工具箱nn的介绍
  • 【办公软件】安全风险 Microsoft 已阻止宏运行,因为此文件的来源不受信任
  • JavaScript语法基础之流程结构(顺序、选择、循环结构)
  • 集团数字化转型方案(四)
  • 【MySQL索引】索引失效场景
  • 基于MATLAB视觉的静态手势识别系统
  • day02-作业题
  • torch.cuda.set_divice()
  • <数据集>RSOD数据集<目标检测>
  • 企业高性能web服务器之Nginx
  • 11-sentinel利用nacos作持久化
  • 密码学之哈希算法
  • 杰发科技AC7801——GPIO通过寄存器地址控制高低电平
  • 代码随想录算法训练营第三十一天| 01背包问题 二维 01背包问题 一维 416. 分割等和子集
  • github删除历史所有commit