POJ 2287 GREEDY

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;
        }

你可能感兴趣的:(POJ 2287 GREEDY)