正题

题目链接:https://www.luogu.com.cn/problem/CF388C


题目大意

有nnn堆卡片,第iii堆有sis_isi​张,给出每张卡的权值。现在先手选择一堆取走堆底的牌,然后后手选择一堆取走堆顶的牌,直到所有牌被取走。在双方都要求最大化取走的牌的权值的情况下求先后手的权值。

1≤n,si≤100,1≤ai,j≤10001\leq n,s_i\leq 100,1\leq a_{i,j}\leq 10001≤n,si​≤100,1≤ai,j​≤1000


解题思路

大胆猜测结论是每堆牌都是先后手各自取走约一半的牌,因为如果总和固定最大化自己就相当于最小化对方。

如果存在一种情况后手和先手各自取不同的堆,那么这肯定是对后手优的,又因为权值一样,也就是对先手劣的,与对先手和后手都优冲突。

现在偶数个数的都是平分的,主要考虑奇数,对于奇数来说就是先手取走中间那个然后交换先后手。

直接把奇数两边的平分,然后拿中间出来排序,先后手依次取走即可。

时间复杂度:O(ns)O(ns)O(ns)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=110;
int n,s,sum,ans,m,a[N],r[N];
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&s);for(int j=1;j<=s;j++)scanf("%d",&a[j]),sum+=a[j];if(s&1){++m;for(int j=1;j<=s/2;j++)ans+=a[j];for(int j=s/2+2;j<=s;j++)ans-=a[j];r[m]=a[s/2+1];}else{for(int j=1;j<=s/2;j++)ans+=a[j];for(int j=s/2+1;j<=s;j++)ans-=a[j];}}sort(r+1,r+1+m);reverse(r+1,r+1+m);for(int i=1;i<=m;i++)if(i&1)ans+=r[i];else ans-=r[i];printf("%d %d\n",int(sum/2.0+ans/2.0),int(sum/2.0-ans/2.0));return 0;
}

CF388C-Fox and Card Game【博弈论,结论】相关推荐

  1. 【解题报告】博弈专场 (CF 2000~2200)前五题

    [解题报告]博弈专场 (CF 2000+)前五题 A:Fox and Card Game | CF388C 题意 思路 代码 B:Berzerk | CF786A 题意 思路 代码 C:Ithea P ...

  2. Codeforces Round #228 (Div. 2)

    A. Fox and Number Game 题意:有 n 个数, 每次找一对 i , j 满足a[i] > a[j],然后 a[i] = a[i] - a[j],问最后剩下的数的和最小是多少. ...

  3. AT2376-[AGC014D]Black and White Tree【结论,博弈论】

    正题 题目链接:https://www.luogu.com.cn/problem/AT2376 题目大意 给出nnn个点的一棵树,先后手轮流选择一个未染色的点染上白色(先手)/黑色(后手),如果最后有 ...

  4. 博弈论——Anti-SG 游戏 结论

    看论文做的笔记: 记住结论即可.证明比较套路

  5. 【博弈论】博弈论入门笔记(四类基础博弈结论+SG函数)

    1.巴什博奕(Bash Game): 只有一堆n个物品,两个人轮流轮流从中取物,每次最少取一个,最多取m个,最后取光的人获胜.(谁拿了最后一个谁赢) 结论: 1.if(n%(m+1) != 0) ,则 ...

  6. 【博弈论】博弈论题单题解

    会不断更新的(咕咕咕) 题目难度大致满足非降性 博弈论真是深坑啊,填不动了,还有Nim积.Every-SG游戏等等等等很多题型还不会,先去学别的了 涉及知识: SG函数及SG定理:传送门 博弈论知识总 ...

  7. 解题报告(一)E、(BZOJ4589)Hard Nim(博弈论 + FWT)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  8. AI博弈论:DeepMind让智能体在非对称博弈中找纳什均衡

    Root 林鳞 编译自 DeepMind官方博客 量子位 出品 | 公众号 QbitAI 随着人工智能系统在现实世界中扮演越来越重要的角色,理解不同的系统如何相互作用至关重要. 刚刚,DeepMind ...

  9. 博弈论入门之威佐夫博弈

    威佐夫博弈 威佐夫博弈是一类经典的博弈问题 有两堆石子,两个顶尖聪明的人在玩游戏,每次每个人可以从任意一堆石子中取任意多的石子或者从两堆石子中取同样多的石子,不能取得人输,分析谁会获得胜利 博弈分析 ...

最新文章

  1. 框架依赖注入和普通依赖注入_依赖注入快速入门:它是什么,以及何时使用它...
  2. Django源码分析5:session会话中间件分析
  3. L1正则化为什么又叫做稀疏因子?
  4. python整数类型进制表示_Python二进制、八进制、十六进制数字的表示和转换
  5. Alpha 冲刺 (7/10)
  6. 局域网mysql数据库访问
  7. 咨询的真相8:咨询业的“前世今生”
  8. nucleo stlink 固件_自制nucleo,可以随意更换芯片,支持stlink,板载usbisp
  9. Ubuntu 14.10 下安装java反编译工具 jd-gui
  10. java面试题整理_2018年最新java面试题整理。。。持续更新中。。。
  11. 【备忘】一段用于在论坛上插入Flash内容的JavaScript代码
  12. Wireshark实战分析之ARP协议(一)
  13. pgAdmin4数据库备份还原
  14. 考勤打卡记录数据库表结构_中控zktime5.0考勤管理系统数据库表结构.doc
  15. c语言乘法运算结果小数位数,如何用c语言计算小数点后位数
  16. 工地信息化——施工现场网格化管理系统实施小记
  17. SpringBoot应用接入Prometheus+Grafana
  18. 【Linux】系统编程——文件编程
  19. java time_java常用类Time
  20. Unity——螺旋运动

热门文章

  1. spark 连接mysql 命令_spark-submit命令包括mysql连接器
  2. oracle中sum和count可以嵌套吗_【分享吧】Oracle查询转换
  3. go float64 比较_Go 每日一库之 plot
  4. php curl hostname,php – 如何解决cURL错误(7):无法连接到主机?
  5. Java开发和嵌入式开发该如何选择
  6. 大文本导入mysql_大文本数据,导入导出到数据库
  7. java get请求简洁,java 实现 HTTP请求(GET、POST)的方法
  8. 网站logo放在服务器,自己建网站如何设计网站LOGO
  9. 怎么删除mysql的所有文件内容_mysql删除全部数据库
  10. 两台思科交换机vlan划分_Cisco交换机Vlan划分及ACL配置详细步骤 | 吴文辉博客