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相关推荐

  1. 【题目记录】——The 2021 ICPC Asia Jinan Regional Contest

    文章目录 C Optimal Strategy 组合数 H Game Coin K Search For Mafuyu 欧拉序列 题目集地址 The 2021 ICPC Asia Jinan Regi ...

  2. 2021 ICPC全国邀请赛(西安)太原理工大学收获3枚奖牌

    2021 ICPC 国际大学生程序设计竞赛全国邀请赛,于2021年6月5-6日在西安西北工业大学举行. 这次比赛,太原理工大学共派出3个队伍参加比赛,获得2枚银牌1枚铜牌. 通过这个比赛,锻炼了队伍, ...

  3. The 2021 ICPC Asia Regionals Online Contest (I)

    The 2021 ICPC Asia Regionals Online Contest (I) 写了一晚上,日- 文章目录 一. A Busiest Computing Nodes 二.D Edge ...

  4. 2021 ICPC 沈阳赛区J题 Luggage Lock

    2021 ICPC 沈阳赛区J题 Luggage Lock 题意 有TTT组样例,其中每组样例为: 给定一个密码为b0b1b2b3b_0b_1b_2b_3b0​b1​b2​b3​的密码锁,已知当前密码 ...

  5. 2021 ICPC Asia Taipei Regional

    2021 ICPC Asia Taipei Regional 补题记录 Problem D Largest Remainder Time limit: 1 second Memory limit: 1 ...

  6. 2021 ICPC Southeastern Europe Regional Contest Werewolves(树上背包)

    2021 ICPC Southeastern Europe Regional Contest Werewolves(树上背包) 链接 题意:给出一个n个节点的树(n≤3000n\le3000n≤300 ...

  7. 2021 ICPC 南京 3.27训练赛

    2021 ICPC 南京 D - Paimon Sorting J - Xingqiu's Joke I - Cloud Retainer's Game 题目链接 D - Paimon Sorting ...

  8. 2021 ICPC Southeastern Europe Regional Contest(更新至六题)

    2021 ICPC Southeastern Europe Regional Contest A题签到 A. King of String Comparison 题意:给两个字符串,找出有多少对(l, ...

  9. 2021 ICPC Asia Regionals Online Contest (II) Problem G. Limit

    The 2021 ICPC Asia Regionals Online Contest (II) Problem G. Limit 在欧教的指导下,复习了下高数知识,写下了这题的题解- 做这道题之前, ...

  10. 2021 ICPC 沈阳站 D题 Journey to Un‘Goro (打表+找规律)

    2021 ICPC 沈阳站 D.Journey to Un'Goro [链接][http://codeforces.com/gym/103202/problem/D](http://codeforce ...

最新文章

  1. 简单明了,一文入门视觉SLAM
  2. linux上通过lighttpd上跑一个C语言的CGI小页面以及所遇到的坑
  3. 获取网络状态ConnectivityManager
  4. 关于TCP粘包的拙见
  5. python读取图片并储存为CSV文件
  6. Jquery 安装到Visual Studio 2008
  7. proc wifi 开启_49.Linux-wpa_cli使用之WIFI开启,扫描热点,连接热点,断开热点,WIFI关闭(49)...
  8. 主引导扇区(MBR)释疑
  9. 90 亿美元的“Java 第一版权案”终落幕:谷歌胜!
  10. 教你webm格式怎么转换成mp4
  11. 概率论与数理统计(一):教你一步步推贝叶斯公式
  12. 谷歌代码规范的中文版
  13. elk报错:[syslogs] index has exceeded [1000000]
  14. 一文读懂 HTTP(超文本传输)协议
  15. 【融云出海白皮书免费看】出海洞察之沙特的「土豪行为」盘点
  16. matlab图像网格化像素提取像素扩大图片分块
  17. 前端判断文件后缀名_js判断上传文件后缀名是否合法
  18. element-ui表格组件分页后完整导出到excel的方法
  19. 04_dubbo_ioc
  20. 计算机考研考的是英语作文,2007年考研英语作文真题及范文

热门文章

  1. 9527风先生的文章《Ubuntu20.04配置ORBSLAM2并运行》 :验证是能走通的
  2. 推荐给计算机专业教师读的书
  3. php中怎么添加css样式_html怎么添加css样式?
  4. 基于MM32与M26物联网入门:远程呼叫及开锁
  5. 《算法导论》:跳跃表(Skip List)
  6. mysql超卖问题处理_mysql 解决超卖问题的锁分析
  7. 2019云栖大会归来有感
  8. CSDN Markdown 公式编号
  9. python连连看_Python 连连看连接算法
  10. Kroll任命Richard Davies担任网络风险业务副董事总经理,常驻香港