题解

46 条题解

  • 0
    @ 2008-08-19 22:05:00

    从顶点的奇偶性入手,分别讨论黑三角的位置即可。

  • 0
    @ 2007-11-08 18:35:26

    其实这是很简单的数学问题嘛。

  • 0
    @ 2007-11-02 22:01:41

    这道题不是一般的简单

  • 0
    @ 2007-10-15 17:02:09

    首先黑三角在外面 先手必胜

    外面指的是外边上的三角行 就是以2条原多边行为边,1条对角线为边的三角行

    而当 (n-3)mod 2=1 时 先手也是必胜

  • 0
    @ 2007-10-06 11:06:14

    难道你们的判断"三角形"在外面没有问题吗?

    比如 n=5

    4 0 1

    就是在外面啊?

    转圈的问题不能忽视

  • 0
    @ 2007-08-11 08:24:06

    这n-3条对角线在多边形的顶点相交

    那不是黑的肯定在外面吗~~~~~~~

    看了题目的数据怎么都想不通这对角线是怎么划的

  • 0
    @ 2006-11-14 19:50:32

    4的时候显然赢,黑三角在外面肯定赢,其他:

    对于n-3条对角线,黑三角所属的那两条肯定不能动。对于剩下的n-3-2条,是偶数就输了

    还是那句话:一看这种题就是可以直接输出答案的。

  • 0
    @ 2006-11-04 18:55:40

    为什么if((n-3) mod 2)=1时JMcat Win?

    想不明白……

  • 0
    @ 2006-11-01 12:18:19

    To 忘记vs争取

    不能。还有 abs(a-b)=n-1的情况。

  • 0
    @ 2006-10-19 19:06:31

    求助!!!

    判断判断黑色三角形是否是最外面能不能直接用

    (abs(a-b)=1)or(abs(b-c)=1)or(abs(c-a)=1)

    ???

    为什么。。?

    那位大牛教一下。。。

  • 0
    @ 2006-10-17 09:20:37

    就是SPOJ201("POLYGAME"),可惜,用vijos程序交SPOJ挂了。

  • 0
    @ 2006-10-08 21:30:47

    一次成功!!!^__^

    谢谢lalanv的点拨!!!

  • 0
    @ 2006-09-06 17:17:13

    奇怪

    判断 黑三角是否在外边 不是只须读入 第一个三角吗

    判断其三点是不是连在一起 不就行了吗

  • 0
    @ 2006-08-23 19:27:44

    感谢lolanv 的指点,用一个记录数组过了

    N=4时直接输出JMcat Win

  • 0
    @ 2006-08-12 09:26:56

    三角形在外部 先取者胜

    否则若odd(n) 后取者胜

    否则先取者胜

  • -1
    @ 2018-10-14 14:43:39

    #include <iostream>
    #include <algorithm>
    using namespace std;

    int main()
    {
    int point[3], n;
    bool cat;
    cin >> n;
    for (int i = 0; i < 3; i++)
    cin >> point[i];
    for (int i = 1; i <= 3 * (n - 3); i++)
    getchar();
    sort(point, point + 3);
    if((point[0]+1==point[1]&&point[1]+1==point[2]))
    cat = true;
    else if (point[0] = 0 && point[2] == n - 1 && point[1] == n - 2)
    cat = true;
    else if (point[0] == 0 && point[1] == 1 && point[2] == n - 1)
    cat = true;
    if (cat)
    {
    cout << "JMcat Win" << endl;
    return 0;
    }
    if((n-2)%2==0)
    cout << "PZ Win" << endl;
    else
    cout << "JMcat Win" << endl;
    return 0;
    }

  • -1
    @ 2016-04-04 12:10:18

    var
    n,x,y,z,s:longint;
    function t(x,y:longint):boolean;
    begin exit((abs(x-y)=1) or (abs(x-y)=n-1)); end;
    begin
    read(n,x,y,z);
    if t(x,y) then inc(s);
    if t(y,z) then inc(s);
    if t(x,z) then inc(s);
    if (s=2) or (s=3) or ((s<2) and (n mod 2=0)) then writeln('JMcat Win')
    else writeln('PZ Win');
    end.

  • -1
    @ 2016-01-14 18:19:16

    评测结果
    编译成功

    测试数据 #0: Accepted, time = 0 ms, mem = 508 KiB, score = 10
    测试数据 #1: Accepted, time = 15 ms, mem = 512 KiB, score = 10
    测试数据 #2: Accepted, time = 15 ms, mem = 512 KiB, score = 10
    测试数据 #3: Accepted, time = 0 ms, mem = 508 KiB, score = 10
    测试数据 #4: Accepted, time = 0 ms, mem = 512 KiB, score = 10
    测试数据 #5: Accepted, time = 0 ms, mem = 508 KiB, score = 10
    测试数据 #6: Accepted, time = 0 ms, mem = 512 KiB, score = 10
    测试数据 #7: Accepted, time = 0 ms, mem = 508 KiB, score = 10
    测试数据 #8: Accepted, time = 0 ms, mem = 508 KiB, score = 10
    测试数据 #9: Accepted, time = 0 ms, mem = 508 KiB, score = 10
    Accepted, time = 30 ms, mem = 512 KiB, score = 100
    代码
    #include<stdio.h>
    int a,b,c,n,i;
    int abs(int n)
    {
    return n>0?n:-n;
    }
    int cu(int m,int n)
    {
    int w=abs(m-n);
    if(w==1||w==n-1) return 1;
    return 0;
    }
    int main()
    {
    scanf("%d",&n);
    if(n&1)
    {
    scanf("%d%d%d",&a,&b,&c);
    i=cu(a,b)+cu(a,c)+cu(b,c);
    if(i==2)
    {
    printf("JMcat Win\n");
    return 0;
    }
    }
    else
    {
    printf("JMcat Win\n");
    return 0;
    }
    printf("PZ Win\n");
    }

    唉,真水这题

  • -1
    @ 2012-08-16 15:01:16

    第一次

    6~9超时

    第二次

    4~7超时

    第三次

    1~4 超时

    我无语了

    一模一样的程序

    这是什么破测评机

    该死

    终于过了

    强烈希望vijos更新测评机

  • -1
    @ 2012-08-05 22:16:01

    路过

信息

ID
1152
难度
5
分类
博弈论 点击显示
标签
递交数
1483
已通过
538
通过率
36%
被复制
7
上传者