POJ 2287 GREEDY

田忌赛马

原来做过 但当时思路很混乱 今天看到一个思路清晰的贪心 记录一下

把双方的马从大到小排序 然后从前往后比较 老田赢了呢 就继续往下比 老田比不过呢 就拉老田最慢的马跟这个比 这里好理解

还有比平的情况 比平了还是从后面找一匹马

找的时候 要是老田后面的马可以赢对应位置的马 就接着往前比 然后找到的那匹就跟前面这匹马比

核心代码:
    for(i=0;i<n;i++)
        {
            if(t[head]>k[i])
            {
                head++;
                ans+=200;
            }
            else if(t[head]<k[i])
            {
                tailt--;
                ans-=200;
            }
            else if(t[head]==k[i])
            {
                for(j=tailt,m=tailk;j>=head;j--,m--)
                {
                    if(t[j]>k[m])
                    {
                        ans+=200;
                        tailt--;
                        tailk--;
                    }
                    else
                     {
                           if(t[j]<k[i]) ans-=200;
                          tailt=--j;
                          tailk=m;
                          break;              
                     }
                }
            }

            if(head>tailt) break;
        }

posted on 2008-08-15 20:25 Victordu 阅读(808) 评论(2)  编辑 收藏 引用

评论

# re: POJ 2287 GREEDY 2009-10-21 15:51 屋里看花

这题纯贪是错的! 测试数据弱了而已
你的代码不能过这组数据:
2
21 20
19 20  回复  更多评论   

# re: POJ 2287 GREEDY[未登录] 2009-11-03 13:16 Victordu

@屋里看花
这个样例可以过啊!“把双方的马从大到小排序 然后从前往后比较 老田赢了呢 就继续往下比”
  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

常用链接

留言簿(5)

随笔档案(46)

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜