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相关推荐

  1. 老司机的奇怪noip模拟T1-guanyu

    1. 关羽 (guanyu.cpp/c/pas ) [问题描述] xpp 每天研究天文学研究哲学,对于人生又有一些我们完全无法理解的思考. 在某天无聊学术之后, xpp 打开了 http://web. ...

  2. 山西计算机等级考试科目一模拟试题,考驾照科目一试题100题,老司机教你两招,让你轻松考过!...

    原标题:考驾照科目一试题100题,老司机教你两招,让你轻松考过! 很多学员都在问考驾照科目一试题100题,那么小编就分享一下考驾照科目一试题100题吧,这些考驾照科目一试题100题,考驾照的你值得拥有 ...

  3. 中的挂起是什么意思_仪表板亮奇怪指示灯,乌龟晒太阳是什么意思?老司机:不懂别上路...

    随着我国经济的快速发展,人们的收入水平得到很多的提高,越来越多的人都喜欢通过购买一辆小汽车来改善自己的生活质量.现如今越来越多的消费者都喜欢自驾出去游玩,所以消费者在购买汽车的时候通常都会选择高配车型 ...

  4. 闵梓轩大佬のnoip模拟题D1 总结 2017/10/26

    背景 题目概括 T1 题面 分析 90分算法 满分算法 T2 题面 分析 部分分算法 满分算法 满分代码 T3 题面 分析 代码 总结 背景 这道题目是去年的金牌大佬闵梓轩在一年前出的一套noip模拟 ...

  5. python数据结构推荐书-腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...

    原标题:腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗? 稍微关心编程语言的使用趋势的人都知道,最近几年,国内最火的两种语言非 Python 与 Go 莫属,于是,隔三差五就会有人问:这两 ...

  6. 2.14要来了,老司机教单身狗如何用VR过情人节

    在情人节这个虐狗的日子里到来之前,我们来探讨一下严肃的虚拟远程性爱话题. 随着越来越多的人关注VR情色内容,很多行业专家似乎也认为2017年会有更多的人会选择在虚拟世界中进行成人体验. 去年年底的时候 ...

  7. 通信系统设计与python的书_腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...

    原标题:腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗? 稍微关心编程语言的使用趋势的人都知道,最近几年,国内最火的两种语言非 Python 与 Go 莫属,于是,隔三差五就会有人问:这两 ...

  8. 电脑一复制粘贴就卡死_油门突然卡死,踩刹车根本没用该怎么办?看看老司机怎么说...

    要知道在驾校中学习到的只是最为基础的汽车驾驶方法,在实际驾车上路后,不只是路况复杂多变得多加留意,车辆本身也有可能出现一些突发状况,处理不当的话就会大大提升事故的发生概率及其后果的严重性,所以平时得尽 ...

  9. CyclicBarrier:人齐了,老司机就发车了!

    作者 | 王磊 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 上一篇咱讲了 CountDownLatch 可以解决多个线程同步的问题,相比于 j ...

最新文章

  1. 接口测试用例测试模板
  2. Matlab学习笔记——文件的打开与关闭
  3. 基于当前分支的某一个commit号创建分支
  4. 天翼云从业认证(3.2)天翼云存储产品
  5. 微信小程序将页面按钮悬浮固定在底部
  6. SDWebImage实现分析
  7. 拼智商,谷歌、苹果、微软、亚马逊的AI助手谁赢了?有些结果没料到
  8. Silverlight 图片路径问题
  9. Educational Codeforces Round 97 (Rated for Div. 2) F. Emotional Fishermen
  10. 常用电子个人邮箱账号格式怎么写?
  11. storm throw 口袋妖怪_pokemon go游戏术语都有哪些 口袋妖怪go玩法术语攻略
  12. 初始C语言——字符串,转义字符,循环语句
  13. Chromium浏览器下载
  14. 卷积神经网络与全连接神经网络
  15. java证书(java证书过期怎么办)
  16. Access转出到Mysql,咱自己动手丰衣足食.. -- 纯JS代码
  17. 2019年感:忆往昔考博岁月,看今朝花样年华
  18. HFM student Hyperion Financial Management
  19. Python运维开发工程师养成记(pass语句)
  20. 未来抗锯齿,FXAA/TXAA

热门文章

  1. ListView加载图片错位的问题,解决很简单
  2. python模拟足球射门_用Python模拟2018世界杯夺冠之路
  3. imperva-代理安装
  4. 关闭Windows Defender实时保护,暂时关闭和永久关闭方法
  5. 智商情商哪个重要_高智商和高情商究竟哪个更重要?
  6. MiniFly微型四轴开发学习日志(一)——MiniFly 微型四轴软件原理
  7. 网络推广宝 v2007 官方
  8. 多项式A除以B(模拟多项式除法)
  9. 美国诚实签经验贴汇总
  10. 大规模时间序列数据自动异常检测架构