每日一题 day18 打卡

Analysis

贪心

假如小A先选最大的[5,4],虽然电脑必须选一个破坏, 我们可以理解为5和4都属于小A的,假如后面未被破坏的最大值无论是和5相关还是和4相关,必然还是属于小A先手。 写个极限情况,假设6个武将的最大值序列依次为[1,2],[3,4],[5,6],电脑肯定要破坏掉这三种选择。后面第四个值无论是哪个组合,小A必然能通过先手在第二次或第三次先选到这两个武将,也就是说选择的总次数不会超过n/2。 因此,只要将武将组合值排序,由大到小依次选择下去,一定会触发小A胜利条件。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define int long long
#define maxn 500*(500-1)/2+10
using namespace std;
inline int read()
{
int x=;
bool f=;
char c=getchar();
for(; !isdigit(c); c=getchar()) if(c=='-') f=;
for(; isdigit(c); c=getchar()) x=(x<<)+(x<<)+c-'';
if(f) return x;
return -x;
}
inline void write(int x)
{
if(x<){putchar('-');x=-x;}
if(x>)write(x/);
putchar(x%+'');
}
int n,cnt;
struct node
{
int x,y,val;
}inn[maxn];
bool book[maxn];
inline bool cmp(node x,node y)
{
return x.val>y.val;
}
signed main()
{
n=read();
for(int i=;i<=n-;i++)
for(int j=i+;j<=n;j++)
{
cnt++;
inn[cnt].val=read();
inn[cnt].x=i;
inn[cnt].y=j;
}
sort(inn+,inn+cnt+,cmp);
for(int i=;i<=cnt;i++)
{
if(book[inn[i].x]==&&book[inn[i].y]==)
{
book[inn[i].x]=;
book[inn[i].y]=;
}
else
{
write();
printf("\n");
write(inn[i].val);
return ;
}
}
write();
return ;
}

请各位大佬斧正(反正我不认识斧正是什么意思)

洛谷 P1199 三国游戏 题解的更多相关文章

  1. 【贪心】洛谷 P1199 三国游戏 题解

     这个题尽管题目长,主要还是证明贪心的正确性(与博弈关系不大) 题目描述 小涵很喜欢电脑游戏,这些天他正在玩一个叫做<三国>的游戏. 在游戏中,小涵和计算机各执一方,组建各自的军队进行对战 ...

  2. 洛谷P1199 三国游戏——题解

    题目传送 显然,在这样的数据范围下搜索是没希望的了.好好分析一下,发现小涵时不可能拿到与一个武将最默契的另一个武将了.所以考虑一下默契值次大的一对武将. 显然,对每一个武将来说,小涵是可以拿到默契值次 ...

  3. 洛谷 P1199 三国游戏 解题报告

    P1199 三国游戏 题目描述 小涵很喜欢电脑游戏,这些天他正在玩一个叫做<三国>的游戏. 在游戏中,小涵和计算机各执一方,组建各自的军队进行对战.游戏中共有\(N\)位武将(\(N\)为 ...

  4. 洛谷P1199 三国游戏

    题目描述 小涵很喜欢电脑游戏,这些天他正在玩一个叫做<三国>的游戏. 在游戏中,小涵和计算机各执一方,组建各自的军队进行对战.游戏中共有 N 位武将(N为偶数且不小于 4),任意两个武将之 ...

  5. 洛谷 P1199 三国游戏

    参考:Solution_ID:17 题解 更新时间: 2016-11-13 21:01 这道题要求最后得到的两方的默契值最大的武将,小涵的默契值大于计算机,首先,我们这个解法获胜的思路是,每个武将对应 ...

  6. 洛谷P1199三国游戏

    题目 博弈论+贪心. 由于我们是先手,所以我们其实是必赢的,而且其实选完前两次,就已经结束了,因为接下来选的每一次其实都没有我们前几次选的好.而且又因为机器人会把我们想选的最好的拿走,那我们就只能拿走 ...

  7. 洛谷P1999三国游戏

    题目:https://www.luogu.org/problemnew/show/P1199 仔细想想,两方都拿不到每个武将的配对中最大的: 本来想的是如果有武将a,b,对应最大ma,mb,次大ca, ...

  8. 洛谷P1057传球游戏题解

    题目 这个题表面上看并不像DP,但是当我们看到方案数时,我们可能会想到什么??? 对,分类加法原理,在每一轮中,每一个点的方案数都要加上这个点左边的方案与右边的方案. 因此我们可以枚举,设一个DP数组 ...

  9. 洛谷P2670扫雷游戏题解

    题目 这道题是一个简单的模拟搜索题,可以把每个雷的位置都记作1. 这样就可记录出数字啦 #include<iostream> #include<cstring> using n ...

随机推荐

  1. Django框架深入了解_02(DRF之序列化、反序列化)

    序列化:将Python对象准换成json格式的字符串,反之即为反序列化 DRF的序列化使用过程: 使用drf的序列化组件 -1 新建一个序列化类继承Serializer -2 在类中写要序列化的字段 ...

  2. Linux命令xargs的使用

    ls | xargs catls | xargs -I {} cat {}  大写I,指定参数的替换符号为{} 自定义

  3. Go语言(基本数据类型)

    Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等.Go 语言的基本类型和其他语言大同小异. 基本数据类型 整型 整型 ...

  4. vs、eclips、Idea调试技巧

    vs F5:进入下一个断点 F10:不进入子函数 F11:进入子函数 Ctrl + M + O: 折叠所有方法 Ctrl + M + M: 折叠或者展开当前方法 Ctrl + M + L: 展开所有方 ...

  5. CachedThreadPool

    /** * <html> * <body> * <P> Copyright 1994 JsonInternational</p> * <p> ...

  6. java之struts2之文件上传

    1.在大多数应用中,都有文件上传功能.有两种文件上传的方式,一种是自己去解析http协议,获取文件上传的内容.另一种是通过第三方插件来实现文件上传.第三方插件一般有两种,smartfileupload ...

  7. Bootstrap框架 简单使用

    目录 Bootstrap框架 简单使用 什么是Bootstrap 下载 Bootstrap 项目结构 Bootstrap 简单使用 表格格式 Bootstrap 按钮颜色 尺寸 Bootstrap框架 ...

  8. Redis 学习-安装、数据类型与 API 理解、Java 客户端

    本博客是在学习<Redis从入门到高可用,分布式实践>教程时的笔记. 同时参考: https://www.cnblogs.com/jiang910/p/10020048.html 一.Re ...

  9. FastDFS+Nginx搭建Java分布式文件系统

    一.FastDFS FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS ...

  10. iptables-2基本语法结构

    1.规则的概念先说说规则的概念,然后再通俗的解释它.规则:根据指定的匹配条件来尝试匹配每个流经此处的报文,一旦匹配成功,则由规则后面指定的处理动作进行处理:那么我们来通俗的解释一下什么是iptable ...