竞赛游戏 & 亦或应用!!!
来源:互联网 发布:小牛数据恢复破解版 编辑:程序博客网 时间:2024/04/29 03:39
首先我想说明一下亦或这个应用,我认为亦或是一个非常重要的知识点。
总结一下亦或的性质 :
1.a ^ a = 0;
2.a ^ 0 = a;
3.(a ^ b) ^ c = a ^ (b ^ c);
4.已知 a ^ b = c 得到 a = b ^ c;
这些性质对于我们来求解某些问题非常的重要。
问题1:
交换两个变量的数值,但是不能引用第三个变量。
方法一:
a = a + b;
b = a - b;
a = a - b;
方法二:
a = a ^ b;
b = a ^ b;
a = a ^ b;
问题2:
连续给你1~1001个数字,但是有一个数字是重复的,问如何得到这个数字。
直接把这1 ~ 1001 这些数字都亦或,之后再从 1 ~ 1000 亦或,就能得到结果。
问题3:
一个数组中数字出现的个数是偶数的,但是有一个数字出现的个数是奇数的,如果知道这个数字。
把这个数组中的所有数进行亦或,就能得到出现奇数个数的那个数字
问题4:
在一个数组中,数字都是成对出现的,也就是说这对数字都彼此相等,但是有一对数字出现不是符合这个规定的,这对数字彼此是不相等的,求出这对不相等的数字。。。
把这个数组中的所有数进行亦或,得到的是这两个数字的的亦或结果,之后把这个亦或的结果看成是二进制,之后找到不为0的位,只要找到一个就可以了,找到后,让这个位置一直是1,其他的位变成0,之后和这个数组进行亦或,最后就能得到一对数字中其中的一个,剩下的那个和两个数的亦或结果在亦或就可以了。。。
竞赛游戏 :
这是一道博弈论的问题,A B 这两个人,在n堆石子中的一堆中拿出若干石子。直到不能再拿出石子的人为输。。。
这个题目首先要理解博弈论中的必胜态和必败态问题,我查询了博弈树的相关知识,也看了一些视频,只能大概理解为所谓的比生态或者为必败态就是如果对方一定能赢,你就一定会输,前提这个游戏只有两个人加入,如果你能确定他一定会输,那你就一定能赢,反正就是不是他赢就是你赢,就只用这两种结果。。
如果有20个石子,你和你的小伙伴一起进行拿石子,但是你们拿走的个数只能为 1 3 7 9 ,若果出现不能拿的情况就认为这个人输了,不能弃权。。。
对于这个题目就是使用了博弈的思想。他把每一种情况都考虑进去,就想好是一颗树一样,这样我们就自然而然的使用了递归的思想。
#include<string.h>#include<stdlib.h>#include<stdio.h>#include<iostream>using namespace std;#defineTRUE1#defineFALSE0int buf[] = {1,3,7,8};int fun(int num){for(int i = 0;i < 4;i++){if(num >= buf[i]){if(!fun(num-buf[i])){//如果对手输,我一定会赢 return TRUE;}}}return FALSE;//无论怎样对手都赢,我必输}int main( void ){(fun(20) && printf("我会赢\n")) || printf("我会输\n");return 0;}
现在该说我的那道竞赛游戏了,知道知道必败态和必胜态还有亦或之后,我们就能解决这个题目了。。。
思想就是如果这n堆石子都相同,先手A必败,如果不是B必败
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<iostream>using namespace std;int main( void ){int num;int arr;int sum;while(scanf("%d",&num) != EOF){sum = 0;for(int i = 0;i < num;i++){scanf("%d",&arr);sum ^= arr;}sum && printf("A赢\n") || printf("B赢\n");}return 0;}
- 竞赛游戏 & 亦或应用!!!
- 1041 竞赛游戏
- 【回溯法】游戏竞赛
- 竞赛游戏(博弈论)
- 获取APP STORE 上应用或游戏的详细信息
- map在竞赛中的应用
- 中国大学生程序设计竞赛 (合肥) 异或密码
- 算法竞赛入门经典P89 卡片游戏
- 信息学奥林匹克竞赛-小鱼的数字游戏
- 汇总最流行iOS游戏或应用营销及推广技巧
- 跨平台的 iOS,Android 在线游戏或应用如何实现?
- 安卓 自定义View来开发自己的游戏或应用
- 编程之美中的NIM游戏及异或性质应用
- [wp7游戏]wp7~~竞赛类游戏~~集合贴~~
- 贪心算法在竞赛中的应用
- 贪心算法在竞赛中的应用
- 贪心算法在竞赛中的应用
- 优先队列stl在竞赛中的应用
- 电脑散热风扇轴承分类
- 2015--阿里内推--测试开发--技术二面--(通过)
- Linux内核源代码情景分析-异常
- 在线即时展现 Html、JS、CSS 编辑工具 - JSFiddle
- 安装DevEmul_SDK后检测不到sdk解决方法
- 竞赛游戏 & 亦或应用!!!
- 如何免费进行论文查重
- OpenGL基本图元
- 字符串转整型.
- STM32 CAN 多于8字节的拆包组包协议(一)
- 用1、2、3、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 要求:"4"不能在第三位,"3"与"5"不能相连。
- dominio获取天气预报
- 创建数据库及删除数据库20150313
- R树空间索引