传送门

\(首先一定要明确一个观点,不然会完全没有思路\)

\(\bullet\)\(由于前半段大的更优,后半段小的更优。\)

\(\bullet\)\(所以,\)Bessie\(一定会在前(n/2)轮比拼中打出自己最大的(n/2)张牌。\)

\(\bullet\)\(那么,因为出的牌确定了,所以我们把比拼分为前半段和后半段。\)

\(前半段(大的牌赢)\)

\(\bullet\)因为\(Bessie可以根据Elsie的出牌顺序调整自己的出牌顺序,所以Elsie前半段怎么出牌都是一样的\)

\(那不妨把 Elsie的前(n/2)张牌从大到小排序\)

\(那我们把Bessie的最大的(n/2)张牌从大到小排序\)

策略

\(\bullet\)\(Bessie最大牌能赢Elsie的最大牌,那就赢。(能赢为什么不赢?)\)

\(\bullet\)\(Bessie最大牌输给Elsie的最大牌,那一定会输,不妨用最小的牌输给他。\)

后半段也是相同的策略。

扩展

\(但是田忌赛马中,规则更加复杂。\)

\(赢了赚钱,输了亏钱,平局不赚不亏\)

\(所以在上面策略的基础上多了一种情况,要是最大马相同怎么办?\)

\(\bullet\)若田忌的最慢马快与齐王的最慢马,两者比(能赢就赢呗)

\(\bullet\)其他,用田忌的最慢马与齐王的最快马比(贡献最大)

#include <bits/stdc++.h>
using namespace std;
int n;
int a[25009],c[25009],b[100009];
int q[25009],h[25009];
bool com(int a,int b){
return a>b;
}
int main()
{
cin>>n;
int ans=0;
for(int i=1;i<=n/2;i++)
{
cin>>a[i];
b[a[i]]=1;
}
for(int i=1;i<=n/2;i++)
{
cin>>c[i];
b[c[i]]=1;
}
sort(a+1,a+1+n/2,com);//前半段大到小
sort(c+1,c+1+n/2);//后半段小到大
for(int i=2*n;i>=1;i--)
{
if(q[0]<n/2&&b[i]==0)
q[++q[0]]=i;
else if(q[0]>=n/2&&b[i]==0)
h[++h[0]]=i;
}
sort(q+1,q+1+n/2,com);//前半段大到小
sort(h+1,h+1+n/2);//后半段小到打
int p1=1,p2=1,w1=n/2,w2=n/2;
while(p1<=w1)
{
if(q[p1]>a[p2])
ans++,p1++,p2++;
else
w1--,p2++;
}
p1=1,p2=1,w1=n/2,w2=n/2;
while(p1<=w1)
{
if(h[p1]<c[p2])
ans++,p1++,p2++;
else
w1--,p2++;
}
cout<<ans;
}

High Card Low Card G(田忌赛马进阶!!)的更多相关文章

  1. 【题解】P3129高低卡(白金)High Card Low Card

    [题解][P3129 USACO15DEC]高低卡(白金)High Card Low Card (Platinum) 考虑贪心. 枚举在第几局改变规则,在改变规则之前,尽量出比它大的最小的牌,在改变规 ...

  2. 【BZOJ4391】[Usaco2015 dec]High Card Low Card(贪心)

    [BZOJ4391][Usaco2015 dec]High Card Low Card(贪心) 题面 BZOJ 题解 预处理前缀后缀的结果,中间找个地方合并就好了. #include<iostr ...

  3. 【dp 贪心】bzoj4391: [Usaco2015 dec]High Card Low Card

    巧妙的贪心 Description Bessie the cow is a huge fan of card games, which is quite surprising, given her l ...

  4. 【刷题】BZOJ 4391 [Usaco2015 dec]High Card Low Card

    Description Bessie the cow is a huge fan of card games, which is quite surprising, given her lack of ...

  5. [BZOJ4391][Usaco2015 dec]High Card Low Card dp+set+贪心

    Description Bessie the cow is a huge fan of card games, which is quite surprising, given her lack of ...

  6. [USACO15DEC]高低卡(白金)High Card Low Card (Platinum)

    题目描述 Bessie the cow is a hu e fan of card games, which is quite surprising, given her lack of opposa ...

  7. BZOJ4391 High Card Low Card [Usaco2015 dec](贪心+线段树/set库

    正解:贪心+线段树/set库 解题报告: 算辣直接甩链接qwq 恩这题就贪心?从前往后从后往前各推一次然后找一遍哪个地方最大就欧克了,正确性很容易证明 (这里有个,很妙的想法,就是,从后往前推从前往后 ...

  8. [bzoj4391] [Usaco2015 dec]High Card Low Card 贪心 线段树

    ---题面--- 题解: 观察到以决策点为分界线,以点数大的赢为比较方式的游戏都是它的前缀,反之以点数小的赢为比较方式的都是它的后缀,也就是答案是由两段答案拼凑起来的. 如果不考虑判断胜负的条件的变化 ...

  9. bzoj4391 [Usaco2015 dec]High Card Low Card

    传送门 分析 神奇的贪心,令f[i]表示前i个每次都出比对方稍微大一点的牌最多能赢几次 g[i]表示从i-n中每次出比对方稍微小一点的牌最多赢几次 ans=max(f[i]+g[i+1]) 0< ...

随机推荐

  1. vueThink框架搭建与填坑(new)

    自己跟着官网搭建vueThink框架,发现github上文档有很多坑.所以总结一下(仅针对WIN端下载使用) 1.安装node.js 前端部分是基于node.js上运行的,所以必须先安装node.js ...

  2. Beta-release 目标

    在第二个release开发周期中我们首要先要完成的是对第一个发布版本的优化:(之前团队在跟travis的沟通中,travis也要求我们首先要把现在已有的feature做到一个比较成熟和稳定的版本) 1 ...

  3. 小L的直线

    小学时期的小L发现自己很有艺术细胞,于是买了一块画板,但是他的绘画水平使得他只能连接两点画出一条线段.有一天他决定在一张有n个点的图上作画,即他可以把这n个点任意连接.大家认为平行线是非常不美观的,于 ...

  4. Project configuration is not up-to-date with pom.xml.错误

    完整错误信息:Description Resource Path Location TypeProject configuration is not up-to-date with pom.xml. ...

  5. Mac 安装 brew(最新教程,绝对可行)

    现在安装brew,一会报这个错,一会儿报那个错,上网查了很多教程,用了很多时间都是不可以,电脑开VPN翻墙也不行. Warning: The Ruby Homebrew installer is no ...

  6. Mybatis Generator通用Join的实现

    通常,我们使用Mybatis实现join表关联的时候,一般都是通过在xml或注解里写自定义sql实现. 本文通过Mybatis Generator的插件功能新增一个JoinPlugin插件,只要在配置 ...

  7. 权威的国际敏捷认证Certified Scrum Master (CSM)

    权威的国际敏捷认证Certified Scrum Master (CSM) A. 认证前 在学习Certified Scrum Master (CSM)之前,你需要了解: 什么是CSM CSM认证与其 ...

  8. 用scrapy实现模拟登陆

    class Test1sSpider(scrapy.Spider): name = 'test1s' allowed_domains = ['yaozh.com'] start_urls = ['ht ...

  9. 文件上传漏洞(pikachu)

    文件上传漏洞 文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像,附件等等.当用户点击上传按钮后,后台会对上传的文件进行判断,比如是否是指定的类型.后缀名.大小等等,然后将其按照设 ...

  10. awk,seq,xarg实例使用

    基于https://www.cnblogs.com/wangyuebo/p/5836933.html的详细补充讲解 [root@localhost awk]# seq 10|xargs -n 2 &g ...