hiho_1051_补提交卡】的更多相关文章

题目大意 给出1到100这100个数中的某些数字(各个数字不同),这些数字形成一个个间断的连续区间,向1-100中添加M个数字,使得添加后1-100中某连续区间的长度最大,求出添加M个数字后,最长的连续区间的长度. 分析 计算机解决问题嘛,就是搜索解空间,不断的进行尝试(当然在尝试的基础上进行优化,就出现了DFS,BFS,DP,二分,递归,回溯等算法).如果尝试在空缺的位置上添加相应的数字,则指定超时.那么,尝试另一种方式进行搜索:对于区间[beg, end] 可以根据当前的情形得出要使得[be…
#1051 : 补提交卡 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho给自己定了一个宏伟的目标:连续100天每天坚持在hihoCoder上提交一个程序.100天过去了,小Ho查看自己的提交记录发现有N天因为贪玩忘记提交了.于是小Ho软磨硬泡.强忍着小Hi鄙视的眼神从小Hi那里要来M张"补提交卡".每张"补提交卡"都可以补回一天的提交,将原本没有提交程序的一天变成有提交程序的一天.小Ho想知道通过利用这M张补提交卡,可以使自己的&…
思路:预处理cnt(i)表示前i个数中有多少天需要补提交卡,枚举各个连续区间,区间[j, i]中需要补提交卡的天数是cnt(i) - cnt(j-1),判断m是否大于等于cnt(i) - cnt(j-1),更新答案即可. AC代码 #include <cstdio> #include <cmath> #include <cctype> #include <algorithm> #include <cstring> #include <uti…
时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho给自己定了一个宏伟的目标:连续100天每天坚持在hihoCoder上提交一个程序.100天过去了,小Ho查看自己的提交记录发现有N天因为贪玩忘记提交了.于是小Ho软磨硬泡.强忍着小Hi鄙视的眼神从小Hi那里要来M张"补提交卡".每张"补提交卡"都可以补回一天的提交,将原本没有提交程序的一天变成有提交程序的一天.小Ho想知道通过利用这M张补提交卡,可以使自己的"最长连续提交天数…
时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho给自己定了一个宏伟的目标:连续100天每天坚持在hihoCoder上提交一个程序.100天过去了,小Ho查看自己的提交记录发现有N天因为贪玩忘记提交了.于是小Ho软磨硬泡.强忍着小Hi鄙视的眼神从小Hi那里要来M张"补提交卡".每张"补提交卡"都可以补回一天的提交,将原本没有提交程序的一天变成有提交程序的一天.小Ho想知道通过利用这M张补提交卡,可以使自己的"最长连续提交天数…
题目1 : 补提交卡 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho给自己定了一个宏伟的目标:连续100天每天坚持在hihoCoder上提交一个程序.100天过去 了,小Ho查看自己的提交记录发现有N天因为贪玩忘记提交了.于是小Ho软磨硬泡.强忍着小Hi鄙视的眼神从小Hi那里要来M张"补提交卡".每张"补提 交卡"都可以补回一天的提交,将原本没有提交程序的一天变成有提交程序的一天.小Ho想知道通过利用这M张补提交卡,可以使自己的&…
原题地址 简单贪心 首先,补提交卡应该连续使用,其次,补提交卡应该全部用掉(如果补提交卡多于未提交天数则额外处理) 所以,依次遍历未提交日期,计算:从当前位置开始,用M张补提交卡覆盖后面连续M个数字,此时的连续提交天数. 代码: #include <iostream> using namespace std; int main() { int n; int N, M; ]; cin >> n; while (n--) { cin >> N >> M; : ;…
题目: 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描写叙述 小Ho给自己定了一个雄伟的目标:连续100天每天坚持在hihoCoder上提交一个程序.100天过去了.小Ho查看自己的提交记录发现有N天由于贪玩忘记提交了.于是小Ho软磨硬泡.强忍着小Hi歧视的眼神从小Hi那里要来M张"补提交卡".每张"补提交卡"都能够补回一天的提交,将原本没有提交程序的一天变成有提交程序的一天.小Ho想知道通过利用这M张补提交卡,能够使自己的"最长…
题目来源:补提交卡 解题思路:假设未提交程序的天数为:a1,a2,....,an,补交的张数为M.依次从a1,a2,....,an中去掉连续的 K 天(0<=K<=M),然后再来计算剩余数组中最长连续提交天数. 具体算法(Java版,直接AC) import java.util.Scanner; public class Main { //计算数组中最长连续提交天数 public static int getMax(int[] array) { int[] copy = new int[arr…
http://hihocoder.com/problemset/problem/1051 既然要选择最长连续提交天数,那么提交卡必须连续使用才有可能得到最优解,这样贪心,然后从头到尾扫一遍求出最大值. 5 1 数组为a[i] 下标从1开始. 34 77 82 83 84 假如 提交卡用在 第一个数那么连续提交天数变成 a[2]-a[0]-1,第二个数 a[3]-a[1]-1,以此类推. #include<cstdio> #include<cstring> ]; int main()…