牛客网---2016---百度罪犯转移
来源:互联网 发布:用js实现下拉菜单 编辑:程序博客网 时间:2024/06/05 11:33
兔子这边天气好热,已经想要裸奔了,教室的空调也不是特别凉爽,想去裸奔的我。。。
题目:
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
解析:
1. 虽然不知道什么是滑动窗口,但是简单理解下来, 就是一个固定大小的窗口一直在移动就好了。
解题所需函数:
1. 主要用到的就是Scanner里面的获取数据的方法nextInt(),还有就是用in.hasNext()来判断是否有下一结数据。
代码
import java.util.Scanner;public class Main{ // 主函数 public static void main(String[] args){ Scanner in=new Scanner(System.in); // 我算是知道了in.hasNext是有多么好用 while(in.hasNext()){ int n = in.nextInt(); int t = in.nextInt(); int c = in.nextInt(); // 初始化数组,记录犯罪分数 int[] a = new int[n]; // 录入数据 for(int i = 0;i<n;i++){ a[i] = in.nextInt(); } int count = 0; int tempt = 0; // 记录c项的和 for(int i = 0;i<c;i++){ tempt += a[i]; } // 当tempt满足小于等于t这项条件时,麻烦计数君计数,谢谢 if(tempt<=t){ count++; } // 因为是连续的犯人,所以在此在加入下一项的同时,减去第一项,也就是i-c for(int i = c;i<a.length;i++){ tempt = tempt+a[i]-a[i-c]; if(tempt<=t){ count++; } } System.out.println(count); } }}
阅读全文
0 0
- 牛客网---2016---百度罪犯转移
- 2016百度-罪犯转移-Java
- 百度 罪犯转移
- 动态规划-百度-罪犯转移
- 罪犯转移问题思考——2016百度编程题
- 百度-裁减网格纸 百度-罪犯转移
- 百度编程题——罪犯转移
- 百度2017暑期实习生编程罪犯转移
- 【牛客】【百度编程】罪犯转移 【动态规划】
- 罪犯转移
- 罪犯转移
- 罪犯转移
- 罪犯转移
- 罪犯转移
- 罪犯转移
- 罪犯转移
- 转移罪犯
- 罪犯转移
- struts-3-拦截器
- Node.js中npm常用命令大全
- Java正则表达式
- TensorFlow——训练自己的数据(四)模型测试
- 记录自己学习的过程!!!
- 牛客网---2016---百度罪犯转移
- PAT乙级(Basic)题库---1004
- iOS ijkplayer 打包成 framework
- PS 常用快捷键
- 程序死在while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET)处
- C#练习——去掉字符串两端的空格、统计字符出现的次数及出现的索引位置、随机生成10个1-100之间的不重复的偶数
- #bzoj3296
- npm 常用命令详解
- 感知机Perception原理