Zoj 1362 Game Prediction

Stayp 发表于 2008-03-25 00:05:40

这题求的是赢的最小局数
在输入时只要存储前局数的2倍张牌是否在我手上即可
然后按大出牌,只要没有比我大的牌在别人手上则必胜,否则我的这张牌就废了,而别人手上最大的那张牌也废了
#include "stdio.h"
int main()
{
       int m, n, test = 1, count, i, j, k, t, p;
       bool data[100];
       int my[100], notmy[100];
       while (scanf("%d%d", &m, &n))
       {
              if (!m && !n) break;
              i = n;
              for (j = 0; j < n * 2; j++)
                     data[j] = false;
              t = (m - 2) * n + 1;
              while (i--)
              {
                     scanf("%d", &p);
                     p -= t;
                     if (p >= 0) data[p] = true;
              }    
              j = 0;
              k = 0;
              for (i = 0; i < n * 2; i++)
              {
                     if (data[i])
                            my[j++] = i;
                     else notmy[k++] = i;
              }
              count = 0;
              k--;
              while (n-- && j--)
              {
                     if (my[j] > notmy[k]) count++;
                     else k--;
              }
              printf("Case %d: %d\n", test++, count);
       }
       return 0;
}
关键词(Tag): zoj


最新评论

发表评论

*昵称

已经注册过? 请登录

Email
网址
*评论