田忌赛马贪心算法_acm田忌赛马问题在线等急求!!

这个是问题:这里有一个非常著名的中国故事。“大约2300年以前,田忌将军是齐国高级官员,他喜欢和国王还有其它的人赛马”。“田忌和国王都有3匹不同档次的马,即普通的,好的,以及最...

这个是问题:

这里有一个非常著名的中国故事。“大约2300年以前,田忌将军是齐国高级官员,他喜欢和国王还有其它的人赛马”。“田忌和国王都有3匹不同档次的马,即普通的,好的,以及最好的。赛马的规则是在一次比赛中有三轮,每匹马必须跑一轮。输一轮比赛就要输掉200银元。”“作为国家里最具权威的国王,当然具有超级无敌的骏马,他的每一种档次的马都要比田忌的快。因此,国王每次都从田忌那里赢600银元。”“当然田忌心里是非常的郁闷的,这种状况直到他遇见了中国历史上非常有名的将军孙膑,才发生变化。田忌根据孙膑告诉他的一个小计谋,终于从国王那里赢回了200银元,并且在以后的比赛中,一直都保持了这个荣誉。”“这是一个非常简单的计谋。用他的普通马与国王最好的马进行比赛,当然他会输掉本轮角逐,然后,再用他的好马与国王的普通马对决,最后用他最好的马与国王的好马对决。这是一个多么简单的计谋呀,你是怎么看待中国历史上这位高级官员田忌的呢?” 如果田忌生活在现在,他一定会笑他自己的;而如果他在现在的ACM竞赛中,他会发现,在偶图中寻找最大配对非常容易就能发现赛马问题。把田忌的马画在一边,国王的马在另一边。当田忌的一匹马能够打败国王的一匹马时,我们就在这两匹马之间画一条边, 意味着我们希望建立这样的配对。于是,赛马赢得尽量多的轮次的问题就是在偶图中寻找尽可能多的配对。如果这里有更多的关系,问题就会变得复杂,他可以给所有可能的边都附上权值-1、0或1,再找到每种匹配的最大权值。然而,赛马问题是偶图匹配中的一个非常特殊的例子。这个图取决于马的速度,高速顶点打败低速顶点。本问题就是要你写一个程序,解决种种非常特殊的匹配。

Input

最多有50个测试用例。每一个用例的第一行是正整数 n (n <= 1000),代表每边马的数目,第二行的n个整数是田忌的马的速度,第三行的n个数是国王的马的速度。在最后一个测试用例的下一行的0,代表输入结束。

Output

对每一个输入的测试用例,在一行中输出一个数字,表示田忌能够赢得的最多钱(用银元数表示)。

Sample Input

3

92 83 71

95 87 74

2

20 20

20 20

2

20 19

22 18

0

Sample Output

200

0

0

这是我编的程序,大家可以去试运行下,保证没错误,可为什么通不过呢?小弟等高人指点急求!!!#include

#include

void main()

{

int a,*b,*c,*d,*e,*f,g,h,*i,*j,k,m;

while(scanf("%d",&a)!=EOF)

{

if(a==0)

continue;

m=0;

k=0;

b=(int*)malloc(a*sizeof(int));

c=(int*)malloc(a*sizeof(int));

d=(int*)malloc(sizeof(int));

e=b;

i=b;

f=c;

j=c;

for(g=1;g<=a;g++)

{

scanf("%d",b);

b++;

}

b=e;

b++;

for(g=1;g

{

for(h=g;h

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值