老司机的奇怪noip模拟T3-zhugeliang
3. 诸葛亮
(zhugeliang.cpp/c/pas )
【问题描述】
xpp 每天研究天文学研究哲学,对于人生又有一些我们完全无法理解的思考。
在某天无聊学术之后, xpp 打开了 http://web.sanguosha.com, 准备用他心爱的诸葛亮
虐人。进入了八人身份局,作为一位主公,xpp 果断选了诸葛亮,用诸葛亮挑 7 人。
xpp 为什么喜欢周瑜这个武将呢?因为观星是个很牛逼的技能。
观星——回合开始阶段, 你可以观看牌堆顶的 X 张牌 (X 为存活角色的数量且最多为 5) ,
将其中任意数量的牌以任意顺序置于牌堆顶,其余则以任意顺序置于牌堆底。
可见观星这个技能如果用得好那么是可以知道对方所有牌的。 于是 xpp 把 7 个人全部轻
松干掉。
虽然 xpp 的观星永远能知道全场手牌, 但是他想到了这样一个问题: 正常的观星应该会
发生什么呢?
假设每张牌能给诸葛亮带来一定收益,那么 xpp 现在想计算,某种特定情况下,诸葛亮
观星带来的最大收益是多少。
但是 zjr 经过一年的思考,把这道题做出来了。xpp 觉得问题太简单了。他觉得,他都
想了那么久,你怎么可能想出来?于是 xpp 决定加强这个题。假设观星能观 n 张牌,对于每
张牌都有一个收益 v[i],那么他现在要找到一些牌使他能获得的收益和最大。
但是 zjr 经过两年的思考,把这道题做出来了。xpp 觉得问题太简单了。他觉得,他都
想了那么久, 你怎么可能想出来?于是 xpp 决定加强这个题。 他要求选取的那些牌需要是连
续的。
但是 zjr 经过三年的思考,把这道题做出来了。xpp 觉得问题太简单了。他觉得,他都
想了那么久,你怎么可能想出来?于是 xpp 决定加强这个题。根据他的哲学思想,他认为任
何情况都是可能发生的,于是他决定不仅要算出最大收益,还要算出次大收益、第三大收
益……直到第 k 大收益。他想,这下 zjr 这个傻逼应该做不出来了吧。
但是 zjr 经过四年的思考,把这道题做出来了。xpp 觉得问题太简单了。他觉得,他都
想了那么久,你怎么可能想出来?于是 xpp 决定加强这个题。他发现这个似乎是一道原题,
于是他又加了一个条件,俗话说否极泰来,那么收益值就等于它的绝对值。
xpp 智商过于强大,不屑于想此等低端问题,然后你就要把这道题做出来。
【输入】
输入文件名为 zhugeliang.in。
第一行包含一个整数 n,k。
接下来一行,包括 n 个整数,第 i 个数是 v[i]。
【输出】
输出文件名为 zhugeliang.out。
输出共 k 行,每行包括一个整数,第 i 行的数表示第 i 大的收益。
【输入输出样例】
zhugeliang.in
5 2
1 2 -1 -1 3
zhugeliang.out
4
3
【数据范围】
对于 10%的数据,1≤n≤200。
对于 30%的数据,1≤n≤2000。
对于 50%的数据,1≤n≤100000,1≤k≤1000。
对于 100%的数据,1≤n≤100000,1≤k≤n,-1000≤v[i]≤1000。
——————————————————————————————题解
首先都会想到前缀和,就设它为sum
因为是绝对值,所以sum[1]-sum[5]=sum[5]-sum[1]
所以我们就可以设一个二元组(a,b),为| sum[a]-sum[b] |
我们可以将前缀和排序,最大的肯定是(0,n),第二个是(1,n)或(0,n-1),但是这样会有重复
所以我们可以固定每个开头,也就是在排好序的前缀和里,对任意a<n插入所有的(a,n),然后得到一个(a,b)插入一个(a,b-1),插入是喜闻乐见的堆
然后做完了
【我觉得我看题解的功力越来越强了orz】
【↑是个蒟蒻的自白罢了↑】
1 #include <iostream> 2 #include <string.h> 3 #include <cstdlib> 4 #include <cstdio> 5 #include <algorithm> 6 #include <cstring> 7 #include <vector> 8 #include <ctime> 9 #include <queue> 10 #define ivorysi 11 #define mo 10007 12 #define siji(i,x,y) for(int i=(x);i<=(y);i++) 13 #define gongzi(j,x,y) for(int j=(x);j>=(y);j--) 14 #define xiaosiji(i,x,y) for(int i=(x);i<(y);i++) 15 #define sigongzi(j,x,y) for(int j=(x);j>(y);j--) 16 #define ivory(i,x) for(int i=head[x];i;i=edge[i].next) 17 #define pii pair<int,int> 18 #define fi first 19 #define se second 20 #define inf 10000000 21 typedef long long ll; 22 using namespace std; 23 int n,k; 24 int v[100005],sum[100005]; 25 int id[100005]; 26 struct mtwo { 27 int a,b; 28 }; 29 inline bool operator < (mtwo q,mtwo p) { 30 return abs(sum[id[q.a]]-sum[id[q.b]]) < abs(sum[id[p.a]]-sum[id[p.b]]); 31 } 32 inline bool cmp(int a,int b) { 33 return sum[a]>sum[b]; 34 } 35 priority_queue<mtwo> que; 36 int main() { 37 #ifdef ivorysi 38 freopen("zhugeliang.in","r",stdin); 39 freopen("zhugeliang.out","w",stdout); 40 #else 41 freopen("f1.in","r",stdin); 42 #endif 43 scanf("%d%d",&n,&k); 44 siji(i,1,n) { 45 scanf("%d",&v[i]); 46 id[i]=i; 47 } 48 siji(i,1,n) { 49 sum[i]=sum[i-1]+v[i]; 50 } 51 sort(id,id+n+1,cmp); 52 xiaosiji(i,0,n) { 53 que.push((mtwo){i,n}); 54 } 55 siji(i,1,k) { 56 mtwo tmp=que.top();que.pop(); 57 if(tmp.b-1 != tmp.a)que.push((mtwo){tmp.a,tmp.b-1}); 58 printf("%d\n",abs(sum[id[tmp.a]]-sum[id[tmp.b]])); 59 } 60 }
【臣将常怀民生愿 他朝归来春满园】
【廊外恍若先帝共臣把盏对弈似当年】
【得谋太平在人间 吴魏参拜于殿前】
【天下归一 大汉归刘 百姓晏】
如果我记忆力好写字快的话我真的好想以后考历史系……_(:з」∠)_ 可惜一看古文眼睛疼_(:з」∠)_
三国演义亮黑,三国志亮死忠粉
等等我怎么扯到这么远了……
转载于:https://www.cnblogs.com/ivorysi/p/5860713.html
老司机的奇怪noip模拟T3-zhugeliang相关推荐
- 老司机的奇怪noip模拟T1-guanyu
1. 关羽 (guanyu.cpp/c/pas ) [问题描述] xpp 每天研究天文学研究哲学,对于人生又有一些我们完全无法理解的思考. 在某天无聊学术之后, xpp 打开了 http://web. ...
- 山西计算机等级考试科目一模拟试题,考驾照科目一试题100题,老司机教你两招,让你轻松考过!...
原标题:考驾照科目一试题100题,老司机教你两招,让你轻松考过! 很多学员都在问考驾照科目一试题100题,那么小编就分享一下考驾照科目一试题100题吧,这些考驾照科目一试题100题,考驾照的你值得拥有 ...
- 中的挂起是什么意思_仪表板亮奇怪指示灯,乌龟晒太阳是什么意思?老司机:不懂别上路...
随着我国经济的快速发展,人们的收入水平得到很多的提高,越来越多的人都喜欢通过购买一辆小汽车来改善自己的生活质量.现如今越来越多的消费者都喜欢自驾出去游玩,所以消费者在购买汽车的时候通常都会选择高配车型 ...
- 闵梓轩大佬のnoip模拟题D1 总结 2017/10/26
背景 题目概括 T1 题面 分析 90分算法 满分算法 T2 题面 分析 部分分算法 满分算法 满分代码 T3 题面 分析 代码 总结 背景 这道题目是去年的金牌大佬闵梓轩在一年前出的一套noip模拟 ...
- python数据结构推荐书-腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...
原标题:腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗? 稍微关心编程语言的使用趋势的人都知道,最近几年,国内最火的两种语言非 Python 与 Go 莫属,于是,隔三差五就会有人问:这两 ...
- 2.14要来了,老司机教单身狗如何用VR过情人节
在情人节这个虐狗的日子里到来之前,我们来探讨一下严肃的虚拟远程性爱话题. 随着越来越多的人关注VR情色内容,很多行业专家似乎也认为2017年会有更多的人会选择在虚拟世界中进行成人体验. 去年年底的时候 ...
- 通信系统设计与python的书_腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...
原标题:腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗? 稍微关心编程语言的使用趋势的人都知道,最近几年,国内最火的两种语言非 Python 与 Go 莫属,于是,隔三差五就会有人问:这两 ...
- 电脑一复制粘贴就卡死_油门突然卡死,踩刹车根本没用该怎么办?看看老司机怎么说...
要知道在驾校中学习到的只是最为基础的汽车驾驶方法,在实际驾车上路后,不只是路况复杂多变得多加留意,车辆本身也有可能出现一些突发状况,处理不当的话就会大大提升事故的发生概率及其后果的严重性,所以平时得尽 ...
- CyclicBarrier:人齐了,老司机就发车了!
作者 | 王磊 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 上一篇咱讲了 CountDownLatch 可以解决多个线程同步的问题,相比于 j ...
最新文章
- 接口测试用例测试模板
- Matlab学习笔记——文件的打开与关闭
- 基于当前分支的某一个commit号创建分支
- 天翼云从业认证(3.2)天翼云存储产品
- 微信小程序将页面按钮悬浮固定在底部
- SDWebImage实现分析
- 拼智商,谷歌、苹果、微软、亚马逊的AI助手谁赢了?有些结果没料到
- Silverlight 图片路径问题
- Educational Codeforces Round 97 (Rated for Div. 2) F. Emotional Fishermen
- 常用电子个人邮箱账号格式怎么写?
- storm throw 口袋妖怪_pokemon go游戏术语都有哪些 口袋妖怪go玩法术语攻略
- 初始C语言——字符串,转义字符,循环语句
- Chromium浏览器下载
- 卷积神经网络与全连接神经网络
- java证书(java证书过期怎么办)
- Access转出到Mysql,咱自己动手丰衣足食.. -- 纯JS代码
- 2019年感:忆往昔考博岁月,看今朝花样年华
- HFM student Hyperion Financial Management
- Python运维开发工程师养成记(pass语句)
- 未来抗锯齿,FXAA/TXAA