1.每个输入包含一个测试用例。
每个测试用例的第一行包含两个正整数,分别表示工作的数量N(N<=100000)和小伙伴的数量M(M<=100000)。
接下来的N行每行包含两个正整数,分别表示该项工作的难度Di(Di<=1000000000)和报酬Pi(Pi<=1000000000)。
接下来的一行包含M个正整数,分别表示M个小伙伴的能力值Ai(Ai<=1000000000)。
保证不存在两项工作的报酬相同。
输入例子:
3 3
1 100
10 1000
1000000000 1001
9 10 1000000000
Python:
line_1 = raw_input().strip().split()
work_re = []
while(line_1 == []): #语句的意思是防止输入中有空各行输入,可以过滤掉
line_1 = raw_input().split()
n,m = int(line_1[0]),int(line_1[1])
for i in range(n):
line = raw_input().strip().split()
while(line == []):
line = raw_input().strip().split()
work_re.append([int(x) for x in line])
m_cap = [int(x) for x in raw_input().split()]
while(m_cap == []):
m_cap = [int(x) for x in raw_input().split()]
JAVA:
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int t1=0,t2=0;
HashMap hs = new HashMap();
int[] a = new int[n+m];
int[] b = new int[m];
for(int i=0;i<n;i++){
t1 = sc.nextInt();
t2 = sc.nextInt();
a[i] = t1;
hs.put(t1,t2);
}
for(int i=0;i<m;i++){
t1 = sc.nextInt();
a[n+i] = t1;
b[i] = t1;
if(!hs.containsKey(t1))
hs.put(t1,0);
}
C++:
2.输入的第一行包含一个正整数t(1 <= t <= 1000), 表示测试用例数
接下来每两行一个测试数据, 第一行一个正整数n(1 <= n <= 1000),表示道路的长度。
第二行一个字符串s表示道路的构造,只包含'.'和'X'。
输入例子:
2
3
.X.
11
...XX....XX
Python:
count = int(input()) # 测试用例的个数
n = []
lantern = []
for i in range(count):
n_tmp = int(input()) # 路灯个数
n.append(n_tmp)
lantern_tmp = input() # 路灯分布字符串
lantern.append(lantern_tmp)
Java:
int n = scanner.nextInt();
while (n-- > 0) {
int len = scanner.nextInt();
String line = scanner.next();
}
C++:
cin >> t
for (int i = 0; i < t; i++) {
int n;//道路长
cin >> n;
int j = 0, count = 0;
while (j++ < n) {
char ch; cin >> ch;
if (ch == '.') {
count++;
if (j++ < n) cin >> ch;
if (j++ < n) cin >> ch;
}
}
cout << count << endl;
}
每个输入包含一个测试用例。
每个测试用例的第一行包含一个正整数,表示转方向的次数N(N<=1000)。
接下来的一行包含一个长度为N的字符串,由L和R组成,L表示向左转,R表示向右转。
输入例子:
3
LRR
输入包括五行。
第一行包括一个整数n(2 <= n <= 50), 表示矩形的个数。
第二行包括n个整数x1[i](-10^9 <= x1[i] <= 10^9),表示左下角的横坐标。
第三行包括n个整数y1[i](-10^9 <= y1[i] <= 10^9),表示左下角的纵坐标。
第四行包括n个整数x2[i](-10^9 <= x2[i] <= 10^9),表示右上角的横坐标。
第五行包括n个整数y2[i](-10^9 <= y2[i] <= 10^9),表示右上角的纵坐标。
输入例子:
2
0 90
0 90
100 200
100 200
Python:
import sys
lines = sys.stdin.readlines()
n = int(lines[0])
x1 = list(map(int,lines[1].split()))
y1 = list(map(int,lines[2].split()))
x2 = list(map(int,lines[3].split()))
y2 = list(map(int,lines[4].split()))
C++:
int n; //矩形数量
cin >> n;
vector<int> x1(n, 0);
vector<int> y1(n, 0);
vector<int> x2(n, 0);
vector<int> y2(n, 0);
for(int i = 0; i < n; ++i)
cin >> x1[i];
for(int i = 0; i < n; ++i)
cin >> y1[i];
for(int i = 0; i < n; ++i)
cin >> x2[i];
for(int i = 0; i < n; ++i)
cin >> y2[i];
Java:
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int[] x1=new int[n];
int[] x2=new int[n];
int[] y1=new int[n];
int[] y2=new int[n];
for(int i=0;i<n;++i){
x1[i]=in.nextInt();
xAxial.add(x1[i]);
}
for(int i=0;i<n;++i){
y1[i]=in.nextInt();
}
for(int i=0;i<n;++i){
x2[i]=in.nextInt();
xAxial.add(x2[i]);
}
for(int i=0;i<n;++i){
y2[i]=in.nextInt();
}
每个输入包含一个测试用例。
每个测试用例的第一行包含一个正整数,表示闹钟的数量N(N<=100)。
接下来的N行每行包含两个整数,表示这个闹钟响起的时间为Hi(0<=A<24)时Mi(0<=B<60)分。
接下来的一行包含一个整数,表示从起床算起他需要X(0<=X<=100)分钟到达教室。
接下来的一行包含两个整数,表示上课时间为A(0<=A<24)时B(0<=B<60)分。
数据保证至少有一个闹钟可以让牛牛及时到达教室。
输入例子:
3
5 0
6 0
7 0
59
6 59
Python:
n = int(sys.stdin.readline().strip())
values = []
For i in range(n):
line = sys.stdin.readline().strip().split(' ')
values.append(line)
dst_time = int(sys.stdin.readline().strip())
class_time = sys.stdin.readline().strip().split(' ')
Java:
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int h=0,m=0;
int[] a = new int[n];
for(int i=0;i<n;i++){
h = sc.nextInt();
m = sc.nextInt();
a[i] = h*60+m;
}
int t = sc.nextInt();
a = sc.nextInt();
b = sc.nextInt();
C++:
int *hour = new int[n];
int *minute = new int[n];
int *time = new int[n];
int X;
int reach_hA, reach_mB;
for (int i = 0; i < n; i++) {
cin >> hour[i] >> minute[i];
time[i] = hour[i] * 60 + minute[i];
}
cin >> X;
cin >> reach_hA >> reach_mB;
之前一直认为用raw_input( )和sys.stdin.readline( )来获取输入的效果完全相同,但是最近在写程序时有类似这样一段代码:
import sys
line = sys.stdin.readline()
for i in range(len(line)):
print line[i]+'hello'
它的运行结果让我百思不得其解:
怎么会多输出一个空行和hello?然后特意输出了line的长度,发现是4,然后重新调试了几次,发现无论输入什么,len(line)的长度总比输入的长度大1,然后用raw_input( )试着运行了一下,运行是正常的,然后查阅了一下文档,发现sys.stdin.readline( )会将标准输入全部获取,包括末尾的'\n',因此用len计算长度时是把换行符'\n'算进去了的,但是raw_input( )获取输入时返回的结果是不包含末尾的换行符'\n'的。
import sys
line1 = sys.stdin.readline()
line2 = raw_input()
print len(line1),len(line2)
因此如果在平时使用sys.stdin.readline( )获取输入的话,不要忘了去掉末尾的换行符,可以用strip( )函数去掉(sys.stdin.readline( ).strip('\n')),这样处理一下就行了。