算法与数据结构实验题 4.2  残忍的沟里学姐

★实验任务

现在沟里学姐有一把激光刀,现在有 n 个人站在一排(每隔一米站一个人), 沟里对每个人都有一个仇恨值 ai (仇恨值可正可负,因为有些人可能是他的队友, 可能是他的敌人) ,沟里为了消灭更多敌人,因此他会不择手段,可能也把自己队友给杀了。他开始用他激光刀向右刺杀(只能进行一次刺杀),他想让他刺杀的人的仇恨值和最大。沟里的激光刀的长度最多可调节到 k 米,请你帮他计算他发动激光刀的位置 l 和激光刀结束的为 r (r-l+1<=k)。当存在多种方案使得仇恨值最大时,选择发动位置 l 最小的方案,再选择激光刀调节长度 r-l+1 最小的方案。

★数据输入

输入第一行为两个正整数 n(1<=n<=100000),k(0<k<=n),表示出现n 个人, 沟里的激光刀最多调节到 k 米。

输入第二行为 n 个整数,表示沟里对在 i 米处的人的仇恨值

ai(-1000<=a[i]<=1000)。

★数据输出

输出为一行三个数。第一个数为可获得的最大仇恨值和,第二个数为激光刀发位置 l,第三个数为激光刀结位置 r。

输入示例 1

输出示例 1

6 3

-1 2 -6 5 -5 6

6 4 6

输入示例

输出示例

5 5

-1 -1 -1 -1 -1

-1 1 1

hint

样例 1:沟里站在 4 米的地方发出两米长的激光刀,刺杀了 a[4]、a[5]、a[6]。


解题思路:

滑窗算法。。。


#include <cstdio>
#include <map>
#include <queue>
using namespace std;
pair <int ,int> p;
int main()
{int n,sum=0,maxsum=-100000,l,r,k,x;    scanf ("%d %d",&n,&k);//初始化一个队列     pair<int,int>储存元素值,元素位置 。 queue <pair<int,int> > q;   for (int i=0;i<n;i++){scanf ("%d",&x);while ((q.size()>=k)||(q.size()>1&&q.front().first<0)){// 当队列长度大于等于K时,弹出队首。// 当队首元素小于0,且队列长度大于1时,弹出对手元素。 sum=sum-q.front().first;q.pop();if (sum>maxsum){maxsum=sum;l=q.front().second+1;r=q.back().second+1;}}p.first=x;p.second=i;q.push(p);while (sum<0){//当当前子序列和小于零时,清零,重新计算子序列和。 sum-=q.front().first;q.pop();}sum+=x;if (q.size()<=k&&sum>maxsum){maxsum=sum;l=q.front().second+1;r=q.back().second+1;}}printf ("%d %d %d\n",maxsum,l,r);return 0;
}

残忍的沟里学姐 (数据结构作业)相关推荐

  1. 当年,兔子学姐靠这个面试小抄拿了个22k

    本文顺序是操作系统(jvm).网络.数据库(mysql/redis),都是当时兔子的学姐准备面试的时候总结的,学生面试基本不会跑出这个范围,懂行的应该能看出来. 学姐原话:因为我本身的知识是A集合,我 ...

  2. 5分绩点转4分_作为一名大学生,如何规划4年大学生活?学姐:建议从这5点做起...

    导语:作为一名大学生,如何规划4年大学生活?学姐:建议从这5点做起 进入大学后,同学们会拥有更多可自由支配的时间.大学课余时间多,家长不在身边,老师又不管.同学们可以说是彻底自由了.但是世界上没有绝对 ...

  3. 19南大软院上岸学姐考研经验分享

    分享一篇攻略贴 各科:政治69,英二75,数二132,专业119.总分395. 英语: 单词:一定要每天背,建议每天半小时以上.十一月之前都不算晚,不要急于求成.方式最好是动手写!!不要只是背,读,甚 ...

  4. 采访优秀学长学姐后的感悟与体会

    这个暑假我很荣幸代表我们学院对一批优秀的已经就业的学长学姐进行采访,采访小组共八人,对几十位学长学姐进行了为期十天的采访,被采访的学长学姐大都在一线大城市就业,我们这次主要去了深圳和广州,他们从事于本 ...

  5. 怒肝1.3w+字给学姐讲明白计算机专业大学四年到底该学什么?

    点击上方"五分钟学算法",选择"星标"公众号 重磅干货,第一时间送达 网上已经有挺多关于"计算机专业大学四年到底应该学什么?"相关的文章了. ...

  6. 专访计算机专业学生:大学里学不到实践经验

    人物介绍: 张文杰(化名),某大学计算机专业大三学生 我是一名计算机专业大三的学生,看到学哥.学姐们为了找工作而陷入忧愁,忙忙碌碌地奔波于各种大小的招聘会,我开始对自己的未来感到深深的担忧.我们学校并 ...

  7. 到底TM的怎么谈恋爱【学姐来教你】

    到底他妈的应该怎么把妹[初级教程] 其实我也不想写这么无聊的东西可是学弟一遍一遍问啊,学姐大三了啊很忙啊不能天天看着你给你分析感情问题啊,学姐觉得应该授之以渔不能授之以鱼啊,于是学姐版把妹课堂开课啦! ...

  8. 川大计算机生物学双学位,【学长学姐对你说】计算机双学位经验分享

    原标题:[学长学姐对你说]计算机双学位经验分享 16级英专 张娅丁 辅修计算机科学与技术双学位 你们可以看到这个培养方案是我们这一级的双学位的培养方案,它其实没有按照我们学习的顺序来排列,我也是上了之 ...

  9. 记 计算机 科学学院 教师,学姐般的老师--记校优秀青年教师、计算机科学与工程学院刘文娟学生...

    她的脸上时常保持着微笑,给人一种久违的亲切感.也许就是这种笑容,使学生在教师测评时情不自禁地投了她一票.在2007年安徽理工大学青年教师课堂竞赛中,她通过重重考验,荣获二等奖.她就是青年教师优秀奖获得 ...

最新文章

  1. c语言一行黑白相间的瓷砖,C语言编程练习15:贴瓷砖
  2. pt-table-sync常用参考
  3. 矩阵sum_推荐系统——从协同过滤到矩阵分解
  4. java uri_Android中的Uri与Java中的URI类
  5. GCC的编译和调试--入门介绍
  6. js post中文乱码 php,AJAX之POST数据中文乱码如何解决
  7. SVN 回滚(撤回)提交的代码
  8. 大数据学习笔记52:Flume Interceptors(Flume拦截器)
  9. Python内置函数sorted()从入门到精通
  10. SONiC项目的发展及其介绍
  11. Java final关键字详解
  12. K2P路由器刷机和拨号上网
  13. 吱口令生成淘宝BP抢购链接
  14. 电子计算机是采用什么进制法,计算机内部使用什么进制
  15. linux 汇编 `.eabi_attribute',交叉编译arm-none-eabi-gcc编译汇编文件(startup_stm32f10x_hd.S)遇到的有关问题(2)...
  16. 如何把照片压缩到20k一下_如何把2寸彩照压缩到20k以下?
  17. 3d打印英语文献_3D打印合集,从设计,技术到工业制造应用!
  18. 荒野今天维护服务器吗,荒野行动1月29日为什么无法登录原因 今天停服更新维护吗?...
  19. 无机铜杀真菌剂行业调研报告 - 市场现状分析与发展前景预测
  20. 稳定可靠的Windows Server 2008 R2服务器操作系统

热门文章

  1. jQuery 关于手机和带有区号的座机的正则校验
  2. fbx模型导入unity,绑了骨骼加蒙皮法线就反
  3. Python-Flask开发微电影网站(四)
  4. mysql中排序再分页遇到的重复数据
  5. go : gin + lumberjack 输出日志文件
  6. 《MLB棒球创造营》:棒球团建·一球成名
  7. 流形间的映射(拉回映射与推前映射)及根据其定义的协变矢量和逆变矢量;切空间与余切空间
  8. 最受IT公司欢迎的 30 款开源软件
  9. phpstorm快速编辑模板技巧
  10. Mars3D(含Cesium)数据及服务篇:单体小模型转为glTF格式