2021 ICPC Jinan C Optimal Strategy
C Optimal Strategy - 代码见此
先从游戏分析:
1、如果当前情况为:物品中最大值 A_max 的个数 C(A_max) 为奇数,那么此回合玩家是一定要拿 A_max 的,并将 C(A_max) 变为偶数传给对方。此后,单考虑值为 A_max 的物品,该玩家一定会比对手多拿一次,符合最优情况。
2、若当前物品中最大值 A_max 的个数 C(A_max) 为偶数,
显然,双方都遵循以下最优决策:
①上一轮对手拿了一次 A_max , 此回合我必须也拿A_max(如果还能拿A_max的话)。
②上一轮对手没有拿 A_max(或者C(A_max)变成零),那我可以任意拿一个物品,值随意。
然后分析计数:
我们将物品按不同值的个数存储好,并按值从小到大的顺序计算,动态规划的思想来模拟方案数
首先定义 f [ i ] 为只用小于等于 i 的元素,能构成的最优游戏方案数
为了方便理解,我们对输入的序列排一下序(代码实现不必排序)
假设某一排序后的输入为: 1 1 1 4 4 5,那么 f [ 1 ] 代表1 1 1三个元素的子序列的最优游戏方案数,同理 f [ 4 ] 代表1 1 1 4 4五个元素的子序列的最优游戏方案数。
从最优决策可得,我们将所有相同元素都两两配对,即无论哪一方拿了其中一个,下一轮玩家一定是拿另一个,则配对好的两个相同元素放在一起考虑。
那么在遍历过程中,
①假设当前处理到了所有值为 i 的元素,那么所有小于 i 的元素都不必再按两两配对考虑, 因为它们任何一个都不是此时序列中的最大值,可以任意顺序取走。
②由于是从小到大遍历,当前 i 一定比前面的都大, 那么可以随便插入到 f [ i-1 ]的任何一种方案,对应的序列中,的任何一个位置。
若 C[ i ] 为奇数, 那么一定是在序列最前面放一个 i ,然后 C[ i ] 变成了偶数,并配对成了 X = C[ i ] / 2 对, 假设 sum[ i-1 ] 是所有小于 i 的元素的总个数,那么 f [ i ] = f [ i-1 ] × C(sum[ i-1 ] + X,X)× A(C[ i ],C[ i ])
代码见此
2021 ICPC Jinan C Optimal Strategy相关推荐
- 【题目记录】——The 2021 ICPC Asia Jinan Regional Contest
文章目录 C Optimal Strategy 组合数 H Game Coin K Search For Mafuyu 欧拉序列 题目集地址 The 2021 ICPC Asia Jinan Regi ...
- 2021 ICPC全国邀请赛(西安)太原理工大学收获3枚奖牌
2021 ICPC 国际大学生程序设计竞赛全国邀请赛,于2021年6月5-6日在西安西北工业大学举行. 这次比赛,太原理工大学共派出3个队伍参加比赛,获得2枚银牌1枚铜牌. 通过这个比赛,锻炼了队伍, ...
- The 2021 ICPC Asia Regionals Online Contest (I)
The 2021 ICPC Asia Regionals Online Contest (I) 写了一晚上,日- 文章目录 一. A Busiest Computing Nodes 二.D Edge ...
- 2021 ICPC 沈阳赛区J题 Luggage Lock
2021 ICPC 沈阳赛区J题 Luggage Lock 题意 有TTT组样例,其中每组样例为: 给定一个密码为b0b1b2b3b_0b_1b_2b_3b0b1b2b3的密码锁,已知当前密码 ...
- 2021 ICPC Asia Taipei Regional
2021 ICPC Asia Taipei Regional 补题记录 Problem D Largest Remainder Time limit: 1 second Memory limit: 1 ...
- 2021 ICPC Southeastern Europe Regional Contest Werewolves(树上背包)
2021 ICPC Southeastern Europe Regional Contest Werewolves(树上背包) 链接 题意:给出一个n个节点的树(n≤3000n\le3000n≤300 ...
- 2021 ICPC 南京 3.27训练赛
2021 ICPC 南京 D - Paimon Sorting J - Xingqiu's Joke I - Cloud Retainer's Game 题目链接 D - Paimon Sorting ...
- 2021 ICPC Southeastern Europe Regional Contest(更新至六题)
2021 ICPC Southeastern Europe Regional Contest A题签到 A. King of String Comparison 题意:给两个字符串,找出有多少对(l, ...
- 2021 ICPC Asia Regionals Online Contest (II) Problem G. Limit
The 2021 ICPC Asia Regionals Online Contest (II) Problem G. Limit 在欧教的指导下,复习了下高数知识,写下了这题的题解- 做这道题之前, ...
- 2021 ICPC 沈阳站 D题 Journey to Un‘Goro (打表+找规律)
2021 ICPC 沈阳站 D.Journey to Un'Goro [链接][http://codeforces.com/gym/103202/problem/D](http://codeforce ...
最新文章
- 简单明了,一文入门视觉SLAM
- linux上通过lighttpd上跑一个C语言的CGI小页面以及所遇到的坑
- 获取网络状态ConnectivityManager
- 关于TCP粘包的拙见
- python读取图片并储存为CSV文件
- Jquery 安装到Visual Studio 2008
- proc wifi 开启_49.Linux-wpa_cli使用之WIFI开启,扫描热点,连接热点,断开热点,WIFI关闭(49)...
- 主引导扇区(MBR)释疑
- 90 亿美元的“Java 第一版权案”终落幕:谷歌胜!
- 教你webm格式怎么转换成mp4
- 概率论与数理统计(一):教你一步步推贝叶斯公式
- 谷歌代码规范的中文版
- elk报错:[syslogs] index has exceeded [1000000]
- 一文读懂 HTTP(超文本传输)协议
- 【融云出海白皮书免费看】出海洞察之沙特的「土豪行为」盘点
- matlab图像网格化像素提取像素扩大图片分块
- 前端判断文件后缀名_js判断上传文件后缀名是否合法
- element-ui表格组件分页后完整导出到excel的方法
- 04_dubbo_ioc
- 计算机考研考的是英语作文,2007年考研英语作文真题及范文