1051 : 补提交卡
来源:互联网 发布:更换淘宝店铺负责人 编辑:程序博客网 时间:2024/06/05 22:59
时间限制:2000ms
单点时限:1000ms
内存限制:256MB
描述
小Ho给自己定了一个宏伟的目标:连续100天每天坚持在hihoCoder上提交一个程序。100天过去了,小Ho查看自己的提交记录发现有N天因为贪玩忘记提交了。于是小Ho软磨硬泡、强忍着小Hi鄙视的眼神从小Hi那里要来M张”补提交卡”。每张”补提交卡”都可以补回一天的提交,将原本没有提交程序的一天变成有提交程序的一天。小Ho想知道通过利用这M张补提交卡,可以使自己的”最长连续提交天数”最多变成多少天。
输入
第一行是一个整数T(1 <= T <= 10),代表测试数据的组数。
每个测试数据第一行是2个整数N和M(0 <= N, M <= 100)。第二行包含N个整数a1, a2, … aN(1 <= a1 < a2 < … < aN <= 100),表示第a1, a2, … aN天小Ho没有提交程序。
输出
对于每组数据,输出通过使用补提交卡小Ho的最长连续提交天数最多变成多少。
样例输入
3 5 1 34 77 82 83 84 5 2 10 30 55 56 90 5 10 10 30 55 56 90
样例输出
76 59100
分析
由题目的意思可知道,选择补提交卡的天应该是连续的,这样才能达到最大连续天数;而且给的卡数M应当尽量用完,所以问题变成了从N天里选择连续的M天出来计算连续天数,返回最大连续天数。
#include <iostream>#include <vector>using namespace std;int main(){ int T; cin>>T; while(T--) { int N; int M; cin>>N>>M; vector<int> forgotDays(N+2); for(int i = 1;i<=N;++i) { int tmp; cin>>tmp; forgotDays[i] = tmp; } if(M>=N) { cout<<100<<endl; } else { forgotDays[0] = 0; forgotDays[N+1] = 101; int ans = 0; for(int i = 0;i<=N;++i) { if(i+M+1 > N+1) break; int tmp = forgotDays[i+M+1] - forgotDays[i] - 1; ans = tmp>ans?tmp:ans; } cout<<ans<<endl; } } return 0;}
0 0
- 1051 补提交卡
- #1051 : 补提交卡
- #1051 : 补提交卡
- #1051 : 补提交卡
- #1051 : 补提交卡
- 1051 : 补提交卡
- #1051 补提交卡
- #1051 : 补提交卡
- #1051 : 补提交卡
- hihoCoder:#1051 补提交卡
- hihoCoder#1051 : 补提交卡
- [HiHoCoder]#1051 : 补提交卡
- HihoCoder#1051:补提交卡
- HihoCoder 1051:补提交卡
- hihoCoder #1051 补提交卡
- hihoCoder 1051 补提交卡
- Hihocoder 1051 补提交卡
- # hihocoder #1051 补提交卡
- 快速排序的超简单实现(Java)
- python中patch的使用
- String、StringBuffer、StringBuilder
- 支付宝微信离线支付算法猜想
- HTML5实现MP3上传前的预览和播放时长的获取
- 1051 : 补提交卡
- 关于浮点数的精度与取值范围的问题
- 选择排序
- tomcat添加跨域访问功能-Access-Control-Allow-Origin:*
- MYSQL explain详解
- IntelliJ IDEA入门系列(4)-- mybatis 报错BindingException
- 深入TCP三次握手,四次挥手
- APP出现上下两个黑条
- iOS 10遇到的问题收集