JZOJ_100029. 【NOIP2017提高A组模拟7.8】陪审团 (Standard IO)
Description
Input
Output
Solution
若甲方只能选t名,那乙方就别无选择了。那甲方选s名,乙方是否能也别无选择的选t名呢?
是能的!
首先,将yk从小到大排序(第一次),去后(n-s+t)名。
那么甲方在后面无论怎么选t名,乙方也只能选这t名,因为都比前(s-t)名对乙方的贡献大。
因为要使对甲方的贡献最大,那么在将后(n-s+t)名以xk为关键字从大到小排序(第二次),选前t名。
因为还要求(s-t)名对乙方的贡献尽量大,在将出去t名的序列以yk为关键字从大到小排序(第三次)。
只要第三次排序的序列的yk值不比所选的t名的最小的yk值大,就可以选,选完(s-t)个即可。
代码
1 var 2 ansx,ansy:int64; 3 n,s,t:longint; 4 xk,yk,a,b:array [0..100001] of longint; 5 procedure init; 6 var 7 i:longint; 8 begin 9 readln(n,s,t); 10 for i:=1 to n do 11 readln(xk[i],yk[i]); 12 end; 13 14 procedure qsort1(l,r:longint); 15 var 16 i,j,mid1,mid2,tk:longint; 17 begin 18 if l>r then exit; 19 i:=l; j:=r; 20 mid1:=yk[(l+r) div 2]; 21 mid2:=xk[(l+r) div 2]; 22 repeat 23 while (yk[i]<mid1) or (yk[i]=mid1) and (xk[i]>mid2) do inc(i); 24 while (yk[j]>mid1) or (yk[j]=mid1) and (xk[j]<mid2) do dec(j); 25 if i<=j then 26 begin 27 tk:=xk[i]; xk[i]:=xk[j]; xk[j]:=tk; 28 tk:=yk[i]; yk[i]:=yk[j]; yk[j]:=tk; 29 inc(i); dec(j); 30 end; 31 until i>j; 32 qsort1(i,r); 33 qsort1(l,j); 34 end; 35 36 procedure qsort2(l,r:longint); 37 var 38 i,j,mid1,mid2,tk:longint; 39 begin 40 if l>r then exit; 41 i:=l; j:=r; 42 mid1:=xk[(l+r) div 2]; 43 mid2:=yk[(l+r) div 2]; 44 repeat 45 while (xk[i]>mid1) or (xk[i]=mid1) and (yk[i]>mid2) do inc(i); 46 while (xk[j]<mid1) or (xk[j]=mid1) and (yk[j]<mid2) do dec(j); 47 if i<=j then 48 begin 49 tk:=xk[i]; xk[i]:=xk[j]; xk[j]:=tk; 50 tk:=yk[i]; yk[i]:=yk[j]; yk[j]:=tk; 51 inc(i); dec(j); 52 end; 53 until i>j; 54 qsort2(i,r); 55 qsort2(l,j); 56 end; 57 58 procedure qsort3(l,r:longint); 59 var 60 i,j,mid1,mid2,tk:longint; 61 begin 62 if l>r then exit; 63 i:=l; j:=r; 64 mid1:=b[(l+r) div 2]; 65 mid2:=a[(l+r) div 2]; 66 repeat 67 while (b[i]>mid1) or (b[i]=mid1) and (a[i]>mid2) do inc(i); 68 while (b[j]<mid1) or (b[j]=mid1) and (a[j]<mid2) do dec(j); 69 if i<=j then 70 begin 71 tk:=a[i]; a[i]:=a[j]; a[j]:=tk; 72 tk:=b[i]; b[i]:=b[j]; b[j]:=tk; 73 inc(i); dec(j); 74 end; 75 until i>j; 76 qsort3(i,r); 77 qsort3(l,j); 78 end; 79 80 procedure main; 81 var 82 i,num,min,tk:longint; 83 begin 84 ansx:=0; ansy:=0; num:=0; 85 qsort1(1,n); 86 for i:=1 to s-t do 87 begin 88 inc(num); 89 a[num]:=xk[i]; b[num]:=yk[i]; 90 end; 91 qsort2(s-t+1,n); 92 min:=maxlongint; 93 for i:=s-t+1 to s do 94 begin 95 ansx:=ansx+xk[i]; 96 ansy:=ansy+yk[i]; 97 if yk[i]<min then min:=yk[i]; 98 end; 99 for i:=s+1 to n do 100 begin 101 inc(num); 102 a[num]:=xk[i]; b[num]:=yk[i]; 103 end; 104 qsort3(1,num); 105 tk:=0; 106 for i:=1 to num do 107 if b[i]<=min then 108 begin 109 inc(tk); 110 ansx:=ansx+a[i]; 111 ansy:=ansy+b[i]; 112 if tk=s-t then break; 113 end; 114 writeln(ansx,' ',ansy); 115 end; 116 117 begin 118 init; 119 main; 120 end.
JZOJ_100029. 【NOIP2017提高A组模拟7.8】陪审团 (Standard IO)相关推荐
- JZOJ 5372. 【NOIP2017提高A组模拟9.17】猫
Description 信息组最近猫成灾了!隔壁物理组也拿猫没办法.信息组组长只好去请神刀手来帮他们消灭猫.信息组现在共有n 只猫(n 为正整数),编号为1 到n,站成了一个环,第i 只猫的左边是第i ...
- 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 ...
- JZOJ 5371. 【NOIP2017提高A组模拟9.17】组合数问题
Description 定义"组合数"S(n,m)代表将n 个不同的元素拆分成m 个非空集合的方案数.举个例子,将{1,2,3}拆分成2 个集合有({1},{2,3}),({2},{1,3}),({3 ...
- JZOJ 100047. 【NOIP2017提高A组模拟7.14】基因变异
Description 21 世纪是生物学的世纪,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野. 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能. 因此生物进化与基因的 ...
- 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 ...
- JZOJ 100030. 【NOIP2017提高A组模拟7.8】为了爱情
Description Input 输入文件第一行包含一个正整数 k.之后是 k 组测试用例. 每组测试用例的第一行为一个整数 n.接下来 n 行,每行 n 个以空格隔开的数,用来 描述棋盘的初始状态 ...
- JZOJ 100026. 【NOIP2017提高A组模拟7.7】图
Description 有一个n个点n条边的有向图,每条边为< i,f(i),w(i)>,意思是i指向f(i)的边权为w(i)的边,现在小A想知道,对于每个点的si和mi. si:由i出发 ...
- 【NOIP2017提高A组模拟9.5】 NYG的背包
题目描述 N Y G NYG NYG有一个神奇的背包,每放进去一个物品,背包的体积就会变大. 也就是说,每放进一个物品,背包会被占用一定的体积,但是紧接着背包的总体积又会增大一定的值(注意是在放入物品 ...
- 【NOIP2017提高A组模拟10.7】Confess
Description: 小w 隐藏的心绪已经难以再隐藏下去了. 小w 有n + 1(保证n 为偶数) 个心绪,每个都包含了[1,2n] 的一个大小为n 的子集. 现在他要找到隐藏的任意两个心绪,使得 ...
最新文章
- desc excel 公式_Excel小技巧之Power Pivot Generate函数、高级DAX函数与常用筛选器函数...
- 外网win10 64位环境下 为内网win7 32位安装三方包的最靠谱手段:python64位、32位全安装。...
- 白嫖我常用的 11 个超火的前端必备在线工具,终于有时间上班摸鱼了
- 【Python】蒙特卡罗方法计算圆周率及给定随机数种子
- input和img图片水平对齐
- Android之封装支付宝支付
- 这就是搜索引擎--读书笔记五--索引的建立与更新
- “王炸”来了?苹果下一代Mac Pro将搭载两颗M1 Ultra芯片
- centos telnet提示No route to host
- 使用Windows 7 管理Windows 2008 R2
- Spring源码之事务(一)
- 用pywinhook或pyhook监听鼠标事件
- linux版qq怎么传文件,QQ for linux终于能在线传送文件了~
- OLED(1)与LDC区别
- html点击弹出文本框,html制作,点击文字超链接显示文本框,再点击文字超链接隐藏文本框...
- 新买电脑如何做到长时间不卡顿
- 数据库原理及应用(MySQL版)MySQL实验指导参考答案(实验一到实验八)
- 再谈异常处理try-catch-finally
- CSS布局与定位,flow流,float
- Java密码学原型算法实现——第二部分:单钥加密算法
热门文章
- 50个最好的firefox扩展让你尽情冲浪
- cmake基础教程(11)add_subdirectory如何添加非子目录的CMakeLists.txt
- 蒋涛对话王成录:哪怕退休了我都想在中国把 HarmonyOS 做成
- 哪里查看计算机最近打开的文档,W7电脑系统中如何查看最近打开过的文档项目...
- MFC学习笔记 — 看小白如何实现音乐播放器(USB-HID 声卡 wav播放)
- 钙钛矿Cs2AgBiBr6|三氟乙胺碘F3EAI|4-三氟甲基苯胺溴CF3PhABr
- 概念建模(CDM)-------数据建模(一)
- spd耗材管理流程图_医用耗材SPD管理模式详解
- 读古诗系列--王维·酌酒与裴迪
- MAX40026 280ps高速比较器开发资料原理图源代码