洛谷$P$2123 皇后游戏 贪心
正解:贪心
解题报告:
传送门!
心血来潮打算把$luogu$提高历练地及其之前的所有专题都打通关,,,$so$可能会写一些比较水的题目的题解$QAQ$
这种题,显然就套路地考虑交换相邻两个人的次序的影响嘛
瞎写下式子,大概是长这样儿(就只考虑更大的那个$C$了昂$QwQ$)
$\left\{\begin{matrix}
max(max(C,A+a_{x})+b_{x},A+a_{x}+a_{y})+b_{y}\\
max(max(C,A+a_{y})+b_{y},A+a_{y}+a_{x})+b_{x}
\end{matrix}\right.$
注意,其实这个是可以化简的,就把外面的给放进去,变成这样儿
$\left\{\begin{matrix}
max(C+b_{x}+b_{y},A+a_{x}+b_{x}+b_{y},A+a_{x}+a_{y}+b_{y})\\
max(C+b_{y}+b_{x},A+a_{y}+b_{y}+b_{x},A+a_{y}+a_{x}+b_{x})
\end{matrix}\right.$
如果现在是要$x$在$y$的前面,则有
$max(C+b_{x}+b_{y},A+a_{x}+b_{x}+b_{y},A+a_{x}+a_{y}+b_{y})\leq max(C
+b_{y}+b_{x},A+a_{y}+b_{y}+b_{x},A+a_{y}+a_{x}+b_{x})$
再设一个$sum_{a}$表示$a_{x}+a_{y}$,$sum_{b}$表示$b_{x}+b_{y}$
原来那个式子就差不多长成这样儿了:
$max(C+sum_{b},A+a_{x}+sum_{b},A+sum_{a}+b_{y})\leq max(C+sum_{b},A
+a_{y}+sum_{b},A+sum_{a}+b_{x})$
显然有$C\leq A+a_{x}$是可以被直接消掉的(过于显然不想证了,,,如果有问题在下面
留言我再随便口胡下证明趴$QAQ$),所以式子又可以变成
$max(A+a_{x}+sum_{b},A+sum_{a}+b_{y})\leq max(A+a_{y}+sum_{b},A+sum_
{a}+b_{x})$
于是显然$A$就可以被消掉了,就变成了
$max(a_{x}+sum_{b},sum_{a}+b_{y})\leq max(a_{y}+sum_{b},sum_{a}+b_{x})$
再又展开得
$max(a_{x}+b_{x}+b_{y},a_{x}+a_{y}+b_{y})\leq max(a_{y}+b_{x}+b_
{y},a_{x}+a_{y}+b_{x})$
把一些东西又提出来得
$max(b_{x},a_{y})+a_{x}+b_{y}\leq max(b_{y},a_{x})+a_{y}+b_{x}$
考虑大力分类讨论$bushi$(其实在这儿的时候大力分类讨论就已经能做出来辣,,,?只是
贼麻烦$QwQ$
考虑继续移项
$max(b_{x},a_{y})-a_{y}-b_{x}\leq max(b_{y},a_{x})-b_{y}-a_{x}$
$-min(b_{x},a_{y})\leq -min(b_{y},a_{x})$
于是终于得出了最后的结论
$min(b_{x},a_{y})\geq min(b_{y},a_{x})$
然而你以为到这儿就完了嘛$QAQ$
$naive$,紫题还是麻油那么好评的鸭$QwQ$
我先放个数据:
```
3
7 3
1 1
1 6
3
1 1
1 6
7 3
```
显然我只是调换了一下大臣们的站位而已的$QwQ$
但是如果直接按那样子排序然后直接算出来$C$,输出会不一样,,,
为什么呢,仔细思考一下,发现是因为满足$min(b_{x},a_{y})\geq min(b_{y},a_{x}
)$的排序方式其实有很多(比如上面两个就都是的$QwQ$
然后在实际计算的过程中,前一个会是:$C_{1}=10\ C_{2}=11\ C_{3}=17$
后一个则是:$C_{1}=2\ C_{2}=8\ C_{3}=12$
简单来说,这个比较不具有传递性,就是这个结论只能适用于相邻两个数之间的比较,当
拓展到多个数时就会$GG$了(具体证明看这个趴,,,太神了没看太懂$TT$
当然这个结论在$min(b_{x},a_{y})\neq min(b_{y},a_{x})$的情况下还是$AC$的,
只是要考虑当$min(b_{x},a_{y})=min(b_{y},a_{x})$的时候要怎么比较
不难想到就,直接对$a$从小到大排就好鸭$QwQ$
然后就做完辣!
#include<bits/stdc++.h>
using namespace std;
#define il inline
#define int long long
#define gc getchar()
#define ri register int
#define rb register bool
#define rc register char
#define rp(i,x,y) for(ri i=x;i<=y;++i) const int N=+;
struct node{int x,y;}nod[N]; il int read()
{
rc ch=gc;ri x=;rb y=;
while(ch!='-' && (ch>'' || ch<''))ch=gc;
if(ch=='-')ch=gc,y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
return y?x:-x;
}
il bool cmp(node gd,node gs){return min(gd.x,gs.y)!=min(gd.y,gs.x)?min(gd.x,gs.y)<min(gd.y,gs.x):gd.x<gs.x;} main()
{
int T=read();
while(T--)
{
ri n=read();rp(i,,n)nod[i]=(node){read(),read()};sort(nod+,nod++n,cmp);
ri as=nod[].x+nod[].y,sum=nod[].x;
rp(i,,n)
{
sum+=nod[i].x;as=max(as,sum)+nod[i].y;
}
printf("%lld\n",as);
}
}
洛谷$P$2123 皇后游戏 贪心的更多相关文章
- luoguP2123 皇后游戏(贪心)
luoguP2123 皇后游戏(贪心) 题目 洛谷题目chuanso 题解 有一篇好题解,我就懒得推式子了,毕竟打到电脑上还是很难的 牛逼题解传送门 code #include<iostream ...
- Luogu P2123 皇后游戏(贪心)
题目链接:P2123 皇后游戏 如果证明这个题为什么是贪心的话,我是不会的,但是一看这个题目就是一个贪心,然后满足贪心的性质: 都能从两个人(东西)扩展到n个人(东西) 一定能从相邻状态扩展到不相邻的 ...
- 【洛谷P2123】皇后游戏
题目链接 这题的 实际上和"流水调度问题"是一样的 (我是不会告诉你我是看了讨论才知道的) 于是我就翻开了我们教练弄来的一本蓝不拉几的叫做"信息学奥赛一本通·提高篇&qu ...
- 洛谷P1080(NOIP2012)国王游戏——贪心排序与高精度
题目:https://www.luogu.org/problemnew/show/P1080 排序方法的确定,只需任取两个人,通过比较与推导,可以得出ai*bi小的人排在前面: 高精度写的时候犯了些细 ...
- 【流水调度问题】【邻项交换对比】【Johnson法则】洛谷P1080国王游戏/P1248加工生产调度/P2123皇后游戏/P1541爬山
前提说明,因为我比较菜,关于理论性的证明大部分是搬来其他大佬的,相应地方有注明. 我自己写的部分换颜色来便于区分. 邻项交换对比是求一定条件下的最优排序的思想(个人理解).这部分最近做了一些题,就一起 ...
- [洛谷P2123]皇后游戏
很抱歉,这个题我做的解法不是正解,只是恰巧卡了数据 目前数据已经更新,这个题打算过一段时间再去写. 目前在学习DP,这个会暂时放一放,很抱歉 这个题是一个国王游戏的变形(国王游戏就把我虐了qwq) 题 ...
- 洛谷 P2123 皇后游戏 解题报告
P2123 皇后游戏 题意: 给定\(T\)组长为\(n\)的\(A\),\(B\)数组和\(C\)的计算方法,求一种排列方法,使最大的\(C\)最小化. 数据范围: \(1 \le T \le 10 ...
- P2123 皇后游戏
题目背景 还记得 NOIP 2012 提高组 Day1 的国王游戏吗?时光飞逝,光阴荏苒,两年 过去了.国王游戏早已过时,如今已被皇后游戏取代,请你来解决类似于国王游 戏的另一个问题. 题目描述 皇后 ...
- luoguP2123 皇后游戏——微扰法的应用与排序传递性的证明
题目背景 还记得 NOIP 2012 提高组 Day1 的国王游戏吗?时光飞逝,光阴荏苒,两年 过去了.国王游戏早已过时,如今已被皇后游戏取代,请你来解决类似于国王游 戏的另一个问题. 题目描述 皇后 ...
随机推荐
- Jmeter If控制器
"${xxx}"=="1" 或者 "${xxx}"!="2"
- HZOJ 数颜色
一眼看去树套树啊,我可能是数据结构学傻了…… 是应该去学一下莫队进阶的东西了. 上面那个东西我没有打,所以这里没有代码,而且应该也不难理解吧. 这么多平衡树就算了,不过线段树还是挺好打的. 正解3: ...
- HZOJ matrix
完全没有思路,状压到死没调出来……吐槽一下这题目描述的好不清楚啊好多人都理解错题了…… 题解: 真的挺神仙的,因为有每列最多放1个的限制,所以考虑按列dp,设f[i][j]表示考虑前i列在[1,i]中 ...
- Android图形子系统
图形操作可以有两种方式实现:一是利用通用CPU模拟图形操作:二是利用GPU专门做图形操作.前者会增加CPU的负担,在现在高分辨率已经是普遍现象的时候,让通用处理器来完成大量的图形计算已经不现实.And ...
- thinkphp 本地配置手机移动端,在pc端访问手机端
- Android教程-01 Android Studio创建第一个项目
视频教程建议采用超清模式, 关注更多视频订阅我的优酷 最近一直使用Android Studio 简单把Android Studio介绍下 1. 首先介绍下 Android Studio的快捷键 由于之 ...
- Linux下的一些配置
/etc/vim/vimrc文件 set cindent set expandtab set smartindent set autoindent set nu set hls taglist安装(t ...
- 微信接口开发报错invalid credential, access_token is invalid or not latest hint
微信接口凭证access_token一定要全局管理 我们的查酒后台集成了微信公众平台的客服API接口,不用登录微信公众号的后台就可以直接给用户发送消息.最近,运营的同事反馈,通过微信查酒,后台无法直接 ...
- Element-ui学习笔记3--Form表单(三)
InputNumber <el-input-number v-model="num" @change="handleChange" :min=" ...
- Python--day41--条件
1,条件 #锁 #acquire release#一个条件被创建之初 默认有一个False状态#False状态 会影响wait一直处于等待状态#notify(int数据类型) 造钥匙 代码示例:条件. ...