luogu2123 皇后游戏
好题。
网上看到的范围是:\(T \leq 10\),$ n \leq 50000$, $ a_i,b_i \leq 10^9$。
我们按照贪心惯常的思路考虑交换相邻的两个人。容易发现,对于相邻的两个人,总是后一个人的答案更大一点。而我们的目的,是让两个人中后一个人的答案更小(这样可以让这两个人后面的答案更小)。
设当前在考虑 \(i\) 与\(i+1\)。记前\(i-1\)号的和为\(sum\)。欲使后面的人答案更小一点,假设\(i\)在前是后面的人答案更小一点,则有
\]
\]
前者小于后者。
将它们合并到一个max里头,有
\]
\]
前者小于后者。
发现第二项相同,可以同时抛去。(想不通的话想一想$ \max(a, 1)<\max(b, 1)$是怎么回事就好了)
得到
\]
\]
前者小于后者。
同时抛去 \(sum\) 得到
\]
\]
前者小于后者。
同时减去$ a_i+a_{i+1}+b_i+b_{i+1}$得到
\]
化开得到
\]
这就是排序条件。
然后就很简单啦qwq。
#include <algorithm>
#include <iostream>
#include <cstdio>
using namespace std;
struct Node{
long long aa, bb;
}nd[50005];
int T, n;
long long dp[50005], sum;
bool cmp(Node x, Node y){
return min(x.aa, y.bb)<min(y.aa, x.bb);
}
int main(){
cin>>T;
while(T--){
scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%lld %lld", &nd[i].aa, &nd[i].bb);
sort(nd+1, nd+1+n, cmp);
sum = dp[0] = 0;
for(int i=1; i<=n; i++){
sum += nd[i].aa;
dp[i] = max(dp[i-1], sum) + nd[i].bb;
}
printf("%lld\n", dp[n]);
}
return 0;
}
luogu2123 皇后游戏的更多相关文章
- P2123 皇后游戏
题目背景 还记得 NOIP 2012 提高组 Day1 的国王游戏吗?时光飞逝,光阴荏苒,两年 过去了.国王游戏早已过时,如今已被皇后游戏取代,请你来解决类似于国王游 戏的另一个问题. 题目描述 皇后 ...
- [洛谷P2123]皇后游戏
很抱歉,这个题我做的解法不是正解,只是恰巧卡了数据 目前数据已经更新,这个题打算过一段时间再去写. 目前在学习DP,这个会暂时放一放,很抱歉 这个题是一个国王游戏的变形(国王游戏就把我虐了qwq) 题 ...
- luoguP2123 皇后游戏——微扰法的应用与排序传递性的证明
题目背景 还记得 NOIP 2012 提高组 Day1 的国王游戏吗?时光飞逝,光阴荏苒,两年 过去了.国王游戏早已过时,如今已被皇后游戏取代,请你来解决类似于国王游 戏的另一个问题. 题目描述 皇后 ...
- 洛谷 P2123 皇后游戏 解题报告
P2123 皇后游戏 题意: 给定\(T\)组长为\(n\)的\(A\),\(B\)数组和\(C\)的计算方法,求一种排列方法,使最大的\(C\)最小化. 数据范围: \(1 \le T \le 10 ...
- Luogu P2123 皇后游戏(贪心)
题目链接:P2123 皇后游戏 如果证明这个题为什么是贪心的话,我是不会的,但是一看这个题目就是一个贪心,然后满足贪心的性质: 都能从两个人(东西)扩展到n个人(东西) 一定能从相邻状态扩展到不相邻的 ...
- luoguP2123 皇后游戏(贪心)
luoguP2123 皇后游戏(贪心) 题目 洛谷题目chuanso 题解 有一篇好题解,我就懒得推式子了,毕竟打到电脑上还是很难的 牛逼题解传送门 code #include<iostream ...
- 【流水调度问题】【邻项交换对比】【Johnson法则】洛谷P1080国王游戏/P1248加工生产调度/P2123皇后游戏/P1541爬山
前提说明,因为我比较菜,关于理论性的证明大部分是搬来其他大佬的,相应地方有注明. 我自己写的部分换颜色来便于区分. 邻项交换对比是求一定条件下的最优排序的思想(个人理解).这部分最近做了一些题,就一起 ...
- luogu P2123 皇后游戏
传送门 跟国王游戏一样的分析 考虑相邻的两个大臣,设他们前面的\(\sum a_j\)为\(s\),同时注意到后面人的贡献更大 所以\(i\)在前面时,\(c_j=\max(\max(c_{last} ...
- CH模拟赛 皇后游戏
/* 做的时候手推了一下n=2的四种情况,再排一下序就可以了,证明不是很严谨,但我想这就行了,毕竟全是套路 */ #include<iostream> #include<cstdio ...
随机推荐
- Tomcat 下载及配置
1.下载 下载地址:http://tomcat.apache.org/ 进去后下拉到底部 2.解压 Tomcat不需要安装,直接解压即可.解压后会得到这么一个文件夹 3.在MyEclipse中配置To ...
- SpringMVC注解方式与文件上传
目录: springmvc的注解方式 文件上传(上传图片,并显示) 一.注解 在类前面加上@Controller 表示该类是一个控制器在方法handleRequest 前面加上 @RequestMap ...
- Java基础语法(数组)
第4天 Java基础语法 今日内容介绍 u 流程控制语句(switch) u 数组 第1章 流程控制语句 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句 ...
- Kendo MVVM 数据绑定(四) Disabled/Enabled
Kendo MVVM 数据绑定(四) Disabled/Enabled Disabled 和 Enabled 绑定可以根据 ViewModel 的某个属性值的 true,false 来设置 DOM 元 ...
- mui轮播图
轮播组件是mui提供的一个核心组件,在该核心组件基础上,衍生出了图片轮播.可拖动式图文表格.可拖动式选项卡.左右滑动9宫格等组件,这些组件有较多共同点.Dom构造: <div class=&qu ...
- BZOJ 4563: [Haoi2016]放棋子
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 389 Solved: 248[Submit][Status][Discuss] Descriptio ...
- 【TensorFlow入门完全指南】神经网络篇·卷积神经网络
加载数据集. 这里的keep_prob是dropout的一个参数.dropout是一种随机置零的策略,用来防止模型过拟合. 这里定义两层,上面是卷积层,下面是池化层. 搭建了一层卷积.一层池化.一层卷 ...
- AMD、CMD规范
本文原链接:https://cloud.tencent.com/developer/article/1177217 AMD && CMD 前言 一.模块 二.CommonJS 三.AM ...
- 任务管理器 用 Ctrl + Shift + Esc 替换 Ctrl + Alt + Del
任务管理器 用 Ctrl + Shift + Esc 替换 Ctrl + Alt + Del
- 组件的通信 :provide / inject 对象进入后,就等于不用props,然后内部对象,直接复制可以接受数组,属性不能直接复制,可以用Object.assgin覆盖对象,或者Vue的set 双向绑定数据
组件的通信 :provide / inject 对象进入后,就等于不用props,然后内部对象,直接复制可以接受数组,属性不能直接复制,可以用Object.assgin覆盖对象,或者Vue的set 双 ...