【链接】点击打开链接


【题意】

实话实说,给 OIER 大神们排队这种工作是最让人头疼的事情了。因为同学们都有自尊 心,都不愿意排后面。 现在共有 n 个同学要排成一列,每个同学有两个属性:影响力和承受能力。给一个同学 造成的心理创伤指数等于所有在他前面同学的影响力之和减去他的承受能力。 请你帮忙安排一下点名顺序,尽量使受到心理创伤最大的同学少受创伤。

1≤n≤50000,1≤影响力≤10000,1≤承受能力≤10^9

【题解】


假设n个人的位置已经随便安排好了(不一定最优);
考虑两个相邻的人i,j;(i<j)
我们下面讨论这两个人要交换位置的条件是什么;
假设他们的影响力和承受力分别为a[],b[],然后1..max(i,j)这些人中,除了这两个人之外,a[]的和为sum.
假设顺序是i,j;
则i所受伤害为sum-b[i],j所受伤害为sum+a[i]-b[j]
假设顺序是j,i
则j所受伤害为sum-b[j],i所受伤害为sum+a[j]-b[i]
要比较的是
max(sum-b[i],sum+a[i]-b[j])和
max(sum-b[j],sum+a[j]-b[i]);
因为
sum-b[i]<sum+a[j]-b[i];
sum-b[j] <sum+a[i]-b[j];
则我们只需要再比较一下sum+a[i]-b[j]和sum+a[j]-b[i]的值就好了.
因为
如果sum+a[i]-b[j]<sum+a[j]-b[i] ①

图中箭头指向的是较大的那个。
会发现,sum+aj-b[i]会是那个最大的数字.
然后前者会都比那个最大值小。
(而前者是按(i,j)的顺序放的)
说明按照(i,j)的顺序放,得到的最大值比较小。
(如果①式反过来..显然就是(j,i)这样放比较小了)
所以如果①式成立
也即a[i]-b[j]<a[j]-b[i]
->a[i]+b[i]<a[j]+b[j]
则按照(i,j)顺序放;
否则调换(i,j)顺序。
则一开始就按照a+b的值升序排一下,就能确定最后的顺序了。

【错的次数】


0

【反思】


在这了写反思

【代码】

#include <bits/stdc++.h>
using namespace std; const int N = 5e4; int n,a[N+10],b[N+10];
pair <int, int> c[N + 10]; int main() {
//    freopen("F:\\rush.txt", "r", stdin);
    ios::sync_with_stdio(0), cin.tie(0);
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i] >> b[i];
        c[i].first = a[i] + b[i], c[i].second = i;
    }
    sort(c + 1, c + 1 + n);
    int ans = 0 - b[c[1].second],temp = 0;
    for (int i = 2; i <= n; i++) {
        temp += a[c[i - 1].second];
        ans = max(ans, temp - b[c[i].second]);
    }
    cout << ans << endl;
    return 0;
}

【】queue的更多相关文章

  1. 【数据结构】 Queue 的简单实现

    [数据结构] Queue 的简单实现 public class XQueue<T> { /// <summary> /// 第一个元素 /// </summary> ...

  2. NYIST 1070 诡异的电梯【Ⅰ】

    诡异的电梯[Ⅰ]时间限制:1000 ms | 内存限制:65535 KB难度:3 描述新的宿舍楼有 N(1≤N≤100000) 层 and M(1≤M≤100000)个学生. 在新的宿舍楼里, 为了节 ...

  3. 【&】位与运算符【|】位或运算符之权限控制算法

    [&]位与运算符: 按位与运算符"&"是双目运算符. 其功能是参与运算的两数各对应的二进位相与.只有对应的两个二进位均为1时,结果位才为1 ,否则为0.参与运算的数 ...

  4. 存储过程 分页【NOT IN】和【>】效率大PK 千万级别数据测试结果

    use TTgoif exists (select * from sysobjects where name='Tonge')drop table Tongecreate table Tonge( I ...

  5. 普通方式 分页【NOT IN】和【>】效率大PK 千万级别数据测试结果

    首现创建一张表,然后插入1000+万条数据,接下来进行测试. use TTgoif exists (select * from sysobjects where name='Tonge')drop t ...

  6. java byte【】数组与文件读写(增加新功能)

    今天在测试直接写的文章: java byte[]数组与文件读写 时,想调用FileHelper类对字节数组以追加的方式写文件,结果无论怎样竟然数据录入不全,重新看了下文件的追加模式,提供了两种方式: ...

  7. Spring 当 @PathVariable 遇上 【. # /】等特殊字符

    @PathVariable注解应该不是新鲜东西了Spring3.0就开始有了 URL中通过加占位符把参数传向后台 举个栗子,如下比较要说的内容比较简单就大概齐的写一下 画面侧 $.ajax({ typ ...

  8. 【php正则】php正则匹配UTF-8格式的中文汉字 和 【,】【,】【。】等符号

    1.php正则匹配UTF-8格式的中文汉字 和 [,][,][.]等符号 if (preg_match_all("/([\x{4e00}-\x{9fa5}]+((,)?)+((,)?)+(( ...

  9. 公式中表达单个双引号【"】和空值【""】的方法及说明

    http://club.excelhome.net/thread-661904-1-1.html 有人问为什么不用三个双引号"""来表示单个双引号["]呢,如果 ...

随机推荐

  1. Cocos2D实现RPG队伍菜单随意调整角色顺序的效果

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;) 前一篇我们实现了队伍实现拖尾效果,可是在实际游戏中我们往往须要 ...

  2. 安装个wampserver 环境 执行php

    php代码执行要有相关环境. 在这里推荐一个环境工具.wampserver :内置了下面工具: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5 ...

  3. HDU 2846 Repository (字典树 后缀建树)

    Repository Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total ...

  4. swift菜鸟入门视频教程-12-21讲

    前段时间录制的swift教程.一直懒就没有发出来,有些教程是在xcode beta2的时候录制的,所以可能如今不太适合了,可是还是会有点帮助,懒了不想写太多的东西了,基本上就是依照官方文档上面的章节做 ...

  5. C#接口,类,集成

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. Linux下ping命令、traceroute命令、tracert命令的使用

    Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”.不能打开网页时会说“你先ping网关地址192.168.1.1试试”. ...

  7. 【canvas】跟随鼠标的星空连线

    2019-01-23 19:57:38 挂一个比较简单的一个canvas应用,利用CPU进行粒子实时计算,直接面向过程写的 帧动画:浏览器在下一个动画帧安排一次网页重绘,  requestAnimat ...

  8. jersey+jetty实现文件上传

    服务配置与启动类 import org.glassfish.jersey.servlet.ServletContainer; import javax.ws.rs.Path; import org.e ...

  9. 洛谷 P1405 苦恼的小明

    P1405 苦恼的小明 题目描述 黄小明和他的合伙人想要创办一所英语培训机构,注册的时候要填一张个人情况的表格,在身高一栏小明犯了愁. 身高要求精确到厘米,但小明实在太高了,无法在纸上填下这么长的数字 ...

  10. gridview-selector的设置

    其实它是跟listview相似的,如果你看下它跟listview的继承关系,就很容易理解了 public class GridView extends AbsListView { /** * Disa ...