题目描述

  $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. JS-在本页面禁止页面返回

    这个问题是最近遇到的 解决方案我百度的并测试有效 // 如果你希望用户不用有返回功能 可缩写如下 或使用location.replace('url')跳转链接 history.pushState(nu ...

  2. Android安全测试(一)数字签名检测

    1.测试环境 SDK: Java JDK, Android SDK. 下图为利用中间人攻击的手段,将智能电视上所有影片的封面图替换的实际效果图 利用中间人攻击还可以进行token获取等,所以不要轻易使 ...

  3. 20190902 On Java8 第十六章 代码校验

    第十六章 代码校验 你永远不能保证你的代码是正确的,你只能证明它是错的. 测试 测试覆盖率的幻觉 测试覆盖率,同样也称为代码覆盖率,度量代码的测试百分比.百分比越高,测试的覆盖率越大. 当分析一个未知 ...

  4. Eclipse- 使用记录(1)

    1.快捷键篇 (1)常用的快捷键: 1>ctrl+shift+R:查找源 2>ctrl+shift+G:查找引用 3>alt+Enter:查看某文件或文件夹的Properties ( ...

  5. Java设计模式——模板方法设计模式(abstract修饰)

    解释: 一个抽象类中,有一个主方法,再定义 1...n 个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用. 解决的问题: 当功能内部一 ...

  6. Appium+Python之异常自动截图

    运行过程中出现异常情况,我们怎么直观的看到呢?最简单的方法就是可以把异常现象截图下来. 思路:我这里采用get_screenshot_as_file(filename)方法,filename通过获取时 ...

  7. (四:NIO系列) Java NIO Selector

    出处:Java NIO Selector 1.1. Selector入门 1.1.1. Selector的和Channel的关系 Java NIO的核心组件包括: (1)Channel(通道) (2) ...

  8. R语言基础篇——数据对象

    1.基本数据类型(numeric,logical,character,NA,double,complex,integer) 2.日期变量 常用函数 Sys.Date()-返回系统当前的日期,Sys.t ...

  9. maven 打包Scala代码到jar包

    idea的pom.xml文件配置 <dependencies> <dependency> <groupId>org.scala-lang</groupId&g ...

  10. 解决本地mysql服务允许被外部主机连接

    今天在网上百度看了怎么使用外部主机连接本地MySQL服务,发现大多的说法都是不全面的,试了好久,整理下: 1.现创建了一个mysql用户,并赋予常用的操作权限 CREATE USER 'mysql'@ ...