【题解】放球游戏A

题目描述

校园里在上活动课,Red和Blue两位小朋友在玩一种游戏,他俩在一排N个格子里,自左到右地轮流放小球,每个格子只能放一个小球。每个人一次只能放1至5个球,最后面对没有空格而不能放球的人为输。

现在Red先走,问他有没有必胜的策略?

比如:N=6时,Red必败。

输入格式

一行,一个整数N(2<N<100)。

输出格式

一行,一个整数。如果Red必胜输出1,否则输出0。

输入样例

9

输出样例

1

题解

先说结论,当$6|n$时,先手必输,否则先手必赢。

证明:当$6|n$时,先手放任意个球时,后手都能放到第$6$个球,这个时候还有$(n-6)$个格子,又可以进行上面的操作,直到不剩下格子,这是先手就输了。

但如果$6$不整除$n$,那么先手可以放$k$个球,到后手时剩下满足$6|(n-k)$的$(n-k)$个格子,这样就是后手必输,即先手必赢。

#include <iostream>

using namespace std;

int n;

int main()
{
    return cin >> n, cout << (n % 6 ? 1 : 0), 0;
}

参考程序

原文地址:https://www.cnblogs.com/kcn999/p/10777273.html

时间: 2024-10-28 19:58:55

【题解】放球游戏A的相关文章

放球游戏B

题目描述 校园里在上活动课,Red和Blue两位小朋友在玩一种游戏,他俩在一排N个格子里,自左到右地轮流放小球,每个格子只能放一个小球.第一个人只能放1个球,之后的人最多可以放前一个人的两倍数目的球,至少放1个球.最后面对没有空格而不能放球的人为输. 现在Red先走,问他有没有必胜的策略? 比如:N=4时,Red必胜. 输入输出格式 输入格式: 一行,一个整数N(2<N<100). 输出格式: 一行,一个整数.如果Red必胜输出1,否则输出0. 输入输出样例 输入样例: 7 输出样例: 0 思

盒子放球

盒子放球问题 第一类: 将k个球放入n个不同的盒子中,每个盒子放球数>=0,求方法数 假设n个盒子分别放x1,x2,x3...xn,则x1+x2+x3+...+xn=k,令yi=xi+1(1<=i<=n),则yi>=1且y1+y2+...+yn=n+k,相当于求yi这个方程的解组数,可以看成插板问题,往n+k个物品中插入n-1个板,所以答案是C(n+k-1,n-1)=C(n+k-1,k) /* *输入说明:k个相同的球放入n个不同的盒子 *输入每行有两个正整数n和k */ int

盒子放球的DP

URAL1114 题目大意: 有N个盒子,有红色和蓝色两种颜色的球.红球有A个,篮球有B个.现在随意的向盒子里放球, 每个盒子可以放一种颜色的球,也可以放两种颜色的球,也可以不放球.球不必全都放进盒子里.问:总共有多少种方法. 状态dp[i][j][k] 表示向i个盒子里放j个篮球和k个红球的方案数目 状态转移方程:dp[i][j][k]=对dp[i-1][jj][kk] (0<=jj<=j,0<=kk<=k) 求和 最终结果是:在n个盒子里放  不定数目的球的种类数和即   对d

bzoj 4874: 筐子放球

4874: 筐子放球 Time Limit: 10 Sec  Memory Limit: 256 MB Description 小N最近在研究NP完全问题,小O看小N研究得热火朝天,便给他出了一道这样的题目: 有 n 个球,用整数 1 到 n 编号.还有 m 个筐子,用整数1到m编号. 每个球只能放进特定的两个筐子之一,第 i 个球可以放进的筐子记为 Ai 和 Bi . 每个球都必须放进一个筐子中. 如果一个筐子内有奇数个球,那么我们称这样的筐子为半空的. 求半空的筐子最少有多少个. 小N看到题

【Unity3D】利用物体碰撞检测、键盘输入处理完成平衡球游戏

物体碰撞检测是游戏编程里面非常常用的功能,一旦碰到就怎么怎么样,比如掉血等.Unity3D直接就提供了物体碰撞检测的接口,实现起来很方便.借此功能,完成了一个平衡球游戏,同时说明Unity3D的物体碰撞检测.键盘输入处理的检测的使用.游戏如下图所示: 一.场景布置 1.UI方面布置如下所示,基本就是<[Unity3D]对话框.隐藏与显示.拖拽>(点击打开链接)的内容,不赘述了.StartModal和GameoverModal本质是Image,将他们重叠在一起,一会儿将用脚本隐藏Gameover

js 躲避球游戏

js做的躲避球游戏 代码参见: <!DOCTYPE html> <html> <head> <meta charset="{CHARSET}"> <title></title> <style> * { margin: 0,0,0,0; } .button-area { margin-left: auto; margin-right: auto; width: 440px; min-height: 20p

放球问题 组合数学 转自百度百科

放球问题是指把 n个球放到 m个盒子里的方案数.它是组合数学的一个非常重要的问题.根据球是否相同,盒子是否有区别,是否允许有空盒以及n与m 的大小关系,放球问题可分成 16 个子问题.不同情况总结见下表. 1,n 个球有区别,m 个盒子有区别,允许有空盒,n≥m≥1 由于可以有空盒,所以每个球可以放到m个盒子的任意一个盒子里.又因为盒子是有区别的,所以对于任意一个球有m种不同的选择. n个球是有区别的,所以总共有 种方案.比如,当n=3 时,第 1 个球有m种不同选择,第 2 个球有m种不同选择

【题解】扑克牌游戏

[题解]扑克牌游戏 假如我们知道一个答案,那么我们剩下的问题就是去检查这个答案是否合法. 显然可以拿\(m\)做文章,假设我们最终可以得到\(ans\)组套牌,那么对于每张牌,如果它的数量比\(ans\)小,我们就需要拿\(joker\)补.多的就没关系了. 很棒的思路,还有一个贪心做法,也很神仙.orz #include<bits/stdc++.h> #define R register int #define gc getchar using namespace std; typedef

【题解】二人放球

题目描述 校园里在上活动课,Red和Blue两位小朋友在玩一种游戏,他俩在一排N个格子里,自左到右地轮流放小球,每个格子只能放一个小球.每次Red放1个或2个红色的小球,Blue放1个或2个蓝色的小球,问有多少种可行的排放方案? 比如:N=4时,有10种可行的排列方案. 输入输出格式 输入格式 一行,一个整数N.(2<N<40). 输出格式 一行,一个整数M,可行的方案数. 输入输出样例 输入样例 3 输出样例 6 题解 易得这是一个类似Febonacci数列的东西,初始化时前两项乘2即可.