![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
acm
文章平均质量分 78
CherryQoQ
这个作者很懒,什么都没留下…
展开
-
hdu 3401 Trade 单调队列优化dp
hdu 3401 Tradehttp://acm.hdu.edu.cn/showproblem.php?pid=3401题意:已知未来n天股市的形式、最多可持股量maxp、最少隔w天可操作,以及每天买进价格bp、卖出价格sp、最多可买进数量bn、最多可卖出数量sn求最大收益 /* dp[i][j]= MAX(dp[i][j], dp[i-1][j]); //不动原创 2012-08-27 09:59:06 · 891 阅读 · 2 评论 -
hdu 1011 Starship Troopers 树形dp
hdu 1011 Starship Troopershttp://acm.hdu.edu.cn/showproblem.php?pid=1011题意: 一个洞穴有很多房间,每个房间有一些bug和brain,拥有一些Troopers可以消灭bug,一个Troopers可以消灭20个bug,Troopers已走过 的房间不可以再回去,同时留下消灭bug的Troopers不可以再去其他房间消灭b原创 2012-10-03 15:56:53 · 339 阅读 · 0 评论 -
poj 1141 Brackets Sequence 完全括号匹配
这个题真的写死我了……本来弱菜写dp就费劲,开始用的string的+来连接两个字符串,又用的insert以及append,用g++交各种TLE,c++各种各种CE,最后就想随便改成char的,用strcat吧,结果就过了,才47ms,虽然也没有很快,可是string就有那么慢………………还是我写的太挫了………………注释掉的代码就不去掉了,留着,纪念………… 题意:给定一些【】与(原创 2012-09-13 22:42:21 · 616 阅读 · 1 评论 -
poj 2923 Relocation 二进制状态压缩 深搜+广搜
http://poj.org/problem?id=2923poj 2923 Relocation 首先dfs出两辆车可一次运走的货物的所有组合情况,再用bfs找到最优解 #include #include #include #include #include using namespace std;const int maxn = 1050;int n, w[15原创 2012-10-02 14:21:02 · 1070 阅读 · 0 评论 -
poj 1185 炮兵阵地 状态压缩dp
之前想做黑书上的那个状态压缩dp,不会写退而求其次,写了这个,也纠结也好久,其实只要想好, 算好时间复杂度,大胆写就好,想的时候总觉得这样会超时,循环好多什么什么的,又懒得看解题报告,所以拖了好久……结果写出来就A掉了,219ms~ /*dfs求出每一行的状态,最多一行的状态是60中,算不出的可以用10个p跑一下看看~dp[i][j][k] = dp[i-1][k][t] + ro原创 2012-09-29 10:11:13 · 324 阅读 · 0 评论 -
poj 2104 K-th Number 函数式线段树
#include #include #include #include using namespace std;const int maxn= 100010;//segl segr 存线段树左右点 , chl chr 存主席树的左右子树的k值(即序号下标),s为区间和struct node{ int segl, segr, chl ,chr, s;}tree[30*maxn原创 2012-09-28 19:02:40 · 1517 阅读 · 0 评论 -
黑书 dp 30题
转自http://ykangle.ycool.com/post.3645510.html转过来~~好好学习dp~~~~~~~ 另外推荐这个,刚刚搜到的http://www.haogongju.net/art/619619 1131.5.1例题1括号序列POJ1141 1161.5.1例题2棋盘分割POJ1191 1171.5转载 2012-09-11 20:13:57 · 1038 阅读 · 0 评论 -
hdu 4283 You Are the One 区间dp
hdu 4283 You Are the Onehttp://acm.hdu.edu.cn/showproblem.php?pid=4283给定一个序列,按照进出栈的方法处理学列,使序列值最小,序列值算法为,第i个出序列的value乘以(i-1) 还是递归的容易写,以前看有个大牛说的,建议dp的用记忆化搜索写,思路比较清晰哈~~ dp[x][y] 表示 x到y区间内,序列可原创 2012-09-11 14:38:03 · 468 阅读 · 0 评论 -
poj 3017 Cut the Sequence dp 单调队列+set
http://poj.org/problem?id=3017poj 3017 Cut the Sequence 对我来说……挺不好理解的一道题………… #include #include #include #include #include using namespace std;const int maxn= 100005;const i原创 2012-09-04 11:58:22 · 319 阅读 · 0 评论 -
hdu 4374 One hundred layer 单调队列优化dp
hdu 4374 One hundred layerhttp://acm.hdu.edu.cn/showproblem.php?pid=4374题意:N, M, X, T各表示层数、每一层分为几部分、起始位置、每层最多走几步在每一层都只能向左或向右的一个方向最多移动T步,每经过一部分可得一个分数,每部分分数不同,问可以得到最大分数是多少 dp[i][j]表示第i层走到j点所原创 2012-08-28 09:22:30 · 358 阅读 · 0 评论 -
hdu 4259 置换群
置换群 ,找到共有几组数不断交换,求最小公倍数例如:1 2 3 4 5 6 7 8 9 10这组,变换一次为107 8 94 5 61 2 3 即: 10 7 4 1 8 5 2 9 6 3可观察得:1 3 4 102 75 6 8 9这三组分别一直循环变换,结果即找 4,2, 4 的最小公倍数原创 2012-08-26 20:08:05 · 776 阅读 · 0 评论 -
c++ 最大/最小堆
用完全二叉树的数组存储方法用二叉搜索树(binary search tree)来实现插入时,在最后插入,用上调操作,把节点调置相应位置删除时,删除根节点值,以最后一个节点填补根节点,再用下调操作,把其调制相应位置 #include #include #include using namespace std;const int maxn= 1000010;class原创 2012-09-02 11:27:51 · 430 阅读 · 0 评论 -
poj 1180 Batch Scheduling 斜率优化dp
poj 1180 Batch Scheduling http://poj.org/problem?id=1180题意:N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务。 从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时间是Ti。在每批任务开始前,机器需要启动时间S,而完成这批任务所需的时间是各个任务需 要时间的总和原创 2012-09-01 16:25:38 · 349 阅读 · 0 评论 -
poj 1947 Rebuilding Roads 树形dp
poj 1947 Rebuilding Roadshttp://poj.org/problem?id=1947题意:给定N个点,之间有路N-1条,且从一点到另一点只有一种走法,问去掉几条路,可分离出由k个点组成的树 分组背包思想 #include #include #include #include using namespace std;const int ma原创 2012-08-20 16:50:09 · 263 阅读 · 0 评论 -
hdu 1025 Constructing Roads In JGShining's Kingdom dp(LIS)
hdu 1025 Constructing Roads In JGShining's Kingdomhttp://acm.hdu.edu.cn/showproblem.php?pid=1025 二分求最长上升子序列,长度即可建路数 //hdu 1025#include #include #include #include #include #include usi原创 2012-10-01 19:37:11 · 675 阅读 · 0 评论 -
poj 1485 Fast Food dp
题意:给定n个在一条直线上的快餐店,在这n个点处,可建k个仓库,每个快餐店去最近的仓库取货,问走的路程和最小是多少,并输出每个店的位置及供给区间 状态转移方程:dp[i][j] = dp[k][j-1] + cost[k+1][i]dp[i][j]表示前i个点,简历j个仓库,路程和 每个仓库建的地点为区间[i, j]的中间,即( i + j) /2 dfs输出路径原创 2012-10-04 22:03:12 · 616 阅读 · 0 评论 -
poj 3349 Snowflake Snow Snowflakes 哈希
题意:判断是否有两朵相同的雪花,相同条件为,相邻的瓣长度相等http://blog.csdn.net/lyy289065406/article/details/6647351 这里的讲解不错~~代码如下:#include #include #include #include using namespace std;const int maxn = 1000000;con原创 2012-12-03 19:14:26 · 268 阅读 · 0 评论 -
常见hash算法的原理
散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列转载 2012-12-02 16:20:45 · 360 阅读 · 0 评论 -
hdu 1251 统计难题 字典树
注意数组大小,字典树比较浪费空间,在统计个数时,不要再结构体中再开26的数组还有下面更新与统计时,注意与指针pre的先后顺序#include #include #include #include using namespace std;const int maxn = 500000;struct node{ int next[26], cnt; void原创 2012-11-17 22:10:52 · 299 阅读 · 0 评论 -
poj 3321 Apple Tree 线段树
一棵多叉树,每一个节点上都可以长出或摘掉一个苹果,节点从1至n标记,根为1节点C为改变该树枝上苹果有无Q为问次节点及其根节点共有多少 苹果 后续遍历多叉树,给每一个节点按遍历顺序重新标号,并标记每一个节点的子树的起始位置,再利用线段树维护和 #include #include #include #include using namespace std;const原创 2012-10-24 20:28:06 · 556 阅读 · 0 评论 -
hdu 4391 Paint The Wall 线段树
hdu 4391 Paint The Wallhttp://acm.hdu.edu.cn/showproblem.php?pid=4391 n个单位长度,m个操作n个数,表示n个单位长度中起始颜色m行, a, l, r, za== 1表示把l到r涂为z色(z>= 0 && za==2 表示询问l到r为z色的有多少 用lazy,同时,节点中,加入mi和ma记录该段原创 2012-10-15 22:32:00 · 411 阅读 · 0 评论 -
hdu 2829 Lawrence 四边形优化 dp
hdu Lawrencehttp://acm.hdu.edu.cn/showproblem.php?pid=2829 题意:有n个点,每个点有路与两侧点相连,要去掉一些路,使真个系统值最小计算方法:4----5-----1-----2Its Strategic Value is 4*5 + 4*1 + 4*2 + 5*1 + 5*2 + 1*2 = 49.4----5原创 2012-10-11 22:24:22 · 376 阅读 · 0 评论 -
hdu 4293 Groups dp 记忆化搜索
hdu 4293 Groupshttp://acm.hdu.edu.cn/showproblem.php?pid=4293题意:1~n个人,几个人一组的走,这n个人会告诉你他这一组前面有多少人,这一组后面有多少人,但是其中有错误信息,问,这里最多有多少人说的是真话 成都网赛的题,那天没思路,比赛结束后猴子说是dp做的,想了想,果然是诶……而且不难的,最近代码写的太少了,本来水平就差原创 2012-09-20 17:51:27 · 525 阅读 · 0 评论 -
poj 3345 Bribing FIPA 树形dp
poj 3345 Bribing FIPA http://poj.org/problem?id=3345题意,一个人想用钱贿赂一些国家获得选票,贿赂不同的国家需要不同数量金钱,有些国家可控制另一些国家,也就是贿赂了这些国家,被他们控制国家的票也会投给这个人,无环,每个点最多有一个父节点,求得n张选票的最少花费 输入真心恶心啊这个题……之后就是树形dp了,用了两次dfs,第一次求原创 2012-10-07 19:19:37 · 459 阅读 · 0 评论 -
poj 2411/hdu 1400 Mondriaan's Dream 状态压缩dp
Mondriaan's Dreamhttp://poj.org/problem?id=2411http://acm.hdu.edu.cn/showproblem.php?pid=1400 题意:给定一个m*n(1 dp[i][j] 表示第i行的第j种状态的填法状态二进制状态压缩,1表示此行第位置填满, 0表示次行此位置不填若上一行此位置及下一位置都为1,则此两格可横原创 2012-10-06 21:02:47 · 815 阅读 · 0 评论 -
hdu 1423 Greatest Common Increasing Subsequence 最长公共上升子序列
hdu 1423 Greatest Common Increasing Subsequencehttp://acm.hdu.edu.cn/showproblem.php?pid=1423#include #include #include #include using namespace std;int ch1[1110], ch2[1110], dp[1110], len1,原创 2012-10-06 22:41:40 · 433 阅读 · 0 评论 -
poj 1191 棋盘分割 记忆化搜索
纠结了一天,奇葩的代码,dp初始化的时候,用memset(dp, 0x3f, sizeof(dp)),记忆化搜索判断用 if( dp[tim][x1][y1][x2][y2] == 0x3f3f3f3f),TLE了整整一晚上,后来随便换成用-1做判断条件就A掉了,还0ms……又去试了下是不是poj里面dp[tim][x1][y1][x2][y2] == 0x3f3f3f3f会出问题,用a+b代码试原创 2012-09-15 22:27:31 · 544 阅读 · 0 评论 -
poj 2255 Tree Recovery 树的遍历 简单string用法
给定前序和中序遍历,求后续遍历 用G++, c++会ce,string用着总感觉各种ce,不大会用,但这题用string真心容易些 前序遍历为 中左右 中序遍历为左中右DBACEGFABCDEFG粉色为左子树 D 为根 递归下去求即可 #include #include #include #include using namespace std;st原创 2012-10-05 22:30:21 · 445 阅读 · 0 评论 -
poj 3342 Party at Hali-Bula 树形dp
poj 3342 Party at Hali-Bulahttp://poj.org/problem?id=3342题意:给定一些点,这些点最多只有一个父节点,且只有一个点没有父节点,要选择一个集合使点数最多,且不能同时选择子节点与其对应的父节点 树形dp状态转移很好写,只是中间的选择是否唯一纠结了一下,见注释 另外忘记了些mp.clear()。。。。wa了好多次。。。。以后原创 2012-08-20 10:39:46 · 333 阅读 · 0 评论 -
hdu 3507 Print Article 斜率优化dp
hdu 3507 Print Articlehttp://acm.hdu.edu.cn/showproblem.php?pid=3507从http://www.cnblogs.com/ka200812/archive/2012/08/03/2621345.html这个博客里找的题,讲的很详细,推荐之~~~dp[i] = MIN(dp[j] + (ans[i]- ans[j])*^2原创 2012-08-29 10:38:39 · 273 阅读 · 0 评论 -
hdu 4362 Dragon Ball 单调队列优化 dp
hdu 4362 Dragon Ballhttp://acm.hdu.edu.cn/showproblem.php?pid=4362题意: 已知有m个时间段会出现龙珠,每个时间段出现n个,每次仅能且最多只能拿一个,挖出龙珠要一定体力值,走路同样消耗体力值,求最少消耗的体力值一般状态转移方程为:dp[i][j]= dp[i-1][k] + abs( pos[i][j] - pos原创 2012-08-19 11:20:57 · 321 阅读 · 0 评论 -
poj 2299 poj 2481 树状数组
1.在有删改的情况下,求区间和2.求比某点x小的点的个数(这里的比较是抽象的概念,可以使数的大小,坐标的大小,质量的大小 poj 2299 http://poj.org/problem?id=2299 #include #include #include #include using namespace std;const int maxn= 5000原创 2012-05-20 20:27:27 · 323 阅读 · 0 评论 -
双向广搜 模板
poj 1198 Solitairehttp://poj.org/problem?id=1198 void TBFS(){ bool found=false; memset(visited,0,sizeof(visited)); // 判重数组 while(!Q1.empty()) Q1.pop(); // 正向队列转载 2012-05-09 15:02:40 · 937 阅读 · 0 评论 -
hdu 1502 , poj 1463, hdu 1561 树形dp
hdu 1502 Anniversary partyhttp://acm.hdu.edu.cn/showproblem.php?pid=1520 选取u点,最大值为 u的所有子节点都不取的值的和, 即sum(dp[p][0]) dp[u][1] += dp[p][0];不选u点,最大值为 u点的每个子节点选或不选的较大值之和, 即sum( max(dp[p][0], dp[p][原创 2012-05-07 20:54:23 · 501 阅读 · 0 评论 -
poj 1753 Flip Game 二进制状态压缩
poj 1753 Flip Gamehttp://poj.org/problem?id=1753 #include #include #include #include using namespace std;int bit[18],vis[70000] , value;int mov[5][2]={0, 0, -1, 0, 1, 0, 0, 1, 0, -1}原创 2012-05-08 22:51:24 · 373 阅读 · 0 评论 -
poj 1703 , hdu 1729 , poj 1182 并查集偏移量应用
http://poj.org/problem?id=1703 Find them, Catch them 偏移量:维护所有集合的根的偏移量都为0。在集合合并时,若两集合对应偏移量不同,改变被合并集合根的偏移量,而集合内部的偏移量暂不改变,在以后查询某点偏移量时,先调用find函数,在find函数中递归更新偏移量值。 union中集合合并时,把y所在集合放到x所在集合,若x与y是同原创 2012-05-06 20:26:10 · 413 阅读 · 0 评论 -
hdu 2870 Largest Submatrix 动态规划
http://acm.hdu.edu.cn/showproblem.php?pid=2870 先看看hdu的 1506 1505再做~~ 求最大矩形使其中字符相同 把分别把矩阵转化成全部变为a, b, c的三个矩阵 再对于每行对每点求高度,然后对于此行每点分别向左向右迭代求宽度 #include #include #include #include原创 2012-04-28 12:05:23 · 421 阅读 · 0 评论 -
poj 1742 coins 背包问题
http://poj.org/problem?id=1742 coins 楼教主男人八题~~~杭电上的数据比较水http://acm.hdu.edu.cn/showproblem.php?pid=2844 #include #include #include using namespace std;const int maxn= 100005;int n, m原创 2012-04-26 15:10:41 · 354 阅读 · 0 评论 -
poj 1692 Crossed Matchings 动态规划
http://poj.org/problem?id=1692 Crossed Matchings #include#include#include#include#include#includeint n1, n2, seq1[110], seq2[110], dp[110][110];//dp中存储上下两列分别去i个和j个数字时,最多的匹配数int ma原创 2012-05-06 21:42:05 · 307 阅读 · 0 评论 -
poj 1088 滑雪 记忆化搜索
http://poj.org/problem?id=1088滑雪Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 56185 Accepted: 20367DescriptionMichael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的原创 2012-04-18 22:39:26 · 938 阅读 · 0 评论