03 2015 档案

摘要:这个题如果用邻接矩阵的话,由于n比较大,会超内存,所以选用邻接表的形式。还有就是这个题有那个等级的问题,一级比一级的福利高,所以不能直接拓扑排序,而是反过来,计算出度,找出度为0的顶点,然后更新出度数组,等级更新的时候要判断是否比原来的等级大,具体看代码 1 /*******************... 阅读全文
posted @ 2015-03-28 18:36 Howe_Young 阅读(845) 评论(0) 推荐(0)
摘要:这个题是个模板题,可以直接用拓扑排序的模板来做,AC代码#include #include#include using namespace std;const int N = 1000;int n, m;int Map[N][N];int topNum[N];bool toposort(int *r... 阅读全文
posted @ 2015-03-27 21:47 Howe_Young 阅读(171) 评论(0) 推荐(0)
摘要:这个题是个典型的最小生成树的题目,但是刚开始怎么都过不了,后来发现两种写法都有疏忽,但是prim的到目前为止不懂为什么刚开始的不对,kruskal算法,并查集的初始条件从0开始写成从1开始了,所以已知wa,还有这个题比最小生成树一个卡点就是处理两点之间的距离的时候,要保证点都在10-1000之间。其... 阅读全文
posted @ 2015-03-26 21:33 Howe_Young 阅读(191) 评论(0) 推荐(0)
摘要:Dijkstra算法描述起来比较容易:它是求单源最短路径的,也就是求某一个点到其他各个点的最短路径,大体思想和prim算法差不多,有个数组dis,用来保存源点到其它各个点的距离,刚开始很好办,只需要把邻接矩阵里面它到其它点的距离复制过来就行了。剩下的步骤就是找到一个源点到其他点最小的距离,将它加入到... 阅读全文
posted @ 2015-03-24 21:50 Howe_Young 阅读(365) 评论(0) 推荐(0)
摘要:这道题目状态转移方程比较复杂,刚开始以为没这么多情况,看了好多大牛的博客再加上与同学讨论才看懂,写下心得。因为起点不固定,所以我们一个一个来考虑,先从角上考虑,设三个数组来表示分别为D,A,Sum,分别表示为“从一个角开始然后回到同一列的对应位置的总个数”, “从一个角开始的总个数(包括回到对应位置... 阅读全文
posted @ 2015-03-23 21:46 Howe_Young 阅读(335) 评论(0) 推荐(0)
摘要:先说一下题目大意:给定一些线段,这些线段顺序编号,这时候如果两条线段相交,则把他们加入到一个集合中,问给定一个线段序号,求在此集合中有多少条线段。 这个题的难度在于怎么判断线段相交,判断玩相交之后就是怎么找个他们之间的联系,这时候就要用到并查集了。 步骤: 1.判断两条线段相交 2. 用并查集实现查 阅读全文
posted @ 2015-03-23 16:29 Howe_Young 阅读(707) 评论(0) 推荐(0)
摘要:问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。经过若干次移动,可以形成第二个图所示的局面。 我们把第一个图的局面记为:12345678. 把第二个图的局面记为:123.46758 显然是按从上到下,从左到右的顺序记... 阅读全文
posted @ 2015-03-19 21:47 Howe_Young 阅读(550) 评论(0) 推荐(0)
摘要:X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0!。这就是康托展开。 ------来自百度百科上... 阅读全文
posted @ 2015-03-18 22:00 Howe_Young 阅读(1502) 评论(0) 推荐(0)
摘要:快速乘法的思想和快速幂的思想一样,快速幂是求一个数的高次幂,快速乘法是求两个数相乘,什么时候才用得到快速乘法呢,当两个数相称可能超过long long 范围的时候用,因为在加法运算的时候不会超,而且可以直接取模,这样就会保证数据超不了了。具体拿一个BestCoder的题目来示例。题目链接:http:... 阅读全文
posted @ 2015-03-16 20:59 Howe_Young 阅读(6989) 评论(0) 推荐(0)
摘要:欧几里德的是来求最大公约数的,扩展欧几里德,基于欧几里德实现了一种扩展,是用来在已知a, b求解一组x,y使得ax+by = Gcd(a, b) =d(解一定存在,根据数论中的相关定理,证明是用裴蜀定理),关于欧几里德的证明请看上篇。基本算法:基本算法:对于不完全为 0 的非负整数 a,b,gcd(... 阅读全文
posted @ 2015-03-16 20:23 Howe_Young 阅读(349) 评论(0) 推荐(0)
摘要:刚开始写的一维数组,但是由于后面的数字较大,要对它取模,所以用一维数组进行减法运算,结果就不对了。所以还是得用二维数组,用dp[n][0]来表示第n位为男生总的方法个数,dp[n][1]表示第n位为女生总方法个数。那么男生的状态转移方程为dp[n][0] = dp[n - 1][0] + dp[n ... 阅读全文
posted @ 2015-03-14 13:16 Howe_Young 阅读(234) 评论(0) 推荐(0)
摘要:过了这么久,终于知道了辗转相处的证明了,以前只是记住了,但不是真的很理解,现在写一下它的证明,以便下次忘了的时候看一下。辗转相除是求两个数的最大公约数的。要证这个定理成立,只需要证明 gcd(a, b) = gcd(b, a % b) 就行了证明:令a % b = r, 所以a = k * b + ... 阅读全文
posted @ 2015-03-11 11:22 Howe_Young 阅读(6059) 评论(0) 推荐(2)
摘要:找球号(三)时间限制:2000ms | 内存限制:3000KB难度:2描述xiaod现在正在某个球场负责网球的管理工作。为了方便管理,他把每个球都编了号,且每个编号的球的总个数都是偶数。有一天,xiaod发现少了一个球,你能帮他找出丢的那个球的球号吗?输入有多组测试数据。每组数据包括两行。第一行是一... 阅读全文
posted @ 2015-03-09 21:39 Howe_Young 阅读(285) 评论(0) 推荐(0)