五校新生友谊赛(部分题解)

F题
原题:传送门
题意:如题目,从一个棋盘的右上角(1,m),每次可以往左,下,左下移动,谁不能移动谁就输了。
思路:
先可以从小范围入手,1x1时先手必败点,一行或者一列的时候奇数点先手必败。
如3x3的图:
L:先手必败 W:先手必胜

L W L
W W W
L W L

能看出规律当n与m为奇数的时候先手必败。(可画大些找规律也可)
证明的话(由此图扩展)也就是当时操作的人需要走到先手必败的点去才能获胜。

#include<cstdio>
int main()
{
	int n,m;
	while(scanf("%d %d",&n,&m)&&(n||m))
	{
		if(n%2!=0&&m%2!=0)
			printf("What a pity!\n");
		else
			printf("Wonderful!\n");
	}
	return 0;
}

I题
原题:传送门
题意:把一个正整数分解为一个素数一个合数。
思路:
n是奇数分 3与n-3
n是偶数分 2与n-2即可
注意n<=5不行

#include<cstdio>
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int n;
        scanf("%d",&n);
        if(n<=5){
            printf("-1\n");
            continue;
        }
        if(n&1){
            printf("%d %d\n",3,n-3);
        }
        else
            printf("%d %d\n",2,n-2);
    }
    return 0;
}

发布了2 篇原创文章 · 获赞 0 · 访问量 228

猜你喜欢

转载自blog.csdn.net/weixin_45444789/article/details/104124493