随笔分类 -  ACM/算法/数据结构

上一页 1 ··· 4 5 6 7 8 9 下一页
摘要:读题比做题难系列…… poj1087 输入n,代表插座个数,接下来分别输入n个插座,字母表示。把插座看做最大流源点,连接到一个点做最大源点,流量为1。 输入m,代表电器个数,接下来分别输入m个电器,字符串表示。把电器看做最大流终点,连接到一个点做最大汇点,流量为1。 输入k,代表转换器个数,接下来分 阅读全文
posted @ 2015-08-05 15:55 我不吃饼干呀 阅读(189) 评论(0) 推荐(0) 编辑
摘要:裸最大流,做模板用 m条边,n个点,求最大流 阅读全文
posted @ 2015-08-05 15:43 我不吃饼干呀 阅读(174) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/problemset/problem/295/A 我的做法,两次线段树 后来看了学长的代码,又写了一遍.......: 阅读全文
posted @ 2015-07-31 19:20 我不吃饼干呀 阅读(172) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=1328 贪心。 看了几个解题报告都说是水题,解题方法也很简单,但是不明白为什么。。。 网上好多代码提交都是wa的,真心醉了…… 对于每个小岛,在海岸上有一个区间可以覆盖它。把区间的按左边界排序,然后从左到右扫一遍,记录一个值temp为当 阅读全文
posted @ 2015-07-31 19:11 我不吃饼干呀 阅读(157) 评论(0) 推荐(0) 编辑
摘要:很多图论的算法都有一个函数 我纠结了好久这个函数的意思…… 实际上是用邻接表存一个图。 cnt_edge是给每一个边标号,从0开始。 edge[i].to 表示第i条边指向哪个点,edge[i].next表示第i条边的下一条边的序号。 head[from]表示以第from为初始结点的边的序号。 例如 阅读全文
posted @ 2015-07-27 18:39 我不吃饼干呀 阅读(3371) 评论(2) 推荐(4) 编辑
摘要:辗转相除法(欧几里得算法) 时间复杂度:在O(logmax(a, b))以内 扩展欧几里得算法 时间复杂度和欧几里得算法相同 用于求ax+by=gcd(a,b)整数解,xy返回整数解,extgcd的返回值是ax+by的值。 题目:(A+x*C)%2^k=B 求x整数解。解析:x*C=B-A 的在mo 阅读全文
posted @ 2015-07-26 22:13 我不吃饼干呀 阅读(265) 评论(0) 推荐(0) 编辑
摘要:问题: 牛要跨过一些障碍,希望以最小的体力跨过障碍,并且对于一条路径,只在乎其中最高的障碍。 输入N代表站点数,标记为1—N,输入M代表路径数,从站点S到E之间需要跨过高度为H的障碍。 输入T代表牛要完成的任务数。对于每个任务,输入A,B,输出一条从站点A到B的路径,使需要跨过的最高障碍为最低。 代 阅读全文
posted @ 2015-07-19 20:32 我不吃饼干呀 阅读(273) 评论(0) 推荐(0) 编辑
摘要:poj1611 简单题 代码中id记录父节点,sz记录子树规模。一个集合为一棵树。 poj 2492 题目也是醉了,看半天没看懂= =# 输入每对a b表示a和b是夫妻,问有没有同性恋= = 把每一次a b放入同一集合,并用rel记录每个节点和它父节点的相对关系。这样同一集合的任意两点间关系就确定了 阅读全文
posted @ 2015-07-19 17:04 我不吃饼干呀 阅读(596) 评论(0) 推荐(0) 编辑
摘要://从今天起准备认真看完这本书。本渣虽然笨,但是窝懒啊。。。。 //今天开始看第一章。希望坚持下去。 第一章 引言 通过讨论连通问题的几种算法,来引出算法的重要性。 1.1 连通问题的快速查找算法 感觉就是把每个点染色,每个颜色代表一堆,互相连通。每次输入两个点,把两个点所属那个颜色改为相同,这样他 阅读全文
posted @ 2015-06-26 14:37 我不吃饼干呀 阅读(1034) 评论(0) 推荐(1) 编辑
摘要:只是觉得很神奇的做法,但不太明白为什么……先记下来…… 阅读全文
posted @ 2015-06-13 20:28 我不吃饼干呀 阅读(193) 评论(0) 推荐(0) 编辑
摘要:最小生成树模板(嗯……在kuangbin模板里面抄的……) 感觉Prim和Dijkstra有点像。写起来挺简单的。 我一开始的想法是把每个q中的a,b设为已访问节点,后来发现不对,例如ab连,dc连,但它们并不是全部相连的。 好吧其实此题就是把已建好两点之间距离设为0. 阅读全文
posted @ 2015-06-13 18:37 我不吃饼干呀 阅读(192) 评论(0) 推荐(0) 编辑
摘要:1171 题意比较简单,这道题比较特别的地方是01背包中,每个物体有一个价值有一个重量,比较价值最大,重量受限,这道题是价值受限情况下最大,也就值把01背包中的重量也改成价值。 2546 和上面一样,没有重量,只有价值。 如果卡上不足5元,输出原值。如果大于5元,就在m-5范围内花最多的钱(留下最贵 阅读全文
posted @ 2015-05-15 18:44 我不吃饼干呀 阅读(418) 评论(0) 推荐(0) 编辑
摘要:题意:有一些男生女生,男生女生数量差不超过100 ,男生女生两两配对。要求求出一种配对方法,使每一对的高度差的和最小。 思路:(我是真的笨笨笨!!)设人少的一组人数为n,b[],人多的一组人数为m,g[](b[],g[]先排好序),用dp[i][j]表示n中的前i个人与m中的前j个人配对所得到的最小 阅读全文
posted @ 2015-05-12 21:02 我不吃饼干呀 阅读(218) 评论(0) 推荐(0) 编辑
摘要:因为我笨,思考了好久,看了好多博客,所以希望写的细一些= =等我忘了我是怎么想的,能回来一眼就看懂。 题意: 给一个n个数的整数序列,要你将其分为不相交的任意段,并取其中m段,求m段和的最大值。 例如: 1 2 3 取1段, 即为“1 2 3”,和为6 -1 4 -2 3 -2 3 取两段,即为“4 阅读全文
posted @ 2015-05-10 19:42 我不吃饼干呀 阅读(273) 评论(0) 推荐(0) 编辑
摘要:初学,理解可能不是那么准确~~ Next数组的含义:next[i]表示第0个元素到第i个元素组成的字符串的最大前缀后缀。Next[0]=0显然。 所以KMP的原理就是 通过找出每一阶段最大的相等的前缀后缀,那么匹配到某个字符失配时就可以从前缀的下一个字母开始匹配,而不用再回退匹配。使复杂度降从O(m 阅读全文
posted @ 2015-04-28 22:40 我不吃饼干呀 阅读(264) 评论(0) 推荐(0) 编辑
摘要:Description 现在给出N个城市,城市之间共有M条道路。道路表示的方法是<u,v,w>, 代表从编号为u的城市,到标号为v的城市有条花费为w的道路。 现在我们从编号为S的城市出发,目的地是编号为T的城市。 但是我们在旅途中从u号城市到v号城市花费不只是他们的道路的花费w, 还要加上以前的所有 阅读全文
posted @ 2015-04-10 20:53 我不吃饼干呀 阅读(339) 评论(0) 推荐(0) 编辑
摘要:数据结构作业……本来想随便抄一份,结果网上的代码好麻烦的样子orz 一个满二叉树节总结点数等于2^最大深度-1 最大深度可通过层次遍历求出。 代码如下 /**< 判断一个二叉树是否为满二叉树 */ #include <cstdio> #include <cstdlib> struct BiTree 阅读全文
posted @ 2015-04-09 19:50 我不吃饼干呀 阅读(1601) 评论(0) 推荐(0) 编辑
摘要:HDU1710Binary Tree Traversals 题目大意:给一个树的前序遍历和中序遍历,要求输出后序遍历。 (半年前做这道题做了两天没看懂,今天学了二叉树,回来AC了^ ^) 首先介绍一下二叉树。二叉,即每个节点最多连向下连两个结点,也就是最多两个孩子。 如题目描述,二叉树就长这样~ 如 阅读全文
posted @ 2015-03-30 20:53 我不吃饼干呀 阅读(140) 评论(0) 推荐(0) 编辑
摘要:一、01背包 题目描述:01背包是在n件物品取出若干件放在空间为W的背包里,每件物品的体积为w1,w2……wn,与之相对应的价值为P1,P2……Pn。求出获得最大价值的方案。[注意:每种物品只能拿一个。] 用二位数组dp来记录状态,其中dp[i][j]表示的是从第一件物品开始向背包里装,当背包最大空 阅读全文
posted @ 2015-03-17 22:30 我不吃饼干呀 阅读(187) 评论(0) 推荐(0) 编辑
摘要:最短路最基础的题啦,刚学会拿来练习~~~ 用的Dijkstra算法【目前就会这一个Orz #include <iostream> #include <cstring> #include <cstdio> using namespace std; const int MAX = 105; const 阅读全文
posted @ 2015-03-15 22:15 我不吃饼干呀 阅读(353) 评论(0) 推荐(0) 编辑

上一页 1 ··· 4 5 6 7 8 9 下一页