[NOIP2009][vijos1809]三国游戏(贪心)
来源:互联网 发布:央视网商城软件 编辑:程序博客网 时间:2024/05/17 00:17
题目描述
传送门
题解
计算机的策略那么蠢用脑子想想也知道有必胜策略。
计算机每一次都会尽量阻止你选默契值最大的,而我们恰恰可以利用这一点。我们将武将的默契值降序排列,然后统计每一个武将第一次出现和第二次出现的位置。我们枚举第一次小涵第一次会拿哪一个武将。第一次拿的那个武将与之配对的武将一定是拿不到的,因为计算机会将它拿走,但是我们可以拿这个武将第二次出现时与它配对的武将,并且这样一定是最优的。
不要担心计算机会恰好拿到更优的武将组合,因为当枚举那个时小涵已经将它拿到辣!
代码
#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>using namespace std;#define N 505int n,x,cnt,ans;struct hp{int x,y,val;}a[N*N];int b[N][2];int cmp(hp a,hp b){ return a.val>b.val;}int main(){ scanf("%d",&n); for (int i=1;i<=n;++i) for (int j=i+1;j<=n;++j) { scanf("%d",&x); a[++cnt].x=i,a[cnt].y=j,a[cnt].val=x; } sort(a+1,a+cnt+1,cmp); for (int i=1;i<=cnt;++i) { if (!b[a[i].x][0]) b[a[i].x][0]=i; else if (!b[a[i].x][1]) b[a[i].x][1]=i; if (!b[a[i].y][0]) b[a[i].y][0]=i; else if (!b[a[i].x][1]) b[a[i].x][1]=i; } for (int i=1;i<=n;++i) ans=max(ans,a[b[i][1]].val); printf("1\n%d\n",ans);}
0 0
- [NOIP2009][vijos1809]三国游戏(贪心)
- noip2010 三国游戏 (博弈论)
- 三国游戏
- 三国游戏
- noip2009-4 道路游戏
- NOIP2009(4)道路游戏
- NOIP2009 道路游戏
- 【noip2009】道路游戏
- android手机游戏-三国无双(二)
- 洛谷P1199 三国游戏(博弈)
- noip2009 道路游戏 (单调队列优化动态规划)
- 【NOIP2009】洛谷1070 道路游戏
- NOIP2009普及组 道路游戏
- NOIP2009 普及组 道路游戏
- 风云三国游戏检测
- 风云三国游戏检测
- 三国游戏开发策略
- 玩“三国杀”游戏
- poj 2762 Going from u to v or from v to u?
- 资料与知识
- LeetCode 127. Word Ladder
- ubuntu下/opt下有一个库损坏,删除的命令
- 调试技巧 —— 如何利用windbg + dump + map分析程序异常
- [NOIP2009][vijos1809]三国游戏(贪心)
- 苹果appstore用默认DNS比较慢,需要修改
- [深度学习论文笔记][Instance Segmentation] Hypercolumns for Object Segmentation and Fine-Grained Localization
- 设计模式读书笔记-----访问者模式
- RecyclerView 的简单使用方法
- 用golang递归构建无限级树状目录json数据和数据库
- 【Jsp+Servlet】JSP的内置对象
- Android官方MVP架构示例项目解读
- 高频系数融合规则