找个高手帮我做做这题,我连题目都很难理解,谢谢了!!最好帮我解
pascal吧
全部回复
仅看楼主
level 1
TOTO牛 楼主
                          第3题 擂台PK
问题描述:
有一天,Symbol为了与Tango一较高下,于是派出了自己的学生们与Tango 的弟子们进行了比赛。双方一共会进行n轮比赛,每轮比赛双方都会派出一个人在擂台上进行激烈的PK。现在,Tango请来了你来做他的参谋:假如已经知道双方队员的战斗力数值,问如何安排Tango队队员的出场顺序才能取得最多的胜利。
(注:由于裁判已被Symbol收买,若战斗力相同,则Symbol队的队员胜利)
输入格式:
每组数据有3行。
     第1行,只有一个数字n,代表双方进行的比赛轮数
     第2行,有n个整数,代表Tango队n个人的战斗能力
     第3行,有n个整数,代表Symbol队n个人的战斗能力
输出格式:
只有一个数字,为Tango队最多能赢的轮数
样例输入输出:
输入:               输出:
392 83 7195 87 74     2
样例解释:
先分别用Tango队中92、83战斗力的队员的把Symbol队队中87、74战斗力的队员轰杀至渣,然后热泪盈眶地送71战斗力的队员去送死……
数据范围:
对于30%的数据,N<=10
对于60%的数据,N<=5,000
对于80%的数据,N<=50,000
对于100%的数据,N<=1000,000
对于所有队员来说,很不幸地由于他们不是超级赛亚人,所以战斗力都是不会超过10000的正整数……

2010年04月17日 02点04分 1
level 0
用深搜一个个判断
2010年04月23日 09点04分 2
level 7
数据小的话可以二分图匹配。。
大了就要贪心了
1.当A最低的比B最低的高,赢一场
2.当A最低的比B最低的低,和B最高的比,输一场
3.当A最高的比B最高的高时,赢一场
4.当A最高的比B最高的低时,拿最低的和B最高的比,输一场。
5.当A最高的和B最高的相等时,拿最低的来和B最高的比.
可以自己证明一下
2010年04月23日 11点04分 3
level 1
我也遇到了这题,我用数组做的。
程序:
var
i,k,x,n,bz:longint;
a:array[1..100000] of longint;
begin
x:=0; bz:=0;
fillchar(a,sizeof(a),0);
readln(n);
for i:=1 to n do
begin
read(k);
a[k]:=1;
end;
readln;
for i:=1 to n do
begin
read(k);
a[k]:=2;
end;
for i:=1 to 100000 do
begin
if a[i]=2 then
begin
bz:=bz+1;
end;
if a[i]=1 then
begin
if bz>0 then
begin
x:=x+1;
bz:=bz-1;
end;
end;
end;
writeln(x);
readln;
end.
大部分还是能过的,有部分会错
2015年03月24日 13点03分 4
level 7
O(2n)啊
2015年03月25日 04点03分 5
level 7
用计数排序
2015年03月25日 04点03分 6
level 1
f[i,j]:=true;(a[i]>b[j])
f[i,j]:=false;(a[i]<b[j]);
找到一场胜利,删除一条路径,以及以那条路径中的点所在的其他路径。用贪心算,最后求最大值。
2015年04月05日 14点04分 7
level 7
100万用计算排序
2015年04月05日 15点04分 8
1