<一>小明上学:
1.题目描述:小明总是睡过头,所以他定了很多用钟,只有在闹钟响的时候他才会醒过来并且决定起不起床从他起床算起他需要X分钟到达教室,上课时间为当天的A时B分,请问他最晚可以什么时间起床?
输入描述:
每个输入包含一个测试用例
每个测试用例的第一行包含一个正整数,表示闹钟的数量N(N<=100)
接下来的N行每行包含两个整数,表示这个闹钟响起的时间为H1(0<=A<24)时Mi(0<=B<60)分
接下来的-行包含一个整数, 表示从起床算起他需要X(0<=X<=100)分钟到达教室
样例输入:
3
5 0
6 0
7 0
59
6 59
样例输出:
6 0
代码如下:
package com.ymm.core.zijie; import java.util.Scanner; public class Main2 { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextInt()) { int N = in.nextInt(); //闹钟的数目 int[][] arr = new int[N][]; //闹钟响起的时间 for(int i = 0;i < N;i++) { arr[i][0] = in.nextInt(); arr[i][1] = in.nextInt(); } int X = in.nextInt(); //起床到达教室 int hour = in.nextInt(); int minHour = in.nextInt(); int maxIndex = -1; for(int i = 0;i < N;i++) { int temp = arr[i][1] + X; int t = arr[i][0] + (int)(temp / 60); int n = temp % 60; if(t < hour || (t == hour && n <= minHour)) { if(maxIndex == -1) { maxIndex = i; }else if(arr[maxIndex][0] < arr[i][0] || (arr[maxIndex][0] == arr[i][0] && arr[maxIndex][0] < arr[i][0])){ maxIndex = i; } } } if(maxIndex == -1) { maxIndex = 0; } System.out.println(arr[maxIndex][0] + " " +arr[maxIndex][1]); } } }
<二>秘密通信
1.题目描述:小明和安琪是好朋友。最近,他们的谈话波家侦探机构监控,所以他们想将他们的谈话内容进行加密处理。于是,他们发明了一种新的加密方式。 每条信息都被编译成二进制数B(明文),其长度为N。然后该信息被写下K次,每次向右移动0,1.. K-1位。例如: B=1001010, K=4
1001010
1001010
1001010
然后对每列进行异或操作,并且把最终所得的结果记录下来,我们将该数称为S(密文)。例如上述例子的结果为:1110100110
最后,将编码的信息S和K发送给安琪。
小明已经实现了这种编码的加密过程,但他要求安琪写一个程序去实现这种编码的解密过程,你能帮助安琪实现解密过程吗?
输入描述:
第一行输入两个整数N和K
第二行输入一个二进制字符串s,长度是N+K-1
输出描述:
输出明文B
例1:
输入:
7 4
1110100110
输出:
1001010
例2:
输入:
6 2
1110001
输出:
101111
代码如下:
有点小问题,稍后完善1!
原文:https://www.cnblogs.com/youdiaodaxue16/p/11343374.html