摘要: Problem illustration:given a n*n matrix, print its transition, for example , 90 degree clockwise,using only constant additional spaceanalysis:using O(... 阅读全文
posted @ 2014-04-27 18:43 mizz 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 社会名流问题:给定一个n×n邻接矩阵,确定是否存在一个i,其满足在第i列所有项(除了第ii项)都为1,并且第i行所有项(除了第ii项)都为0。插话:这个其实就是有向图求源与汇的变形,O(n)算法非常经典,也是先找出一个来,如果有源肯定是该元素,该元素如果不是源,则就没有社会名流了大致的算法思路:随便取一个非对角线元素,比如Array[i][j],如果Array[i][j]=0成立,则j不是社会名流,于是删去第j行和第j列。同样,如果Array[i][j]=1成立,则删去第i行和第i列;总之,无论对应项取何值,都可以删去一行和一列,因此整个操作只耗费O(n)的时间。重复此操作直至剩下最 阅读全文
posted @ 2014-04-08 19:59 mizz 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 问题描述:数独问题解题要点:回溯时要恢复回溯之前的所有状态,一开始s数组回溯时忘了清零所以结果很奇怪代码:#include#include#include#include#include#includeusing namespace std;const int maxn = 10;char input[maxn][maxn];int s[maxn][maxn];int cubicrecord[maxn][maxn];int linerecord[maxn][maxn];int columnrecord[maxn][maxn];bool success = false;void dfs(int 阅读全文
posted @ 2014-04-06 13:31 mizz 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 反思:1.Q:next_permutation如何处理有重复串的情况? A:上述函数实现的原理仍然适用:对于{1,1,1,1,1},由于找不到一个正序对,所以next_permutation返回false;2.Q:是否有求出前一个排列的函数? A:prev_permutation参数,返回值,实现原理等类似(二)自己写一个交换的程序代码如下:#include#include#include#include#include#includeusing namespace std;void exchange(int*,int,int);int cnt = 0;int main(){ int A... 阅读全文
posted @ 2014-04-04 19:07 mizz 阅读(555) 评论(0) 推荐(0) 编辑
摘要: 问题描述:给定一个整数n,按字典序打印出1-n的所有全排列问题解答:1.用C++里的next_permutation函数函数定义如下:templatebool next_permutation( BidirectionalIterator _First, Bidirection... 阅读全文
posted @ 2014-04-04 18:56 mizz 阅读(504) 评论(0) 推荐(0) 编辑
摘要: signed short类型的控制字符是%hd,而且在超过范围后自动对65536取模 阅读全文
posted @ 2013-08-29 23:23 mizz 阅读(162) 评论(0) 推荐(0) 编辑