ACM
文章平均质量分 70
wy_kath
这个作者很懒,什么都没留下…
展开
-
poj1088(动态规划经典)
题目链接:http://poj.org/problem?id=1088 题目意思:滑雪问题,给一个二维数组,要求从中找出一点,从改点出发,可以向前、后、左、右四个方向滑动,但要求高度只能越来越低,求出这样一条路径最长的下降序列,输出经过的点的个数(max)。 以下转自某以为大牛: 算法:开一个二维数组high记录每个点的高度,一个二原创 2012-03-29 22:15:22 · 1116 阅读 · 0 评论 -
poj2080(日期处理问题)
题目链接:http://poj.org/problem?id=2080 题目意思:2000年1月1日后n天是几月几号周几. 提示:2000年1月1日是星期六。 考察细心,细心一点就可以了。代码:#includechar week[7][10]={ {"Saturday"},{"Sunday"}, {"Monday"}, {"Tuesday原创 2012-03-29 22:34:17 · 543 阅读 · 0 评论 -
poj1338(Ugly Numbers)
题目链接:http://poj.org/problem?id=1338 题目大意:满足只能被质素2,3,5整除(如果能被质素7和其它质素整除,则不是的)的正整数称为Ugly Number,有一串从小到大排列的Ugly Numbers(1,2,3,4,5,6,8,9,10,12....),输入n,输出该串的第n个Ugly Number。 题目和代码都不难理解,只是想向原创 2012-07-27 20:34:17 · 644 阅读 · 0 评论 -
poj1201(差分约束 + spfa)
题目链接:http://poj.org/problem?id=1201 题目意思:有n个区间[ai,bi],找一最短序列,要求该序列中至少有ci个数字在区间[ai,bi]上。 思路:差分约束系统,感兴趣的同学可以点击链接看看,以dis[i]表示该序列出现在区间[0,i]内的数字个数,minnum与maxnum分别表示n个区间并集的下界和上界,则原创 2012-05-10 14:15:20 · 1347 阅读 · 1 评论 -
poj1716(差分约束+Bellman_Ford)
题目链接:http://poj.org/problem?id=1716 题目意思:有n个区间[a,b],现在要求寻找一个最短序列,要求该序列中至少有两个数字出现在所给n个区间的每个区间中。 思路:这是第一道差分约束题目,所以也并不了解,就在网上参考了大牛的代码。代码中,以dis[i]表示该序列出现在区间[0,i+1]的数字个数,则会有一下三个约束条件:原创 2012-05-09 23:26:08 · 596 阅读 · 0 评论 -
poj1401(Factorial)
题目链接: http://poj.org/problem?id=1401题目分析: 这一题要求的是N!中末尾0的个数,其实也就是所包含因子10的个数。10=5*2,因子10的个数也就是因子2的个数与因子5的个数中较小的那个,N!=1*2*3...*N,其中2的因子个数一定不少于5的因子个数,所以要求的其实就是N!中所包含的5的因子个数。代码:#includeint原创 2012-05-03 21:53:45 · 455 阅读 · 0 评论 -
poj1157(花店问题+经典DP)
题目链接:http://poj.org/problem?id=1157 题意:花店有F种花,V个花瓶。花和花瓶的编号均为1...N;当店主将每种花放在不同的花瓶里时所产生的美学值是不同,现告诉你每种花放在每个花瓶时的美学值,求如何放,这F种花能够获得最大的美学值,最大是多少。要求编号较大的花必须放在编号较大的瓶子中。代码:#include#include#define原创 2012-08-23 19:48:39 · 1066 阅读 · 0 评论 -
poj3630(Phone List+字典树)
题目链接:http://poj.org/problem?id=3630 题意:有N个数字串,问其中是不是有某个串是另一个串的子串,有输出NO,否则输出YES。 注意:该题在构造字典树的时候,不能用malloc函数动态构造,应该将字典树保存在数组中,静态构造,否则将报TLE。代码:#include#includetypedef struct Node{原创 2012-08-23 19:11:53 · 673 阅读 · 0 评论 -
Cyclic Nacklace
CC always becomes very depressed at the end of this month, he has checked his credit card yesterday, without any surprise, there are only 99.9 yuan left. he is too distressed and thinking about how to原创 2012-08-23 19:04:47 · 474 阅读 · 0 评论 -
poj3641(KMP求子串重复次数)
题目链接:http://poj.org/problem?id=3461 题意:求字符串T在字符串W中出现的次数。代码:#include#includechar W[100005];int next[100005];char T[1000005];int ans ;int lenW,lenT;void getnext(){ int i,原创 2012-08-23 18:55:00 · 684 阅读 · 0 评论 -
poj 1564(dfs~~~)
题目链接:http://poj.org/problem?id=1564 题意:给你一个数字n和一系列数字,不递减的,找出加和等于所给的n的方案。要求输出也是按递减的,逆字典序。。。 思路:运用DFS找出所有的情况,记下,然后去掉重复的即可。代码:#includeint num[15],r[15];int t,n,flag;void dfs(int l原创 2012-03-29 22:50:12 · 545 阅读 · 0 评论 -
edmonds-karp求最大流
在算法导论中对求解最大流问题给出了一般性的解决方法,但并没有涉及到具体的实现。在这里我还是重新的对求解最大流的思想进行一般性的描述,然后再给出具体的实现。 Ford-Fulkerson方法依赖于三种重要思想,这三个思想就是在上一篇网络流基础中提到的:残留网络,增广路径和割。Ford-Fulkerson方法是一种迭代的方法。开始时,对所有的u,v∈V有f(u,v)=0,即初始状态时流的转载 2011-08-22 14:28:33 · 684 阅读 · 0 评论 -
typedef struct与struct
第一篇:typedef struct与struct的区别1. 基本解释typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。至于typedef有什么微妙之处,请你转载 2011-09-02 12:32:21 · 519 阅读 · 0 评论 -
poj1080
动态规划,LCS的扩展; f[i][j]为a[i]与b[j]的相似值,aa[i],bb[i]是a[i],b[j]的坐标; 动态方程是:f[i][j]=max{f[i-1][j-1]+score[aa[i-1]][bb[j-1]],f[i][j-1]+score[4][bb[j-1]],f[i-1][j]+score[aa[i-1]][4]};原创 2011-08-03 20:17:33 · 480 阅读 · 0 评论 -
poj2406
题目链接:http://poj.org/problem?id=2406 题目要求:求出字符串S的子串a出现的次数n,其中S=a^n,输出n.代码:#include#includechar S[1000001];int next[1000001];void main(){ int i,j,len,ans; while(scanf("%s",S)!原创 2012-03-29 17:00:47 · 361 阅读 · 0 评论 -
poj1126
Simply Syntax In the land of Hedonia the official language is Hedonian. A Hedonian professor had noticed that many of her students still did not master the syntax of Hedonian well原创 2011-08-05 13:55:07 · 649 阅读 · 0 评论 -
2010成都赛区网络赛第五题---Food(hdu4292)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4292 题意:有F种食物和D种饮料和他们的具体数量。有N个人,每个人喜欢其中的某些食物或饮料,如何分配这些食物和饮料,能让更多的人,得到他们喜欢的一种食物和饮料。 思路:网络流。 建图思路: (1)、取超级源点和超级汇点。原创 2012-09-22 00:17:52 · 1753 阅读 · 0 评论 -
poj2823(Sliding Window+线段树)
题目链接:http://poj.org/problem?id=2823 题意:有N个数字排成一行,,编号1....N。然后有个宽度为K的滑动窗口,这个窗口的左侧开始停在编号为1的数字,每次向右滑动一个数字,直至窗口的右侧停在编号为N的数字,每次滑动(包括第一次没滑动),查询窗口里包含的数字中最大的一个和最小的一个。输出时,一行先输出所有最小的,然后另起一行输出所有最大的。原创 2012-08-23 19:33:01 · 730 阅读 · 0 评论 -
poj2392(Space Elevator + 多重背包)
题目链接:http://poj.org/problem?id=2392 题意:有K种规格的楼梯,现在要用这K种规格的楼梯架高(就是一个楼梯一个接起来,变成一个更高的楼梯),但其中每种规格的楼梯有个限制,就是它的高度不能超过a(连接上它后楼梯的总高度不能超过a).现在告诉你这K种楼梯每种楼梯的高度为h,限制为a,有c个。问用这些楼梯最高能拼接成多高的楼梯。 首先要将这K种原创 2012-08-12 11:08:54 · 674 阅读 · 0 评论 -
POJ 图论、网络流入门题总结、汇总 收藏
转载自:http://blog.csdn.net/logic_nut/article/details/4491326POJ 2449 Remmarguts' Date(中等)http://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意:经典问题:K短路解法:dijkstra+A*(rec),方法很多相关:http://acm.pku.e转载 2012-08-02 12:38:56 · 641 阅读 · 0 评论 -
网络流算法总结
PS:最近在学习网络流,在网上看到这篇文章,转载分享分享: 转载自: http://blog.csdn.net/zhangxiang0125/article/details/6274921 总体上来说,最大流算法分为两大类:增广路 (Augmenting Path) 和预流推进重标号 (Push Relabel) 。也有算法同时借鉴了两者的长处,转载 2012-07-29 10:00:26 · 1236 阅读 · 0 评论 -
C语言标准库函数 qsort 详解
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。qsort包含在头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。函数原型:void qsort ( void * base, size_t num, size_t size, int转载 2012-04-24 16:08:49 · 401 阅读 · 0 评论 -
poj1655(Balancing Act + 树形dfs)
题目链接:http://poj.org/problem?id=1655 题意:有一颗N个节点的树,每个节点的Balancing是删除该节点后所有子树中节点数目最大的子树节点数目。问Balancing的最小值与该节点的编号。如果Balancing相同,输出节点编号较小的。代码:#include#include#define MAXN 20005struct Edge{原创 2012-08-22 10:57:28 · 745 阅读 · 0 评论 -
poj2378(Tree Cutting)
题目链接:http://poj.org/problem?id=2378 题意:一颗有N个节点的树,删除其中某个节点,如果其子树中节点数目最多的子树的节点数小于等于N/2,则该节点为合法节点,问该树中有多少个合法节点。 代码:#include#include#define MAXN 10005struct Edge{ int v; int next;}e原创 2012-08-22 10:46:34 · 718 阅读 · 0 评论 -
poj1724(Coins)
题目链接:http://poj.org/problem?id=1742 题意:有n种面值的硬币,面值为A的硬币有C个,现在问利用这n种硬币能够组合,使得总价值小于m的方法有多少种。代码:#include#include#define MAXN 101#define MAXM 100001int A[MAXN],C[MAXN];int dp[MAXN],nu原创 2012-08-12 11:29:43 · 619 阅读 · 0 评论 -
poj1087(网络流 + EK)
题目链接:http://poj.org/problem?id=1087 题意:房间里N个通了电的插座,有M种电器,每种电器只有插在对应类型的插座上才能正常工作。现在有K个转换器,能将一种类型的插座转换成另一种类型的插座。利用这K个转换器和N个通电插座,使尽量多的电器能够正常通电工作(题目要求输出最少能使多少台电器不工作的数目)。 思路:网络流求最大流(能原创 2012-08-28 20:34:24 · 770 阅读 · 0 评论 -
poj1411(Brackets Sequence)
题目链接:http://poj.org/problem?id=1411 题意:一个字符串由"(" ")" "[" "]"组成的字符串。先来定义一个合法串: 1:()是一个合法串; 2:[]是一个合法串; 3:一个合法串和另一个合法串相邻组合而成的串是一个合法串; 4:一个合法串包含另一个原创 2012-08-23 20:25:46 · 656 阅读 · 0 评论 -
poj1160(Post Office)
题目链接:http://poj.org/problem?id=1160 题意:有N个村庄,要在这N个村庄中建K个邮局,求如何布置这些邮局能使得所有村庄到离它最近的那个邮局的距离总和最小。代码:#include#include#include#include#define INF 10000000int v[305];int V,P;int dp[3原创 2012-08-23 20:09:28 · 1193 阅读 · 0 评论 -
poj2533(最长递增序列)
题目链接:http://poj.org/problem?id=2533 题意:求一串长度为N的数字的最长递增子序列的数字个数。 代码:#includeint arr[1010];int dp[1010];int N;int main(){ while(scanf("%d",&N)!=EOF) { int i,j,k; for(i=1;i原创 2012-08-23 19:55:38 · 581 阅读 · 0 评论 -
poj1423(斯特林公式(n!的位数))
做这题之前,在网上查了些资料,开始知道n!的位数可以这样求得:num=log10(2)+log10(3)+log10(4)+........log10(n)+1; 但题目的数太大了,运用该方法显然会超时!!!! 于是接下来就了解到了“斯特林公式”,该公式是用来求于n!的近似值的。原创 2011-08-04 14:51:50 · 826 阅读 · 0 评论 -
poj1019
不用long long int ,int足矣,直接用计算!!!! 开始只是一个简单的想法,在动手计算之后,终于找出了其中的规律,虽然不怎么简单,但只要大家认真看,还是会发现其中的奥妙的!!!! 根据题目的规律,在排到N后,总数字个数Sum=((N+1)*N)/2+((N-98)*(N-99))/2+((N-998)*(N-999))/2+((N-原创 2011-07-30 20:41:01 · 593 阅读 · 0 评论 -
poj1723(士兵移动)
借鉴了别人的代码和思路 * 一 士兵有多种移动方式 * 通过适当的移动顺序和移动路线可以使得同一时刻不会有两名士兵站在同一点 * 二 题目要求最佳移动方式(即求移动的最少步数) * 题目要求转化为求士兵站立的“最终位置”,即如何取“最终位置”使得士兵移动的步数最少(最优) * 因为移动步数可以分解为移动到同一直线,再移动到相邻位置,因此可以分开求 * Y轴方向上的考虑(移动直线的原创 2011-08-05 20:11:55 · 1451 阅读 · 0 评论 -
poj1001(高精度【乘法】)
唉,这道题测试了好长时间才过,不过最后还是挺高兴的,呵呵。。 题目:http://poj.org/problem?id=1001 就不多说啦,直接看代码吧!!!!!代码:Source CodeProblem: 1001 User: 851873134 Memory: 200K Time: 0MS L原创 2011-08-18 18:16:50 · 529 阅读 · 0 评论 -
并查集(poj1611、2524、2492、1182)
定义: 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。 集就是让每个元素构成一个单元素的集合,并就是按一定顺序将属于同一组的元素所在的集合合并。主要操作: 初始化: 把每个点所在集合初始化为其自身。 通常来说,这个步骤在每次使用该数原创 2012-03-22 22:35:46 · 1562 阅读 · 0 评论 -
2012天津赛区网络赛第三题--Island Transport(hdu4280)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4280 题意:有N个岛屿之间有M双向条路,每条路每个小时最多能通过C个人,现在问一个小时内,最多能把多少个顾客从最西边的岛屿送至最东边的岛屿上。 思路:网络流,求最大流。建图:每条路连接的两个岛屿之间建立一条容量为C的双向边,取超级源点与汇点,源点与最西边的岛屿,汇点与最东边的岛原创 2012-09-16 21:31:25 · 3268 阅读 · 0 评论 -
2012天津赛区网络赛第一题---Faulty Odometer(hdu4278)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4278 题意:粗心的人数数,他在数2--4,7--9时,给漏数了3和8.当然不管3和8出现在个位、十位、百位、、他都是会漏数的。比如299之后,他会直接数到400,而跳过了300.现在告诉你这个以他自己的数数方式数到的数,求他实际上数了多少个数。(嘎嘎,后面有点绕,不过题意很好懂,不懂的,点原创 2012-09-16 21:38:35 · 3265 阅读 · 0 评论 -
2012天津赛区网络赛第二题---Number(hdu4279)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4279 题意:定义f(x)是大于0小于x中不能被x整除且与x不互质的数的个数,如果x是递增的,则说x是一个real number。给你两个数x与y ,求出在他们之间的real number数的个数。 Code:#include #include __int64 a,b;原创 2012-09-16 21:48:26 · 3084 阅读 · 0 评论 -
poj3624(Charm Bracelet + 赤裸01背包)
题目链接:http://poj.org/problem?id=3624 题意:小偷光顾珠宝店,背了个包的容积为M,珠宝店有N种珠宝,每种珠宝的体积为W,价值为D,小偷用这个背包可以偷回去珠宝的最大价值是多少。代码:#includeint main(){ int i,j; int n,m; int w[3405]; int v[3405]; int原创 2012-08-12 11:19:45 · 920 阅读 · 0 评论 -
poj1276(Cash Machine + 多重背包)
题目链接:http://poj.org/problem?id=1276 题意:一提款机里存有N种面值的钱币,有n1张面值d1的纸币,n2张面值d2的纸币......nN张面值dN的钱币,现在有一顾客,要提取现在数量cash,问提款机利用这些纸币最多能为顾客提供多少现金。(呵呵,纸币只能一张一张的,不能半张就算d/2的现金啊,提款机也吐不出来,娱乐娱乐!!!) 赤裸的原创 2012-08-12 10:55:39 · 597 阅读 · 0 评论 -
poj3211(Washing Clothes + 0/1背包)
题目链接:http://poj.org/problem?id=3211 题意:Dearboy夫妇有一桶衣服要清洗,由于衣服颜色不同,质量也不太好,为了防止不同颜色的衣服混合清洗造成染色,所以Dearboy夫妇只能在清洗完一种颜色的衣服后再清洗另一种颜色的衣服(注意理解:如果Dearboy的老婆已经把蓝色衣服洗好了,但Dearboy洗的那一件蓝色衣服还没有清洗好,Dearboy的老婆原创 2012-08-12 10:39:50 · 806 阅读 · 0 评论