看Discuss说是博弈论,没学到这个分类。不过仔细想了想,发现。
如果m<=n,那么可能结果为m,m+1...n。
否则,如果m%(n+1)
==
0,那么无论如何都会输,因为无论先报价什么数,如a,另一个人只要报价n+1-a就可以取得最后的土地;而相反,m%(n+1)!=0,那么第一次报价为余数,余下报价只需要报价n+1-b就可以取得最后的土地。
1 #include <stdio.h>
2
3 int main() {
4 int m, n;
5 int i;
6
7 while (scanf("%d %d", &m, &n) != EOF) {
8 if (m <= n) {
9 printf("%d", m);
10 for (i=m+1; i<=n; ++i)
11 printf(" %d", i);
12 printf("\n");
13 } else {
14 if (m%(n+1) == 0)
15 printf("none\n");
16 else
17 printf("%d\n", m%(n+1));
18 }
19 }
20
21 return 0;
22 }
【HDOJ】2149 Public Sale,码迷,mamicode.com
时间: 2024-12-10 20:02:03