算法
lv1120101875
这个作者很懒,什么都没留下…
展开
-
动态规划考智商 智商是硬伤
2013编程之美资格赛题目——踩方格 描述 有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设: a. 每走一步时,只能从当前方格移动一格,走到某个相邻的方格上; b. 走过的格子立即塌陷无法再走第二次; c. 只能向北、东、西三个方向走; 请问:如果允许在方格矩阵上走n步,共有多少种不同的方案。2种走法只要有一步不一样,即被认为是不同的方案。 输入 允许在方格上行走的步数n原创 2013-04-12 22:44:47 · 725 阅读 · 1 评论 -
鸽巢原理
#include #include #include int sum[100001],neighbor[100001],hash[100001]; int main() { int c,n,flag; int i,j; int x; while(1) { flag = 0; //memset(sum,0,sizeof(sum)); sum[0] = 0; mems原创 2013-04-17 20:48:26 · 555 阅读 · 0 评论 -
二分法 poj 1064
最讨厌精度了,不做了。过不了,遇到精度没耐心,不会处理。以后心情好了再做,擦。原创 2013-04-18 13:04:39 · 487 阅读 · 0 评论 -
排序系列 poj2379
#include #include #include typedef struct { int team; int pro_nums; int time; bool ac[21]; int wa[21]; }Team; typedef struct { int ci,pi,ti,ri; }Input; int cmp(const void * a ,const void *b)原创 2013-08-07 13:42:47 · 593 阅读 · 0 评论 -
poj 1936 简单的寻找子串
纯模拟过去,很简单。扫描s里的每一个字母,能在t里面按照先后顺序找到,则输出Yes,否则输出No 用LCS 、 滚动数组啥的 空间不够 或者 麻烦 #include #include #include int main() { bool flag; int lena,lenb,i,j,begin; char s[100000],t[100000],temp; while(scan原创 2013-09-01 20:22:47 · 742 阅读 · 0 评论 -
poj 2363 poj 1011 dfs + 剪枝
#include #include #include int sticks[20]; bool visit[20]; int cmp(const void * a,const void *b) { return *(int *)b - *(int *)a; } bool dfs(int s,int N,int cur,int left,int num,int lengthside) //原创 2013-09-02 11:53:55 · 533 阅读 · 0 评论 -
poj1094 拓扑排序
拓扑排序的应用:1、当前的输入序列排序唯一,则输出 Sorted sequence determined after %d relations2、当前输入序列不唯一,检查是否有环3、全部输入后,若排序唯一和有环,输出1、2,否则输出 Sorted sequence cannot be determined拓扑排序 每次选点入度为0的点唯一 则排序唯一否则排序结果不唯一若某次选择点,不存在入度为0的原创 2013-08-07 13:54:39 · 739 阅读 · 0 评论 -
poj 2965 dfs+枚举
此题的难点在于数学规律的寻找 1、搞清楚棋盘的所有状态,由于翻转一个位置偶数次不会对该位置以及相应的行和列的状态产生影响,翻转奇数次又相当于翻转一次,因此,翻转的时候可以不考虑翻转哪个位置的先后顺序,这样所有的状态是为2的16次方。 2、由所有状态可以建立一颗而叉搜索树,没个位置有两个分叉,一个是翻转,一个是不翻转,树的最高高度为16,因为可以加快搜索的速度,在搜索的过程中,搜到所有可行解,并原创 2013-09-03 17:21:03 · 638 阅读 · 0 评论 -
poj 3264 RMQ问题 ST算法
比较裸的RMQ问题,即对一个无序数组,查询Q次,每次查询某个区间内最大值与最小值之差。 解决此问题的算法有三种 1、最简单的方法就是O(n)了 2、线段树 3、ST(Sparse Table)算法 其中ST算法为解此问题的最佳方法 预处理时间复杂度O(nlogn),查询时间复杂度O(1) ST算法描述如下: 1、先对数组进行预处理 预处理使用DP的思想,f(i, j)表示[原创 2013-09-07 22:05:30 · 643 阅读 · 0 评论