hihoCoder #1051 : 补提交卡

时间限制: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  

59

100

Hihocoder #1051 : 补提交卡 (java版)直接AC

-----------------------------------------------------------

 

package acm;

import java.util.Scanner; /* * 1.输入 测试次数 (控制外部循环) * 2.输入 未提交的天数 和 补提交卡的数量 arr[2] * 3.输入 未提交的 具体天数 day[n+2] 包含 0 和 100 以便计算 * * 4.提炼 计算公式 int count = day[j] - day[i] - 1; * * */ public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //System.out.println("输入 测试的次数:"); int time = scan.nextInt(); for(int k = 0;k<time;k++){ //外部循环 int[] arr = new int[2]; //System.out.println("输入 未提交的天数 和 补提交卡的数量:"); for(int i=0;i <= 1;i++){ //输入 n 未提交天数 m 补提交卡 int b = scan.nextInt(); arr[i] = b; } int n = arr[0]; int m = arr[1]; int[] day = new int[n+2]; // int[7] 0,1,2,3,4,5,6 //System.out.println("输入 未提交的 具体天数:"); for(int j = 1;j <= n;j++){ day[j] = scan.nextInt(); //11 22 33 44 55 } day[0] = 0;day[n+1] = 100; int count = handle(arr,day); //System.out.print("结果为:"); System.out.println(count); } } private static int handle(int[] arr, int[] day) { int n = arr[0]; //未提交的天数 int m = arr[1]; // 补提交卡数量 int i = 0,j = i + m +1; int score = 0; while(j<day.length){ // 0 1 2 3 4 int count = day[j] - day[i] - 1; //计算公式 score = count > score ? count : score; i++; j = i + m + 1; // 3 4 5 6 } return score; } }

 

也许需要改 类名或者方法名,按hihocoder要求修改。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值