- 博客(20)
- 收藏
- 关注
原创 矩阵快速幂
矩阵快速幂:求一个矩阵的幂知识点参考该链接http://www.myexception.cn/arithmetic/1847338.html#include #include typedef struct mar{ __int64 matrix[2][2];} Mar;void print(Mar a){ int i,j;
2017-08-23 16:21:41
250
原创 POJ-3233 Matrix Power Series
原题链接:http://poj.org/problem?id=3233这一题是求S=A+A^2+....+A^K的和矩阵(二分再二分)贴我的矩阵快速幂(二分思想)模板链接:http://blog.youkuaiyun.com/x_xueting/article/details/77507566然后就是求和的二分 举个例子当k=6时 A+A^2+A^3+A^4+
2017-08-23 16:04:49
210
原创 全排列问题
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1384给出一个字符串S(可能有重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列。例如:S = "1312",输出为:112311321213123113121321211321312
2017-08-16 15:12:34
353
原创 HDU1027 Ignatius and the Princess II
题目链接 :http://acm.hdu.edu.cn/showproblem.php?pid=1027这道题可以使用字典序法求全排列贴一个链接:http://blog.youkuaiyun.com/a510218443/article/details/70552778#include #include int n,m,a[1010];void perm()
2017-08-16 15:04:48
260
原创 飞行员配对
原题链接:https://www.51nod.com/onlineJudge/problemList.html#!groupId=1第二次世界大战时期,英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2名飞行员,其中1名是英国飞行员,另1名是外籍飞行员。在众多的飞行员中,每一名外籍飞行员都可以与其他若干名英国飞行员
2017-08-15 15:00:36
525
原创 POJ1363Rails
题目链接 :http://poj.org/problem?id=1363此题是一个模拟栈的问题 题目意思:有一列火车,车厢编号是1~N,只能由一端进站,另一端出站,判断下列出站顺序是否有可能思路:判断序列元素是否与栈顶元素相等,若与栈顶元素相等,则栈顶指针递减,继续判断代码:注意输出Yes和输出格式#include #include #include
2017-08-09 17:10:46
285
原创 POJ_2082Terrible Sets
题目链接:http://poj.org/problem?id=2082/*栈的运用:栈是一种先进后出的数据结构,通过一个栈顶指针对入栈和出栈控制,可以改变一个序列的顺序本题就是运用栈将每个矩形(包括新形成的矩形)入栈,并且栈中矩形的高度成递增趋势,这样扫描整个栈就可以得出答案了*/#include #include #include using namesp
2017-08-09 13:51:26
170
原创 Hdu1106排序
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1106此题略坑错了好几次 注意开头和结尾多个5的情况提供几组数据5000 0512351245123 1245512312355123500 123贴上代码 排序我用的是快排 没有用冒泡 不过冒泡应该也可以毕竟数据不多#include #includ
2017-08-02 16:53:37
229
转载 排序算法的时间复杂度和空间复杂度
转载自 http://blog.youkuaiyun.com/wuxinyicomeon/article/details/5996675
2017-08-02 15:07:05
236
原创 Hdu1329Hanoi Tower Troubles Again!
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1329打表找规律#include int main(){ int i,a[51],t,n; a[1]=1; a[2]=3; for(i=3; i { if(i%2==0) a[i]=
2017-07-30 17:14:27
283
原创 Hdu2511汉诺塔X
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2511模拟(+递归)盘子移动的过程: 1.如果m=a[n-1]+1,即刚好移动n号盘子,移动方向A-->C 2.如果m>a[n-1],则考虑n-1号盘子,移动方向是B-->C,移动次数是m-(a[n-1]+1) 3.如果mB,移动次数是m; 4.重复1,2
2017-07-30 17:10:45
442
原创 Hdu2184汉诺塔VIII
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2184模拟: 1.如果m=a[n],说明n个盘子从A移到了C,,移动次数为m 2.若果m>a[n-1],说明n号盘子已经从A移到了C,并且考虑其他n-1个盘子,正从B--C,移动次数为m-(a[n-1]+1) 3.如果mB,移动次数为m 4.重复1,2,3#include
2017-07-30 17:09:14
387
原创 Hdu2175汉诺塔IX
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2175贴两种做法 不过思路都一样第一种#include __int64 m,a[64];int n;int hanio(int n,__int64 m){ if(m==a[n-1]+1) return n; if(m>a[n-1]
2017-07-30 16:33:49
248
原创 Hdu1997汉诺塔VII
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1997模拟盘子移动的过程: 1.根据经典的汉诺塔问题来讲,最大编号n的盘子一定是从A移到C,其余n-1个盘子从A通过C移到B, 所以编号为n的盘子如果在B塔上那么直接返回false,否则的话进行第二步 2.n号盘子不在B塔上,假设在A塔上,说明其余n-1个盘子从A通
2017-07-30 16:30:30
261
原创 Hdu1996汉诺塔VI
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1996题中说产生错移的所有可能系列,实际是盘子表示放在每个塔上的可能情况所以n个盘子,每个盘子有3种摆放的可能,所以就有3的n次幂种可能情况#include #include int main(){ int t,n; scanf("%d",&t);
2017-07-30 16:27:19
297
原创 Hdu1995汉诺塔V
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1995这道题要求的是在到达目标时K号盘子需要移动的次数,那么你应该要明白的是K号盘子的移动次数只和下面的盘子有关,跟上面的盘子都无关,所以这道题就转化成了剩下的n-k+1(k号盘下面的盘子数包括k号盘)号盘子需要移动的次数 然后因为如果是第n号盘子的话 那他的移动次数肯定是1所以我
2017-07-30 15:05:34
651
原创 Hdu2077汉诺塔IV
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2077这个题跟汉诺塔III的思路是一样的 只是分最后一步就行 贴一下我的汉诺塔III的解题链接 http://blog.youkuaiyun.com/x_xueting/article/details/76264947在第5步是将n-1个盘子从A-->B-->C,那么这个题就是在n-1个盘子从A-->
2017-07-28 16:43:45
352
原创 Hdu2064汉诺塔III
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2064这个题目改变了汉诺塔的经典玩法,但其实一样画图找出递归公式就可以了首先数组a[]记录移动的步数,a[1]=2,因为游戏规定不能直接从最左边移到最右边,只能从中间过,所以一个盘子的时候就多了一步接下来 A B C三个塔,n(n>=2)个盘子,模拟整个过程: 1.先考虑n-
2017-07-28 15:51:23
268
原创 Hdu1207汉诺塔II
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1207这是一个关于汉诺塔的四柱问题,参考了网上的讲解 贴个链接 http://www.cnblogs.com/fanzhidongyzby/archive/2012/07/28/2613173.html这里有个问题就是pow()函数返回的是一个double类型的数据 所以数组要定义成doub
2017-07-28 15:42:21
456
原创 杭电acm1016 Prime Ring Problem
/*dfs(深度优先搜索->“一搜到底”): 此题是要求从1~n组成一个环且每相邻的两个数相加为素数 注意题中说明每次都是从1开始 要定义两个数组:一个vis[]数组用来标记1~n的数是否被使用,还有一个a[]数组用来存放满足素数 环的数比如第一个实例中a[]={1,4,3,2,5,6}当然一个数n可能不止一个序列满足素数环 所以在组成 一个素数环时要将数组a[]输出
2017-04-17 21:19:01
596
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人