洛谷$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 的国王游戏吗?时光飞逝,光阴荏苒,两年 过去了.国王游戏早已过时,如今已被皇后游戏取代,请你来解决类似于国王游 戏的另一个问题. 题目描述 皇后 ...
随机推荐
- oracle trunc(d1[,c1])
[功能]:返回日期d1所在期间(参数c1)的第一天日期 [参数]:d1日期型,c1为字符型(参数),c1默认为j(即当前日期) [参数表]:c1对应的参数表: 最近0点日期: 取消参数c1或j 最近的 ...
- 初识 Knative: 跨平台的 Serverless 编排框架
Knative 是什么 Knative 是 Google 在 2018 的 Google Cloud Next 大会上发布的一款基于 Kubernetes 的 Serverless 框架.Knativ ...
- [luogu P2617] Dynamic Rankings 带修主席树
带修改的主席树,其实这种,已经不能算作主席树了,因为这个没有维护可持久化的... 主席树直接带修改的话,由于这种数据结构是可持久化的,那么要相应改动,这个节点以后所有的主席树,这样单次修改,就达到n* ...
- 学习微信小程序
1.从小程序指南文档开始看起:小程序指南 2.开发者工具下载:小程序开发工具
- ubuntu环境变量的三种设置方法
一:设置环境变量的三种方法 1.1 临时设置 export PATH=/home/yan/share/usr/local/arm/3.4.1/bin:$PATH 1.2 当前用户的全局设置 打开~/. ...
- HDU 1879 还是prim最小生成树、
#include<stdio.h> #include<math.h> #include<string.h> +,MAX=1e7; int vis[qq]; int ...
- Python--day26--类方法和静态方法
类方法: 静态方法:
- P1109 桃花岛
题目描述 不是任何人都可以进入桃花岛的,黄药师最讨厌象郭靖一样呆头呆脑的人.所以,他在桃花岛的唯一入口处修了一条小路,这条小路全部用正方形瓷砖铺设而成.有的瓷砖可以踩,我们认为是安全的,而有的瓷砖一踩 ...
- python进阶之异常处理
异常处理 在代码运行时,会因为各种原因出现bug,而程序遇到bug就会中断运行,而在日常生产中程序是要长时间运行不能随意中断的.因此就需要我们提前做好异常处理. 异常 print(x) # 一般报错就 ...
- vue-cil 打包爬坑(解决)
1.打包成功不报错,但是打开页面啥都没有? 解决:文件位置:config目录下index.js文件更改assetsPublicPath属性:文件里面有两个assetsPublicPath属性,也就是 ...