问题描述
陪审团制度历来是司法研究中的一个热议话题,由于陪审团的成员组成会对案件最终的结果产生巨大的影响,诉讼双方往往围绕陪审团由哪些人组成这一议题激烈争夺。 小 W 提出了一个甲乙双方互相制衡的陪审团成员挑选方法:假设共有 n 名候选陪审团成员,则由甲先提名 s 位候选人,再由乙在甲提名的 s 位候选人中选出 t 名,作为最终的陪审团成员。显然这里应当有n ≥ s ≥ t。假设候选人 k 对甲、乙的有利程度都可以用一个二元组(����, ����)来表示,����越大说明候选人 k 对甲越有利,����越大则对乙越有利。在此前提下,双方的目标都变得明确:甲要最大化最终陪审团 t 人的 x 之和,最小化 y之和,乙则反之。 现在甲方决定聘请你为律师,并且事先得知了乙方律师的策略:乙方律师会在你提名的 s 名候选人中选出 t 名使得这 t 人的 y 值之和最大,再保证 y 值之和最大的前提下使得 x 值之和尽量小(在对乙方最有利的前提下对甲方最不利)。 现在你应当慎重地提名 s 位候选人使得最终由乙方律师确定的 t 人 x 值和最大,若有多种方案,则应再使被乙方排除掉的 s-t人的 y 值和尽量大,在此基础上最大化 s 人的 x 值 之和,在此基础上最小化 s 人的 y 值 之和。 你的当事人并不关心你提名的具体是哪些人,只要你告诉他你提名的 s 人的 x 值之和 与 y 值之和。
输入
第一行包含三个整数 n,s,t。 接下来 n 行,每行两个整数分别表示xk, yk。
输出
共一行两个整数,分别为 x 值之和与 y 值之和。
样例输入
3 2 1
2 1
3 4
5 2
样例输出
7 3
数据范围
对于 30%的测试数据n ≤ 20
对于 50%的测试数据n ≤ 100
对于 100%的测试数据n ≤ 100000, x, y ≤ 1000000
算法讨论
显然我们要先选出对自己最有利的t个人,然后我们要做到让乙方律师只能选对我们最有利的t个,那么我们剩下的s-t个人的y就要小于t个人中最小的y,排多几次序后选人就好。

#include <cstdio>
#include <algorithm>
#define MAX_N 1000006
using namespace std;
struct arr
{int x,y,m;
}a[MAX_N];
int n,s,t,Min=0x7f7f7f7f;
long long x,y;bool cmp(arr a,arr b)
{if (a.x==b.x)return a.y>b.y;return a.x>b.x;
}bool cmp1(arr a,arr b)
{if (a.y==b.y)return a.x<b.x;return a.y<b.y;
}int main()
{scanf("%d%d%d",&n,&s,&t);for (int i=1;i<=n;i++)scanf("%d%d",&a[i].x,&a[i].y);sort(a+1,a+n+1,cmp1);for (int i=1;i<=n;i++)a[i].m=i;sort(a+s-t+1,a+n+1,cmp);for (int i=s-t+1;i<=s;i++){x+=a[i].x;y+=a[i].y;if (a[i].m<Min)Min=a[i].m;}sort(a+1,a+n+1,cmp1);for (int i=Min-1;i>=Min-s+t;i--){x+=a[i].x;y+=a[i].y;}printf("%lld %lld",x,y);
}

【JZOJ 100029】【NOIP2017提高A组模拟7.8】陪审团 (贪心+排序)相关推荐

  1. JZOJ 5372. 【NOIP2017提高A组模拟9.17】猫

    Description 信息组最近猫成灾了!隔壁物理组也拿猫没办法.信息组组长只好去请神刀手来帮他们消灭猫.信息组现在共有n 只猫(n 为正整数),编号为1 到n,站成了一个环,第i 只猫的左边是第i ...

  2. JZOJ 5392. 【NOIP2017提高A组模拟10.5】Lucky Transformation

    Description Input Output Sample Input 7 2 2343223 4 1 2234 Sample Output 2243233 2334 Data Constrain ...

  3. JZOJ 5371. 【NOIP2017提高A组模拟9.17】组合数问题

    Description 定义"组合数"S(n,m)代表将n 个不同的元素拆分成m 个非空集合的方案数.举个例子,将{1,2,3}拆分成2 个集合有({1},{2,3}),({2},{1,3}),({3 ...

  4. JZOJ 100047. 【NOIP2017提高A组模拟7.14】基因变异

    Description 21 世纪是生物学的世纪,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野. 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能. 因此生物进化与基因的 ...

  5. JZOJ 100041. 【NOIP2017提高A组模拟7.12】列车调度

    Description Input Output Sample Input Sample1: 3 1 2 3 Sample2: 9 1 3 2 4 8 6 9 5 7 Sample Output Sa ...

  6. JZOJ 100030. 【NOIP2017提高A组模拟7.8】为了爱情

    Description Input 输入文件第一行包含一个正整数 k.之后是 k 组测试用例. 每组测试用例的第一行为一个整数 n.接下来 n 行,每行 n 个以空格隔开的数,用来 描述棋盘的初始状态 ...

  7. JZOJ 100026. 【NOIP2017提高A组模拟7.7】图

    Description 有一个n个点n条边的有向图,每条边为< i,f(i),w(i)>,意思是i指向f(i)的边权为w(i)的边,现在小A想知道,对于每个点的si和mi. si:由i出发 ...

  8. JZOJ 5402. 【NOIP2017提高A组模拟10.8】God Knows

    Description Input Output Sample Input 5 3 1 4 5 2 3 4 3 4 1 Sample Output 5 Data Constraint Solution ...

  9. JZOJ 5405. 【NOIP2017提高A组模拟10.10】Permutation

    Description 你有一个长度为n 的排列P 与一个正整数K 你可以进行如下操作若干次使得排列的字典序尽量小 对于两个满足|i-j|>=K 且|Pi-Pj| = 1 的下标i 与j,交换P ...

最新文章

  1. 国庆特惠!超全技术栈来袭!视觉/激光SLAM+点云处理+三维重建+多传感器融合...
  2. switch 使用使用小技巧
  3. ajax实现文件上传
  4. CentOS7 redis-3.2.8 从单机到主从再到集群配置
  5. python—类和对象之浅拷贝和深拷贝详细讲解
  6. WPF学习一--概述
  7. python画饼图存在的问题_Matplotlib 绘制饼图解决文字重叠的方法
  8. 那个 14 岁上大学、17 岁读博、24 岁当教授的天才神童,如今怎么样了?
  9. 递归下降分析器的设计java_数据结构(Java版)教与学(48和60学时教学大纲)
  10. 2020成人高考计算机基础知识题库,成人高考计算机考试全套题库
  11. knockout的监控数组实现 - 司徒正美
  12. 如何提高服务器硬盘读写速度,如何加速硬盘读写速度,如何完全控制ntfs 分区...
  13. 使用Unity动作融合概述
  14. 3D建模高手制作魔兽女精灵王教程,制作你心目中的角色,学会你也可以
  15. 阿里云新优惠活动,幸运券免费领取
  16. SAP PLM CVAPI_DOC_VIEW 获取DMS文档原件URL地址示例(Originals File)
  17. LCD1602知识详解(很详尽的)
  18. 【数学基础】KKT条件
  19. 杰理-watch-手表-AC701-双击屏幕唤醒
  20. Citrix 服务器虚拟化之三十二 XenConvert

热门文章

  1. 计算机硬件资源如何共享,如何设置计算机共享资源
  2. html如何让div一条边斜着,CSS3转换偏斜一侧
  3. (字符串分解器)StringTokenizer类的使用_无名小仙男
  4. 【推荐系统论文精读系列】(二)--Factorization Machines
  5. java商城毕业设计 JavaWeb家具家居购物商城毕业设计(10)下单结算
  6. MySQL常见错误码
  7. java实现社交账号登录
  8. 程序员,不要让自己做兔子(updated) 网上最近流传的一个笑话,关于兔子,狼还有一只老虎的,故事 我就是想打你了,还需要什么理由吗?谁让你是兔子 项目经理是这样当的...
  9. android 百度地图线路规划问题
  10. 理工男,我感觉 win10 挺好用的,一点不卡,为什么有那么多人买Macbook 呢?