
算法课
一定要早睡的小龙
早睡早起身体棒
展开
-
欧几里得游戏
题目: 一开始,黑板上写有两个不相等的正整数,两个玩家交替写数字,每一次,当前玩家都必须在板上写出任意两个板上数字的差,而且这两个数字必须是新的,也就是说,不能与板上任何一个已有的数字相同。当玩家再也写不出新数字时,他就输了。请问,你是选择先行动还是后行动呢?分析: 其实这道题和欧几里得算法的减法版本有点像,只是有点拓展,无论他们怎么相减,最后肯定会得到最大公约数,假设...原创 2018-04-14 20:19:16 · 1827 阅读 · 0 评论 -
写个蛮力KMP算法mark一下
用蛮力法求的next数组:额首先要知道next数组就是模式串最长真前缀真后缀的长度#include<iostream>#include<cstring>using namespace std; void GetNext(char T[],int next[]){ int i,j,len; next[0]=-1; next[1]=0;//第二个字符前只有一个字符,...原创 2018-04-14 22:11:09 · 253 阅读 · 0 评论 -
美国有一个连锁店叫7-11
题目:在美国有一个连锁店叫7-11.这样叫的原因可能是因为他们以前常常是早晨7点开门晚上11点关门,但现在他们全天营业.有一天,一个顾客在其中的一个店里挑了四样东西,然后他到收银台去交钱.营业员拿起计算器,按了一些键,然后说道:“总共是$7.11.”这个顾客开了个玩笑说:难道你们的店名叫7-11,所以我就要付$7?”营业员没听出是个玩笑,回答说:“当然不是的!我已经把这四样东西的价格相乘才得出这个...原创 2018-04-15 11:32:22 · 3573 阅读 · 0 评论 -
生成子集
子集问题:写出集合{1~n}的所有子集提示:共2n种 增量构造法一个集合有几个子集,即求从该集合中可取出多少组合在有n个元素的集合中即Cn0 +Cn1+ .....Cnn=2n增量构造法:#include<iostream>using namespace std;int n,a[]={1,2,3,4,5,6,7,8,9,10},temp[10]={0};//te...原创 2018-04-13 20:26:35 · 535 阅读 · 0 评论 -
辗转相减/除法求最大公约数
第一次算法课上机老师让我们用两种方法求最大公约数:辗转相减法:#include<iostream>#include<algorithm> using namespace std;//如果这两个数相等则是解,否则每次取相减后3个数中最小的两个 int gcd(int a,int b){ if(a==b)return a; return a>b?gcd(a-b...原创 2018-04-14 01:43:02 · 6749 阅读 · 0 评论