题解

45 条题解

  • 1
    @ 2017-11-02 15:32:28
    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    
    int n,kao[4];
    
    bool ans=false;
    
    int main(){
        scanf("%d",&n);
        int a,b,c;
        for(int i=1;i<=3;i++) cin>>kao[i];
        sort(kao+1,kao+1+3);
        if(kao[1]+1==kao[2]&&kao[2]+1==kao[3]) ans=true;
        else if(kao[1]+n==kao[3]+1&&kao[1]+1==kao[2]) ans=true;
        else if(kao[1]+n==kao[3]+1&&kao[2]+1==kao[3]) ans=true;
        if(ans){
            cout<<"JMcat Win";
            return 0;
        }
        int now=(n-2)%2;
        if(now) printf("PZ Win");
        else cout<<"JMcat Win";
        return 0;
    }
    
    
  • 1
    @ 2016-05-08 16:03:13

    #include <bits/stdc++.h>
    using namespace std;
    const int N=50010;
    int n,flag,black[5];
    int main(){
    scanf("%d",&n);
    for(int i=1;i<=3;i++) {scanf("%d",&black[i]);}
    sort(black+1,black+4);
    if(black[2]==black[1]+1 && black[2]==black[3]-1) flag=1;
    if(black[1]+n==black[2]+2 && black[1]+n==black[3]+1)flag=1;
    if(black[3]-n==black[1]-1 && black[3]-n==black[2]-2)flag=1;
    if(flag) printf("JMcat Win");else printf((n-2)%2==0?"JMcat Win":"PZ Win");
    return 0;
    }
    楼下的大神们说的很清楚了

  • 0
    @ 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;
    }

  • 0
    @ 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.

  • 0
    @ 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");
    }

    唉,真水这题

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

    第一次

    6~9超时

    第二次

    4~7超时

    第三次

    1~4 超时

    我无语了

    一模一样的程序

    这是什么破测评机

    该死

    终于过了

    强烈希望vijos更新测评机

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

    路过

  • 0
    @ 2010-03-18 19:52:24

    奇偶分析

  • 0
    @ 2010-03-14 15:06:30

    program p1152;

    var a:array[1..3] of longint;

    i,j,n:longint;

    begin

    readln(n);

    readln(a[1],a[2],a[3]);

    for i:=1 to 3 do

    for j:=i+1 to 3 do

    if a[i]>a[j] then begin t:=a[i];a[i]:=a[j];a[j]:=t; end;

    if ((a[2]=a[1]+1) and (a[3]-1=a[2])) or

    ((a[1]=0)and(a[2]=1)and(a[3]=n-1)) or

    ((a[1]=0) and (a[2]=n-1) and (a[3]=n-2)) then writeln('JMcat Win')

    else if odd(n) then writeln('PZ Win') else writeln('JMcat Win');

    end.

    楼下的少了个条件~

    如果数据是

    7

    0 6 5

    的话,答案是错的!!

  • 0
    @ 2009-11-07 16:26:05

    program lyc;

    var a:array[1..3] of longint;

    i,j,n,temp:longint;

    ans:string;

    begin

    readln(n);

    readln(a[1],a[2],a[3]);

    for i:=1 to 3 do

    for j:=i+1 to 3 do

    if a[i]>a[j] then

    begin

    temp:=a[i];

    a[i]:=a[j];

    a[j]:=temp;

    end;

    if ((a[2]=a[1]+1) and (a[3]-1=a[2])) or ((a[1]=0)and(a[2]=1)and(a[3]=n-1)) then writeln('JMcat Win')

    else if odd(n) then writeln('PZ Win') else writeln('JMcat Win');

    end.

    ==================================================

    如果黑的是最外的,那么cat win,如果黑色在里边那么就是取数问题了

    高深的博弈论我一概不知.....jiong

  • 0
    @ 2009-10-25 15:14:39

    Accepted 有效得分:100 有效耗时:0ms

    诧异了,水题都wa,因为“W”粗心打成了“w”,悲剧了我的通过率T^T

    大家一定要小心……

  • 0
    @ 2009-09-25 14:17:23

    数据太水,我自己的数据过不了的都能ac

  • 0
    @ 2009-09-19 21:55:39

    我不懂。。。。。。

    我头文件写的是iostream

    后面用的是scanf

    竟然过了。。。。。。。。

    O(∩_∩)O~

  • 0
    @ 2009-09-02 22:17:33

    …………………………

    因为W的大小写,WA了N次…………

  • 0
    @ 2009-08-26 21:54:24

    气死我了!又被隐藏的乱码糊弄,害得屡次查不出错误。

    总之,这毕竟是道水题。只能算奇偶分析。

  • 0
    @ 2009-08-25 13:37:45

    博弈论!!!

    博弈论!!!

    博弈论!!!

  • 0
    @ 2009-08-24 21:04:57

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    ---|---|---|---|---|---|---|-邪恶的分割线---|---|---|---|---|---|---|---|---|-

  • 0
    @ 2009-08-16 20:23:56

    郁闷。。自己YY出来的XOR方法只能过9个点。。

    YY方法:

    #include

    using namespace std;

    int main() {

    long a[3],n;

    scanf("%ld",&n);

    scanf("%ld%ld%ld",&a[0],&a[1],&a[2]);

    for (int i=0; i

  • 0
    @ 2009-08-12 23:05:27

    Program zz;

    var

    n,i,j,x,y,z,t : longint;

    a : array[0..3] of longint;

    Begin

    readln(n);

    readln(a[1],a[2],a[3]);

    For i:=1 to 2 do

    For j:=i+1 to 3 do

    if a[i]>a[j] then begin a[0]:=a[i]; a[i]:=a[j]; a[j]:=a[0]; end;

    if (a[2]-a[1]=1)and(a[3]-a[2]=1) then writeln('JMcat Win')

    else

    if (a[3]-a[2]=1)and(a[1]=0)and(a[3]=n-1) then writeln('JMcat Win')

    else

    if (a[1]=0)and(a[3]=n-1)and(a[2]-a[1]=1) then writeln('JMcat Win')

    else

    begin

    if odd(n) then writeln('PZ Win')

    else writeln('JMcat Win');

    end;

    End.

  • 0
    @ 2009-08-05 16:50:39

    这题输入只有前两行有用

    把黑三角形只有一条边与白三角形相接称为露出

    如果一开始黑三角形就露出,cat赢

    否则,两人轮流切,谁也不会切那使黑三角形露出来的一刀

    直到某人面临三个三角形,此时黑的肯定夹在中间,他输了

    没了……

信息

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