有人玩那个csgo翻硬币怎么玩的吗

(藏匿的二十二)
(藏匿的二十二)
(藏匿的二十二)
(藏匿的二十二)
(藏匿的二十二)
第三方登录:随笔 - 51&
文章 - 0&评论 - 4&trackbacks - 0
原文参见这里:
原文中只给出了一个结果,但是没有分析过程。最后我逆向了一下,有点拾人牙慧。
我再引用一下人家的题目:
Alice和Bob两人玩一种硬币游戏。游戏在一个的棋盘上进行,棋盘上每个格子上都有一枚硬币。在每一回合,Alice可以决定选择翻转某两枚或者一枚硬币,接着Bob可以选择将棋盘旋转90,180或者270度,也可以什么都不做。 游戏轮流进行直到棋盘上所有硬币都正面朝上或者反面朝上,Alice获得胜利。 如果Alice在游戏过程中无法看到棋盘上的银币,也不知道游戏刚开始的状态,甚至不知道Bob每回合是否旋转了棋盘,那么Alice有策略能够获得胜利么?他的最优策略是什么?
这个问题是个非常好的锻炼思维的题目。但根据葡萄同志顽强拼搏的意志(),终于在睡觉之前把这个问题的思路整理如下:
(1)这是个分情况讨论,自底向上的问题。一个题目如果一上来没什么思路,那肯定就是举例子+分情况。4个硬币,需要处理的显然就是3种情况(4个全向上和4个全向下不需要处理):2个向上+2个向下;1个向上+3个向下;3个向上+1个向下。很容易看出这个其实就是两种情况:偶数个向上+偶数个向下;奇数个向上+奇数个向下。
(2)然后看进行的操作对这些情况产生的影响。当然我们得列举我们可以进行哪些操作,这算是一个难点了。我第一次卡就卡在这个地方,想象能力不够。可以进行的操作其实就是三种:对角线翻转(将对角线上的两个硬币翻转);边翻转(将一个边上的两个硬币翻转);单个硬币的翻转。
然后看看这些操作都对硬币产生了什么影响。由于题目要求4个硬币全向上或者全向下都可以,所以不用关心最终状态的反正,我们只需要关心硬币状态是否一致就可以了。那么可以大致得到这样的结论:对角线翻转和边翻转都不改变整个状态的奇偶性;单个硬币翻转则改变整个状态的奇偶性。这里的奇偶性指的是:4个硬币中如果奇数个向上奇数个向下,整个状态就是奇的;如果偶数个向上偶数个向下,整个状态就是偶的。
(3)关于必胜策略。我一开始对于必胜策略的想法也错了,认为是必须执行完必胜策略的所有步骤,看最终状态。其实并不是这样,只要沿着必胜策略走,那么走到任何一步胜利都可以退出。
(4)最重要的一点,也是题目最迷惑的一点就是还存在一个干扰,就是有人可以旋转硬币的位置。其实这个干扰对于一个4个硬币的正方形来说,形同虚设。
下面的讨论都是在任意旋转的情况下进行的。你可以将我所说的操作加于任何一个对角线或者边或者硬币,都不影响最后结果。
下面用图示说明这个问题:
先说偶数的情况。情况1和情况2都属于偶数的情况。情况1其实不用解释了,任意的一次对角线翻转就可以搞定。情况2需要解释一下:对角线翻转对于情况2是一点作用没有,因为,对角线翻转之后,两个同样的硬币还是会在一边;但是边翻转操作就对它有用了,施加一次就可以变成情况1。于是,这两种情况最多用三步就可以解决了:一次对角线翻转(此时情况1的就胜利了)+一次边翻转+一次对角线翻转(此时情况2胜利)。
再看情况3,即奇数的情况。情况3有两种,但是殊途同归。当然,我们已经将上面的三步(对付情况1和情况2的)施加在它们身上,但是其实一点用都没有,它们还是会是这个样子。为什么呢?因为上面说过了:边翻转操作和对角线翻转操作不改变奇偶性!所以进行三次操作之后,情况3的硬币还是会保留情况3中最左端的两种状态。但是怎么能让他们改变一点呢?就剩最后一种能改变奇偶性的操作了:翻转一枚硬币。那么马上情况3就演变成了情况1和情况2,或者就直接成功退出了!之后再进行情况1和情况2中的三步操作就一定会成功了。
所以最后最多也只需要7步操作!
【参考文献】
这里还给出了当不只有4个硬币,推广到N的情况。。。
阅读(...) 评论()翻硬币问题诀窍_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
翻硬币问题诀窍
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢硬币在手指上翻滚
全部答案(共1个回答)
其实不用兑换,直接存到账户里就可以了,还可以享受利息。
这可以说明体动成面,也就是我们生活中的任何立方体,或者说三维体,都是由面构成,也可以说明过球体中心的任何一条直线切割这个球
中国人民银行不办理具体业务
到各商业银行兑换
不容易换到
到对公业务窗口一试
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区蓝桥杯--翻硬币问题分析
小明正在玩一个&翻硬币&的游戏。
桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。
比如,可能情形是:**oo***oooo
如果同时翻转左边的两个硬币,则变为:oooo***oooo
现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?
我们约定:把翻动相邻的两个硬币叫做一步操作,那么要求:
两行等长的字符串,分别表示初始状态和要达到的目标状态。每行的长度&1000
一个整数,表示最小操作步数。
o****o****
o**o***o**
o***o**o**
题目提示用贪心,所以就按照贪心的想法,找到就翻一下指导相同为止
import java.util.S
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String str1 = input.next();
String str2 = input.next();
char[] arr1 = str1.toCharArray();
char[] arr2 = str2.toCharArray();
int count = 0;
for (int i = 0; i & arr2.length -1; i++) {
if (arr1[i] != arr2[i]) {
arr1[i] = arr2[i];
if (arr1[i+1] =='*') {
arr1[i+1] ='o';
arr1[i+1] ='*';
System.out.println(count);
之前想把替换改为三目运算法,一直把三目运算符当成if的简写,没想到一直报错,搜了下,才发现下面问题,必须要有值来接受这个表达式.
三元操作:
result = (表达式)? a:b;
没有result,三元操作会报错

我要回帖

更多关于 dota2翻硬币 的文章

 

随机推荐