[百度]罪犯转移

时间限制:1秒 空间限制:32768K 热度指数:34020

本题知识点: 动态规划

题目描述

C市现在要转移一批罪犯到D市,C市有n名罪犯,按照入狱时间有顺序,另外每个罪犯有一个罪行值,值越大罪越重。现在为了方便管理,市长决定转移入狱时间连续的c名犯人,同时要求转移犯人的罪行值之和不超过t,问有多少种选择的方式?

输入描述:
第一行数据三个整数:n,t,c(1≤n≤2e5,0≤t≤1e9,1≤c≤n),第二行按入狱时间给出每个犯人的罪行值a

i

(0≤a

i

≤1e9)
输出描述:
一行输出答案。
输入例子:
3 100 21 2 3
输出例子:
2思路:利用动态规划的思想解决,首先计算前c个罪行值之和,然后每移动一个单位,减去第一个元素,再加上新增加的元素。
 1 #include<iostream>
 2 #include<vector>
 3
 4 using namespace std;
 5
 6 int main()
 7     {
 8        int n,t,c,a;
 9        while(cin>>n>>t>>c)
10            {
11               vector<int> cri;//用来存罪犯的罪行值
12               for(int i=0;i<n;++i)
13                   {
14                      cin>>a;
15                      cri.push_back(a);
16
17               }
18            int count=0;
19            int sum=0;
20
21            for(int i=0;i<c;++i)
22                {
23                  sum+=cri[i];
24
25            }
26            if(sum<=t)
27                ++count;
28            for(int i=1;i<=cri.size()-c;++i)
29                {
30                   sum-=cri[i-1];
31                   sum+=cri[i+c-1];
32                   if(sum<=t)
33                       ++count;
34
35            }
36            cout<<count<<endl;
37        }
38     return 0;
39 }

时间: 2025-01-07 22:11:44

[百度]罪犯转移的相关文章

百度罪犯转移

题目描述 C市现在要转移一批罪犯到D市,C市有n名罪犯,按照入狱时间有顺序,另外每个罪犯有一个罪行值,值越大罪越重.现在为了方便管理,市长决定转移入狱时间连续的c名犯人,同时要求转移犯人的罪行值之和不超过t,问有多少种选择的方式? 输入描述: 第一行数据三个整数:n,t,c(1≤n≤2e5,0≤t≤1e9,1≤c≤n),第二行按入狱时间给出每个犯人的罪行值ai (0≤ai≤1e9) 输出描述: 一行输出答案. 输入例子: 3 100 21 2 3 输出例子: 2代码: import java.u

百度在线笔试题-罪犯转移

C市现在要转移一批罪犯到D市,C市有n名罪犯,按照入狱时间有顺序,另外每个罪犯有一个罪行值,值越大罪越重.现在为了方便管理,市长决定转移入狱时间连续的c名犯人,同时要求转移犯人的罪行值之和不超过t,问有多少种选择的方式? 输入描述: 第一行数据三个整数:n,t,c(1≤n≤2e5,0≤t≤1e9,1≤c≤n),第二行按入狱时间给出每个犯人的罪行值ai(0≤ai≤1e9) 输出描述: 一行输出答案. 输入例子: 3 100 21 2 3 输出例子: 2 // Java版本 import java.

罪犯转移问题

题目描述 C市现在要转移一批罪犯到D市,C市有n名罪犯,按照入狱时间有顺序,另外每个罪犯有一个罪行值,值越大罪越重.现在为了方便管理,市长决定转移入狱时间连续的c名犯人,同时要求转移犯人的罪行值之和不超过t,问有多少种选择的方式? 输入描述: 第一行数据三个整数:n,t,c(1≤n≤2e5,0≤t≤1e9,1≤c≤n),第二行按入狱时间给出每个犯人的罪行值ai(0≤ai≤1e9) 输出描述: 一行输出答案. 输入例子: 3 100 21 2 3 输出例子: 2 解法一:这个解法是网友解法中赞最多

合理利用缓存文件

不要把所有都变成想当然,当你要给成几万几十万几百万用户展示一个信息的时候. 你会去数据库中信息的表给所有用户都插入一条信息么? 我想打多数人不会那么干吧,但有时候就想当然了,一条是这么干 20条肯定也是这么干的. 这样就陷入了一个误区.转变一下思维,给一个人肯定是就只给20个用户中的一个人只让他自己看到,这样我们在库中给他一条信息,展示给他自己看. 给所有人看的共同信息,就没有区分了,那么这时候我们可以生成一个缓存文件,把要展示的内容放在文件的头部包含进来,读取静态信息.在展示的时候可以设定展示

判断百度蜘蛛偷偷进行转移权重301,给新站提权

放假了,在家没事做新站,因为没啥权重,打算抓几个webshell站进行转移新站,给新站提权重.所以写了一个301转移php代码,可以判断蜘蛛进行跳转301,用户访问不会跳转,这样就可以防止被发现的概率! 功能说明: 1.判断蜘蛛跳转   2.支持多个域名随机跳转   3.判断百度搜索进去不进行跳转(防止被发现)   4.正常浏览器访问不跳转   5.过安全狗防护 使用方法:   以下代码新建为:useragent.func.php(可以放在隐蔽的地方)   然后在你网站程序核心函数,例如:ded

百度网盘没有跟进,用户也没有因为360云盘容量大而选择放弃百度网盘

作者:何小锋链接:http://www.zhihu.com/question/51800743/answer/127548706来源:知乎著作权归作者所有,转载请联系作者获得授权. 不请自来的.那些说分享功能.政策原因而关闭的网盘,大部分都是为了让政府来背黑锅找的措词!不明真相的群众也乐意相信. 商业的本质是利益,云盘的成本才是绝大部分网盘关闭或者调整的原因!云盘的成本才是绝大部分网盘关闭或者调整的原因!云盘的成本才是绝大部分网盘关闭或者调整的原因! 虽然早在今年9月份就感觉到360云盘快撑不住

国内首次深度学习自动驾驶,阿波罗不再只是计划:来自百度开发者中心的观察报告

导读:从世界上首个可在真实道路上实现端到端模式的高级自动驾驶模型Road Hackers,到百度和汽车零部件厂商合作开发的车载可计算平台 BCU,从诞生之初就备受关注的"阿波罗计划"逐渐揭开了它神秘的面纱.而正如百度智能汽车事业部总经理顾维灏在主题演讲中所说,这些,不过仍是阿波罗计划的凤毛麟角. 2017年6月8日,上海 CES Asia 现场. 作为新智元特派员,我置身于上海新国际展览中心 N3 智能驾驶主题馆,被众多汽车品牌的未来炫酷车型所包围.一瞬间,仿佛回到了一个多月前同样在这

从Eclipse转移到IntelliJ IDEA一点心得

本人使用IntelliJ IDEA其实并不太久,用了这段时间以后,觉得的确很是好用.刚刚从Eclipse转过来的很多人开始可能不适应,我就把使用过程中的一些经验和常用功能分享下,当然在看这篇之前推荐你先看完IntelliJ IDEA 的 20 个代码自动完成的特性,这篇文章对自动完成的特性介绍的非常好,只是快捷键说明部分还可以更完善一些,可以照顾下默认绑定键位不一致的童鞋.本文在说明快捷键的时候是根据Mac OSX 10.5+的默认keymap,当然也会提供相关的文字说明,如果和我的绑定不一致的

[C++]右值引用和转移语义

右值引用和转移语义 本文尝试着解释何为右值引用和转移语义以及使用它们具有优势,并提供相关案例分析. 定义 左值和右值 首先我们先来理解一下什么是左值和右值. C/C++语言中可以放在赋值符号左边的变量,左值表示存储在计算机内存的对象,左值相当于地址值.右值:当一个符号或者常量放在操作符右边的时候,计算机就读取他们的"右值",也就是其代表的真实值,右值相当于数据值. C/C++语言中可以放在赋值符号左边的变量,即具有对应的可以由用户访问的存储单元,并且能够由用户去改变其值的量.左值表示存