Luogu P2123 皇后游戏(贪心)
题目链接:P2123 皇后游戏
如果证明这个题为什么是贪心的话,我是不会的,但是一看这个题目就是一个贪心,然后满足贪心的性质:
都能从两个人(东西)扩展到n个人(东西)
一定能从相邻状态扩展到不相邻的状态
---摘自rain_falls
其实就是满足贪心的题目一定满足两个人的情况,就是由两个人推广到n个人.
我们先想一下两个人时的情况.
答案就是这个:
\(min(max(a_1+b1,a_1+a_2)+b_2,max(a_2+b_2,a_1+a_2)+b_1)\)
如果前一项小那么就让第一个人排在前面,第二个人排在后面.
反之.
#include <iostream>
#include <algorithm>
#include <cstdio>
#define ll long long
const ll maxN = 20000 + 7;
using namespace std;
struct Node{
	ll a,b;
}Map[maxN];
ll val[maxN];
bool cmp(Node a,Node b) {
	return max(a.a + a.b,a.a + b.a) + b.b < max(b.a+b.b,a.a+b.a)+ a.b;
}
int main() {
	ll T;
	cin >> T;
	while(T --) {
		ll ans = 0;
		ll n;
		cin >> n;
		for(ll i = 1;i <= n;++ i)
			cin >> Map[i].a >> Map[i].b;
		sort(Map + 1,Map + n + 1,cmp);
		ll sum = Map[1].a;
		val[1] = Map[1].a + Map[1].b;
		ans = val[1];
		for(ll i = 2;i <= n;++ i) {
			sum += Map[i].a;
			val[i] = max(val[i - 1],sum) + Map[i].b;
			ans = max(val[i],ans);
		}
		printf("%lld\n",ans);
	}
}
NOIP中关于贪心的题最难的一步就是发现它是个贪心233.
Luogu P2123 皇后游戏(贪心)的更多相关文章
- [luogu P2123] 皇后游戏 解题报告(贪心)
		
题目链接:https://www.luogu.org/problemnew/show/P2123 题目大意: 给定a数组和b数组,要求最小化c数组中的最大值 题解: 考虑微扰法,推一波式子先 设$x= ...
 - luogu P2123 皇后游戏
		
传送门 跟国王游戏一样的分析 考虑相邻的两个大臣,设他们前面的\(\sum a_j\)为\(s\),同时注意到后面人的贡献更大 所以\(i\)在前面时,\(c_j=\max(\max(c_{last} ...
 - 洛谷 P2123 皇后游戏 解题报告
		
P2123 皇后游戏 题意: 给定\(T\)组长为\(n\)的\(A\),\(B\)数组和\(C\)的计算方法,求一种排列方法,使最大的\(C\)最小化. 数据范围: \(1 \le T \le 10 ...
 - 【流水调度问题】【邻项交换对比】【Johnson法则】洛谷P1080国王游戏/P1248加工生产调度/P2123皇后游戏/P1541爬山
		
前提说明,因为我比较菜,关于理论性的证明大部分是搬来其他大佬的,相应地方有注明. 我自己写的部分换颜色来便于区分. 邻项交换对比是求一定条件下的最优排序的思想(个人理解).这部分最近做了一些题,就一起 ...
 - luoguP2123 皇后游戏(贪心)
		
luoguP2123 皇后游戏(贪心) 题目 洛谷题目chuanso 题解 有一篇好题解,我就懒得推式子了,毕竟打到电脑上还是很难的 牛逼题解传送门 code #include<iostream ...
 - P2123 皇后游戏
		
题目背景 还记得 NOIP 2012 提高组 Day1 的国王游戏吗?时光飞逝,光阴荏苒,两年 过去了.国王游戏早已过时,如今已被皇后游戏取代,请你来解决类似于国王游 戏的另一个问题. 题目描述 皇后 ...
 - [洛谷P2123]皇后游戏
		
很抱歉,这个题我做的解法不是正解,只是恰巧卡了数据 目前数据已经更新,这个题打算过一段时间再去写. 目前在学习DP,这个会暂时放一放,很抱歉 这个题是一个国王游戏的变形(国王游戏就把我虐了qwq) 题 ...
 - Luogu P1080国王游戏(贪心)
		
国王游戏 题目链接:国王游戏 ps:题目数据说明了要写高精度. 这个题的答案是\(a.l * a.r < b.l * b.r\)按照这个进行排序 题解中大部分只是如何证明排序是: \(a.l * ...
 - 洛谷$P$2123 皇后游戏 贪心
		
正解:贪心 解题报告: 传送门! 心血来潮打算把$luogu$提高历练地及其之前的所有专题都打通关,,,$so$可能会写一些比较水的题目的题解$QAQ$ 这种题,显然就套路地考虑交换相邻两个人的次序的 ...
 
随机推荐
- 11-1模拟赛 By cellur925
			
期望得分:70+100+60 实际得分:70+20+60 \(qwq\). T1:有一个 \(n\) × \(n\) 的 \(01\) 方格, 图图要从中选出一个面积最大的矩形区域, 要求这个矩形区域 ...
 - C 语言实例 - 删除字符串中的特殊字符
			
C 语言实例 - 删除字符串中的特殊字符 C 语言实例 C 语言实例 删除字符串中的除字母外的字符. 实例 #include<stdio.h> int main() { ]; int i, ...
 - iOS 更改状态栏、导航栏颜色的几种方法
			
ios上状态栏 就是指的最上面的20像素高的部分状态栏分前后两部分,要分清这两个概念,后面会用到: 前景部分:就是指的显示电池.时间等部分:背景部分:就是显示黑色或者图片的背景部分: (一)设置sta ...
 - css实现发光的input输入框
			
效果图截图: 案例代码示下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
 - mongodb-Configuration
			
命令行和配制后文件接口为Mongodb的管理者提供了大量的控制选项.在这篇文章中提供了对于一般应用场景的最佳实践配置. mongod --config /etc/mongod.conf mongod ...
 - python入门之数据类型之字符串
			
str方法 name.capitalize() 将name的首字母大写 name.center(20,'*') 将name居中,长度变为20,其余用*填充 name.count('chy') 返回na ...
 - 物体检测丨Faster R-CNN详解
			
这篇文章把Faster R-CNN的原理和实现阐述得非常清楚,于是我在读的时候顺便把他翻译成了中文,如果有错误的地方请大家指出. 原文:http://www.telesens.co/2018/03/1 ...
 - SPOJ1716 GSS3(线段树)
			
题意 Sol 会了GSS1,GSS3就比较无脑了 直接加个单点修改即可,然后update一下 /* */ #include<cstdio> #include<cstring> ...
 - DVWA之命令注入(command injection)
			
Command injection就是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的 LOW 无论是Windows还是Linux,都可以使用&&连接多个命令 执行 ...
 - Android项目中包名的修改
			
通常修改包名时会造成R文件错误,并且有时带有原因不明的Manifest文件中多处文本混乱. 所以,将目前认为最为简洁方便的修改包名流程记录如下: 假设我们目前的包名为com.pepper.util,我 ...