标题:关于田忌赛马问题.。。帮忙看下。。谢谢了。。
取消只看楼主
谁是王者
Rank: 2
等 级:论坛游民
帖 子:211
专家分:92
注 册:2009-3-3
得分:0 
解决下我的问题先。。。。。。。谢谢
2009-08-03 18:55
谁是王者
Rank: 2
等 级:论坛游民
帖 子:211
专家分:92
注 册:2009-3-3
得分:0 
本题算法错误。。在这里给一下正确的答案。。。。。谢谢各位。。。。
#include<stdio.h>
#include<stdlib.h>
long a[10000],b[10000];
int cmp( const void *a, const void *b )
{
    return ( *( long *)a) - ( *( long *)b);
}
int main()
{
   long n;
while(1)
{
long sum=0,i,j,end1,end2;
   scanf("%ld",&n);
   if(n==0) break;
   for(i=0;i<n;i++)
    scanf("%ld",&a[i]);
   for(i=0;i<n;i++)
    scanf("%ld",&b[i]);
        qsort( a, n, sizeof( long ), cmp );
   qsort(b, n, sizeof( long ), cmp );
   j=0;
     for(i=j=n-1,end1=end2=0;j>=end2&&i>=end1;j--)
   {
     if(a[i]>b[j])
     {
       sum++;
    i--;
     }
     else if(a[i]<b[j])
     {
        sum--;end1++;
     }
     else
     {
         if(a[end1]>b[end2])//a最弱的马强于b最弱的马
      {
        sum++;end1++;end2++; j++;
      }
      else if(a[end1]<b[end2])
      {
         sum--;end1++;
      }
      else
      {
         if(a[end1]==b[j])
      {
       end1++;
      }
      else
      {
          sum--;end1++;
      
      }
      
      }
     }
   }
printf("%d\n",sum*200);
}
return 0;
}
2009-08-03 19:21
谁是王者
Rank: 2
等 级:论坛游民
帖 子:211
专家分:92
注 册:2009-3-3
得分:0 
0000000000000000
2009-08-03 20:16
谁是王者
Rank: 2
等 级:论坛游民
帖 子:211
专家分:92
注 册:2009-3-3
得分:0 
是用贪心做的。。。。。
2009-08-07 00:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-281424-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.592231 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved