题目描述

  $X$国和$Y$国开战了!
  作为$X$国的军事参谋,你了解到事态的严峻性。为了更好地应付敌人,你收集到了$Y$国城市中$n$个据点的信息,你打算攻破这$n$个据点!
  每个据点$i$的信息由火力系数$A[i]$、士兵数目$B[i]$组成,作为一名具有高超预谋能力的参谋,你当然可以借此分析情势。实际上,你分析得出,攻占一个据点 i,为了稳定己方士兵士气,至少需要$B[i]$个士兵参战,战后将会有$A[i]$个士兵阵亡。
  由于不停地调谴,可用的士兵已经不多了,于是在一个据点参战且未阵亡的士兵可能会参加别的据点的战斗。你需要计算出攻破这$n$个据点所需要的最少的士兵数目。
  然而更糟的,一共有$T$个城市,所以你需要将$T$个城市所需的最少士兵数目依次输出。


输入格式

第一行为一个整数$T$,表示城市数目。
接下来$T$组数据。每组数据第一行包含一个数$n$,表示据点数目;接下来$n$行,其中第$i$行包含两个数,分别表示这个据点的火力系数$A[i]$以及士兵数目$B[i]$。


输出格式

对于每个城市输出一行,表示攻占这个城市所有据点所需要的最少士兵数目。


样例

样例输入:

2
2
4 7
1 5
3
1 4
4 6
3 5

样例输出:

8
10


数据范围与提示

对于前$20\%$的数据$n\leqslant 9$
对于前$40\%$的数据$n\leqslant 1,000$
对于$100\%$的数据$n\leqslant 100,000,T\leqslant 10,1\leqslant A[i]\leqslant B[i]\leqslant 1,000,000,000$。
由于本题读入数据较多,建议使用较快的读入方式。


题解

祝大家国庆快乐,集训快乐!

显然我们将损失大的排在后面会更优,那么你就$A$了,真的没啥好说的

时间复杂度:$\Theta(T\times n\log n)$。

期望得分:$100$分。

实际得分:$100$分。


代码时刻

#include<bits/stdc++.h>
using namespace std;
struct rec{int a,b,delta;}e[100001];
int n;
long long ans,now;
bool cmp(rec a,rec b){return a.delta>b.delta;}
int main()
{
int T;scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
ans=now=0;
for(int i=1;i<=n;i++)
{
scanf("%d%d",&e[i].a,&e[i].b);
e[i].delta=e[i].b-e[i].a;
}
sort(e+1,e+n+1,cmp);
for(int i=1;i<=n;i++)
{
if(now<e[i].b)
{
ans+=e[i].b-now;
now=e[i].b;
}
now-=e[i].a;
}
printf("%lld\n",ans);
}
return 0;
}

rp++

[CSP-S模拟测试]:X国的军队(贪心)的更多相关文章

  1. [CSP-S模拟测试]:密州盛宴(贪心)

    江城子·密州出猎老夫聊发少年狂,左牵黄,右擎苍,锦帽貂裘,千骑卷平冈.为报倾城随太守,亲射虎,看孙郎.酒酣胸胆尚开张,鬓微霜,又何妨!持节云中,何日遣冯唐?会挽雕弓如满月,西北望,射天狼.(这首词通过 ...

  2. [CSP-S模拟测试]:任务分配(最短路+贪心+DP)

    题目传送门(内部题149) 输入格式 每个测试点第一行为四个正整数$n,b,s,m$,含义如题目所述. 接下来$m$行,每行三个非负整数$u,v,l$,表示从点$u$到点$v$有一条权值为$l$的有向 ...

  3. [CSP-S模拟测试]:big(Trie树+贪心)

    题目描述 你需要在$[0,2^n)$中选一个整数$x$,接着把$x$依次异或$m$个整数$a_1~a_m$.在你选出$x$后,你的对手需要选择恰好一个时刻(刚选完数时.异或一些数后或是最后),将$x$ ...

  4. [CSP-S模拟测试]:kill(二分答案+贪心)

    题目传送门(内部题50) 输入格式 第一行包含四个整数$n,m,s$,表示人数.怪物数及任务交付点的位置.第二行包含$n$个整数$p_1,p_2,...,p_n$.第三行包含$n$个整数$q_1,q_ ...

  5. 10.1 csp-s模拟测试(b) X国的军队+排列组合+回文

    T1 X国的军队 贪心,按$b-a$的大小降序排序,然后就贪心吧 #include<iostream> #include<cstdio> #include<algorit ...

  6. csp-s模拟测试10.1(b)X 国的军队,排列组合, 回文题解

    题面:https://www.cnblogs.com/Juve/articles/11615883.html X 国的军队: 好像有O(T*N)的直接贪心做法 其实多带一个log的二分也可以过 先对所 ...

  7. Android单元测试与模拟测试详解

    测试与基本规范 为什么需要测试? 为了稳定性,能够明确的了解是否正确的完成开发. 更加易于维护,能够在修改代码后保证功能不被破坏. 集成一些工具,规范开发规范,使得代码更加稳定( 如通过 phabri ...

  8. [开源]微信在线信息模拟测试工具(基于Senparc.Weixin.MP开发)

    目前为止似乎还没有看到过Web版的普通消息测试工具(除了官方针对高级接口的),现有的一些桌面版的几个测试工具也都是使用XML直接请求,非常不友好,我们来尝试做一个“面向对象”操作的测试工具. 测试工具 ...

  9. 安装nginx python uwsgi环境 以及模拟测试

    uwsgi帮助文档: http://uwsgi-docs-cn.readthedocs.io/zh_CN/latest/WSGIquickstart.html http://uwsgi-docs.re ...

随机推荐

  1. 38 是否要使用memory引擎的表

    38 是否要使用memory引擎的表 内存表的数据组织结构 create table t1(id int primary key, c int) engine=Memory; create table ...

  2. 【ABAP系列】SAP ABAP 优化LOOP循环的一点点建议

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 优化LOOP循 ...

  3. mac 添加mysql的环境变量和删除mysql

    添加环境变量 1.创建 .bash_profile,已创建过忽略这步 (1)启动终端 (2)进入当前用户的home目录(默认就是):         cd ~ 或 cd /Users/YourMacU ...

  4. [Python3] 007 列表的遍历,你是 for 联盟还是 while 部落

    目录 少废话,直接上例子 for 联盟 for 与 list 的简单合作 for 的老搭档 range() for 与嵌套列表(双层列表) for 从 if 那儿认识的 else 循环"三杰 ...

  5. JAVA总结--JDK版本区别

    jdk1.5的新特性:  1.泛型  2.自动拆箱装箱  3.foreach   4.静态导入(Static import) 此外,枚举.元数据(Metadata).线程池.Java Generics ...

  6. Web API 入门三(参数绑定)

    学到现在,感觉到微软的.NET各种框架和模型基础大致都差不多,所以,这部分内容大致和MVC部分差不多.在学习参事绑定之前,我们肯定要知道Controller(即控制器)是啥干啥的. 其实,Contro ...

  7. QT 5.12安装

    QT 5.12为最新的LTS版本,将通过该版本开始QT的学习 1.软件下载 QT5.12下载地址:http://download.qt.io/archive/qt/5.12/ 当前最新版本为5.12. ...

  8. (六:NIO系列) 相关设计模式

    出处:  反应器模式 vs 观察者模式  反应器模式 vs 生产者消费者模式 反应器模式 vs 观察者模式 反应器模式 是一种为处理服务请求并发提交到一个或者多个服务处理程序的事件设计模式.当请求抵达 ...

  9. C# 打印机连接状态判断

    原文:https://www.cnblogs.com/Old-Fish/p/6258118.html /// <summary> /// 判断是否连接打印机 /// </summar ...

  10. socket中TCP的三次握手连接和四次握手释放

    三次握手连接 A: 我进来了啊 B:(有人来了安排个位子)回复:好的你进来吧 A:好的: 客户端向服务器发送一个SYN J 服务器向客户端响应一个SYN K,并对SYN J进行确认ACK J+1 客户 ...