
几道PASCAL题目,望解决。。。。急急急,20分!
第一道:问题B:开灯游戏时间限制:1Sec内存限制:128MB提交:230解决:18[提交][答题状态][在线答疑]题目描述有n盏灯,放在一排,从1到n依次顺序编号。有m...
第一道:
问题 B: 开灯游戏
时间限制: 1 Sec 内存限制: 128 MB
提交: 230 解决: 18
[提交][答题状态][在线答疑]
题目描述
有n盏灯,放在一排,从1到n依次顺序编号。有m个人也从1到m依次顺序编号。第1个人(1号)将灯全部关闭;第2个人(2号)将凡是2的倍数的灯打开;第3个人(3号)将凡是3的倍数的灯作相反处理(该灯如是打开的,则将它关闭;如是关闭的,则将它打开)。以后的人都和3号一样,将凡是自己编号倍数的灯作相反处理。试计算当第m个人操作后,哪几盏灯是亮的?
输入
从键盘输入n、m的值。(n、m均为正整数,且n>=m)
输出
在同一行输出亮着的灯的编号。(没有灯亮则输出"NO")
样例输入
5 3
样例输出
2 3 4
提示
测试数据已修改为:输出间隔为一个空格,请重新提交程序。
第二道:
问题 C: 成绩排名
时间限制: 1 Sec 内存限制: 128 MB
提交: 63 解决: 2
[提交][答题状态][在线答疑]
题目描述
班上刚测试了几门课,现在信息技术的老师要分析一些功课之间的成绩关系,看看每个人的信息技术课排名以及他的数学排名,并按信息技术课的成绩从高分到低分排列(数据中保证任意一学科中没有两个人的这门课成绩是一样的)。老师把任务交给了信息学最好的你,请你编程完成这个任务。
输入
第一行一个整数N,表示共有N个同学的成绩。
后面有N行,每行4个整数,分别表示一个同学的:语文、数学、英语、信息技术成绩。
输出
共N行,每行6个数据,分别对应一个同学的:语文、数学、英语、信息技术成绩 和信息技术及数学的排名。
样例输入
3
90 95 89 110
95 120 78 115
96 97 103 92
样例输出
95 120 78 115 1 1
90 95 89 110 2 3
96 87 103 92 3 2
提示
第三道:
问题 D: 辣椒炸弹
时间限制: 1 Sec 内存限制: 128 MB
提交: 35 解决: 0
[提交][答题状态][在线答疑]
题目描述
植物大战僵尸这款游戏中,有一种植物武器叫辣椒炸弹,在草坪中的任意一格摆放它可以把草坪中该行上的所有僵尸瞬间消灭,也就是说,如果在第i行中任意位置摆放一个炸弹,第i行中的所有僵尸就瞬间都被杀死了。现在我们假定草坪有r行c列,草坪中有n只僵尸,僵尸不移动,现在给你k个炸弹,要求只能使用这K个炸弹来消灭这些僵尸,请问最多可以杀死多少只僵尸。
输入
第一行4个正整数r ,c ,k ,n
接下来n行,每行两个正整数x,y,表示第x行的第y列中有一只僵尸。
输出
第一行输出最多可以杀死的僵尸数。
第二行按顺序输出所有被消灭的行,如果有不同方案,输出字典序最小的那种方案。
样例输入
4 5 2 6
1 3
2 3
3 1
4 4
4 5
4 5
样例输出
4
1 4
提示
样例说明:可以杀死第1行和第4行的所有僵尸,方案(1,4),(2,4),(3,4)都是一样多的僵尸,但方案(1,4)的字典序最小。
望解决,谢谢,加急! 展开
问题 B: 开灯游戏
时间限制: 1 Sec 内存限制: 128 MB
提交: 230 解决: 18
[提交][答题状态][在线答疑]
题目描述
有n盏灯,放在一排,从1到n依次顺序编号。有m个人也从1到m依次顺序编号。第1个人(1号)将灯全部关闭;第2个人(2号)将凡是2的倍数的灯打开;第3个人(3号)将凡是3的倍数的灯作相反处理(该灯如是打开的,则将它关闭;如是关闭的,则将它打开)。以后的人都和3号一样,将凡是自己编号倍数的灯作相反处理。试计算当第m个人操作后,哪几盏灯是亮的?
输入
从键盘输入n、m的值。(n、m均为正整数,且n>=m)
输出
在同一行输出亮着的灯的编号。(没有灯亮则输出"NO")
样例输入
5 3
样例输出
2 3 4
提示
测试数据已修改为:输出间隔为一个空格,请重新提交程序。
第二道:
问题 C: 成绩排名
时间限制: 1 Sec 内存限制: 128 MB
提交: 63 解决: 2
[提交][答题状态][在线答疑]
题目描述
班上刚测试了几门课,现在信息技术的老师要分析一些功课之间的成绩关系,看看每个人的信息技术课排名以及他的数学排名,并按信息技术课的成绩从高分到低分排列(数据中保证任意一学科中没有两个人的这门课成绩是一样的)。老师把任务交给了信息学最好的你,请你编程完成这个任务。
输入
第一行一个整数N,表示共有N个同学的成绩。
后面有N行,每行4个整数,分别表示一个同学的:语文、数学、英语、信息技术成绩。
输出
共N行,每行6个数据,分别对应一个同学的:语文、数学、英语、信息技术成绩 和信息技术及数学的排名。
样例输入
3
90 95 89 110
95 120 78 115
96 97 103 92
样例输出
95 120 78 115 1 1
90 95 89 110 2 3
96 87 103 92 3 2
提示
第三道:
问题 D: 辣椒炸弹
时间限制: 1 Sec 内存限制: 128 MB
提交: 35 解决: 0
[提交][答题状态][在线答疑]
题目描述
植物大战僵尸这款游戏中,有一种植物武器叫辣椒炸弹,在草坪中的任意一格摆放它可以把草坪中该行上的所有僵尸瞬间消灭,也就是说,如果在第i行中任意位置摆放一个炸弹,第i行中的所有僵尸就瞬间都被杀死了。现在我们假定草坪有r行c列,草坪中有n只僵尸,僵尸不移动,现在给你k个炸弹,要求只能使用这K个炸弹来消灭这些僵尸,请问最多可以杀死多少只僵尸。
输入
第一行4个正整数r ,c ,k ,n
接下来n行,每行两个正整数x,y,表示第x行的第y列中有一只僵尸。
输出
第一行输出最多可以杀死的僵尸数。
第二行按顺序输出所有被消灭的行,如果有不同方案,输出字典序最小的那种方案。
样例输入
4 5 2 6
1 3
2 3
3 1
4 4
4 5
4 5
样例输出
4
1 4
提示
样例说明:可以杀死第1行和第4行的所有僵尸,方案(1,4),(2,4),(3,4)都是一样多的僵尸,但方案(1,4)的字典序最小。
望解决,谢谢,加急! 展开
展开全部
开灯游戏
var a:array[1..100001]of boolean;
b:array[1..10001]of longint;
i,j,n,m:longint;
begin
readln(n,m);
for i:=2 to m do
for j:=1 to n do
if j mod i=0 then a[j]:=not a[j];
j:=1;
for i:=1 to n do if a[i] then begin
b[j]:=i;
inc(j);
end;
for i:=1 to j-2 do write(b[i],' ');
write(b[j-1]);
end.
成绩排名
var a,b,c,d,e,f:array[1..10001]of longint;
i,j,k,t,n,l:longint;
begin
readln(n);
for i:=1 to n do read(a[i],b[i],c[i],d[i]);
for i:=1 to n do begin e[i]:=i;f[i]:=i;end;
for i:=1 to n-1 do
for j:=i+1 to n do
if b[i]<b[j] then begin
t:= b[i];
b[i]:=b[j];
b[j]:=t;
t:=e[i];
e[i]:=e[j];
e[j]:=t;
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if d[i]<d[j] then begin
t:=d[i];
d[i]:=d[j];
d[j]:=t;
t:=f[i];
f[i]:=f[j];
f[j]:=t;
end;
for i:=1 to n do writeln(a[i],' ',b[i],' ',c[i],' ',d[i],' ',e[i],' ',f[i]);
end.
var a:array[1..100001]of boolean;
b:array[1..10001]of longint;
i,j,n,m:longint;
begin
readln(n,m);
for i:=2 to m do
for j:=1 to n do
if j mod i=0 then a[j]:=not a[j];
j:=1;
for i:=1 to n do if a[i] then begin
b[j]:=i;
inc(j);
end;
for i:=1 to j-2 do write(b[i],' ');
write(b[j-1]);
end.
成绩排名
var a,b,c,d,e,f:array[1..10001]of longint;
i,j,k,t,n,l:longint;
begin
readln(n);
for i:=1 to n do read(a[i],b[i],c[i],d[i]);
for i:=1 to n do begin e[i]:=i;f[i]:=i;end;
for i:=1 to n-1 do
for j:=i+1 to n do
if b[i]<b[j] then begin
t:= b[i];
b[i]:=b[j];
b[j]:=t;
t:=e[i];
e[i]:=e[j];
e[j]:=t;
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if d[i]<d[j] then begin
t:=d[i];
d[i]:=d[j];
d[j]:=t;
t:=f[i];
f[i]:=f[j];
f[j]:=t;
end;
for i:=1 to n do writeln(a[i],' ',b[i],' ',c[i],' ',d[i],' ',e[i],' ',f[i]);
end.
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询