
poj
yxg_123
这个作者很懒,什么都没留下…
展开
-
poj3468 A Simple Problem with Integers 线段树 区间更新 lazy
题目链接:http://poj.org/problem?id=3468题意:题解:区间更新 lazy操作,会爆int , 另外用scanf代码:#include <cstdio>#include <iostream>#include <cstring>using namespace std;typedef long long ll;#define MS(a) memset(a,0,size原创 2017-03-01 22:18:49 · 240 阅读 · 0 评论 -
挑战练习题2.3动态规划 poj1631 Bridging signals 最长递增子序列
题目链接:http://poj.org/problem?id=1631题意:直接看样例,题意是啥?题解:LIS, O(nlogn)的,维护一个数组ans,手动模拟一下就懂了。代码:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long原创 2017-03-10 19:25:03 · 201 阅读 · 0 评论 -
poj1182 食物链 带权并查集 偏移量
题目链接:http://poj.org/problem?id=1182题意:题解:大牛题解:http://blog.youkuaiyun.com/niushuai666/article/details/6981689 合并: d-1是偏移量,ra->rb, ra作为rb的父亲,注意方向【箭头是把右边合并到左边】 向量的思想: if(ra!=rb)不在一个集合里,合并 fa[rb]=ra,还需要更新r[r原创 2017-04-11 16:10:52 · 362 阅读 · 0 评论 -
poj 1330 Nearest Common Ancestors LCA/DFS
题目链接:http://poj.org/problem?id=1330题意:求出两点间的最近公共祖先。题解:第一种: 并查集维护:http://www.cnblogs.com/procedure2012/archive/2012/01/29/2331468.html 利用并查集在每次对子树进行遍历时进行合并,因为对以x为根的子树的遍历时只有当x的所有子树都遍历过后才会把它合并到他父亲的集合里,所原创 2017-04-11 23:58:19 · 262 阅读 · 0 评论 -
poj 3254 Corn Fields 状压dp
题目链接:https://vjudge.net/contest/159644#problem/A题意:给出一个n行m列的草地,1表示肥沃,0表示贫瘠,现在要把一些牛放在肥沃的草地上,但是要求所有牛不能相邻,问你有多少种放法。题解:http://blog.youkuaiyun.com/y990041769/article/details/24658419 状压dp dp[i][j]:=考虑到第i行,状态为原创 2017-04-21 20:28:48 · 266 阅读 · 0 评论 -
poj1185 炮兵阵地 状压dp
题目链接:https://vjudge.net/contest/159644#problem/B题意:在一个N*M的矩阵上布置炮兵部队,只有平原可以布置,然后每个炮兵部队都有一个攻击范围,它能够攻击到的区域:沿横向左右各两格,沿纵向上下各两格。 问最多可以安排几个炮兵题解:http://www.cnblogs.com/buptLizer/archive/2012/08/23/2651881.htm原创 2017-04-21 20:43:03 · 289 阅读 · 0 评论 -
POJ 3311 Hie with the Pie Floyd+状压dp
题目链接:https://vjudge.net/contest/159644#problem/C题意:有N个城市(1~N)和一个PIZZA店(0),要求一条回路,从0出发,又回到0,而且距离最短 题解:TSP问题: 挑战上面P193 首先floyd求出两点之间的最短路 然后状压, 对于状态S,第i位为1表示已经走过 dp[S][v]:=当前状态为S,在v这个点上,访问剩余没有访问的所有点(S原创 2017-04-21 21:04:03 · 318 阅读 · 0 评论 -
POJ 2288 Islands and Bridges 状压DP
题目链接:https://vjudge.net/contest/159644#problem/E题意:有n个点,每个点都有一个价值,无论从哪个点走,要求每个点只能走一次【哈密顿通路】,求出怎么走使得到的价值最大,且求出最大价值的路有多少条。假设有4个点,它的最大走法是1–>4–>2–>3,且1,4,2三点可以形成三角形,4,2,3也可以形成三角形,那么最大价值为:v[1]+v[4]+v[2]+v[3原创 2017-04-21 21:40:25 · 387 阅读 · 0 评论 -
zoj3471 Most Powerful 状压dp
题目链接:https://vjudge.net/contest/159644#problem/F题意:研究人员发现有N个原子两两组合会发生反应产生能量,且其中一个会被和谐掉,给出一个矩阵map,其中map[i][j]表示原子i与j发生反应且原子j被和谐掉所释放的能量,问给定的n个原子反应最多能产生多少能量。题解:dp[sta]:=第i位为1表示第i个原子被和谐了,所得到的最大能量 则最后的答案就是原创 2017-04-21 21:45:57 · 407 阅读 · 0 评论 -
挑战练习题2.3动态规划 poj1065 Wooden Sticks 最长递减子序列
题目链接:http://poj.org/problem?id=1065题意:C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否则需要消耗一个单位的时间。因为急着去约会,C小加想在最短的时间内把木棒处理完,你能告诉他应该怎样做吗?题解:最小值其实等于按l递增排序后原创 2017-03-10 19:16:24 · 305 阅读 · 0 评论 -
挑战练习题2.3动态规划 poj3181 Dollar Dayz 完全背包
题目链接:http://poj.org/problem?id=3181题意:农夫约翰有N元钱,市场上有价值1……K的商品无限个,求所有的花钱方案?题解:http://www.hankcs.com/program/cpp/poj-3181-dollar-dayz.html dp[i][j] := 用i种价格配出金额j的方案数。 那么dp[i][0] = 1,使用任何价格配出金额0的方案个数都是1(原创 2017-03-10 18:21:51 · 292 阅读 · 0 评论 -
poj 2528 Mayor's posters 线段树区间更新 + 离散化
题目链接:http://poj.org/problem?id=2528题意:一个区间贴海报,然后问你在最后,能看见多少个海报题解:用每个离散化之后的编号, 区分不同海报, 每次更新都是覆盖前一个值的,最后统计一下有多少不同的v就好了稍微了解了离散化的姿势: http://www.cnblogs.com/gongxijun/p/4020322.html通俗点说,离散化就是压缩区间,使原有的长区间映射原创 2017-03-01 23:56:22 · 267 阅读 · 0 评论 -
Poj 3667 - Hotel 线段树-- 区间更新 区间合并 区间查询
题目链接:http://poj.org/problem?id=3667题意:题解:http://www.cnblogs.com/scau20110726/archive/2013/05/07/3065418.html 写的挺好 http://www.cnblogs.com/yewei/archive/2012/05/05/2484471.html 参考代码代码:#include <stdio.h原创 2017-03-02 21:42:04 · 218 阅读 · 0 评论 -
poj 2828 buy Tickets 用线段树模拟带插入的队列 单点更新
题目链接:http://poj.org/problem?id=2828题意:给出n个人,每人有一个应该在队列的位置和值,如果后面的人的位置和前面重复了,就插在前面。输出最后的队列题解:从后往前找位置,因为后面的人的位置总是不变的 线段树,单点更新, 维护的v表示 这段区间一共有多少个空位置 更新到叶子节点的时候:v=0,return L; 因为这个位置已经固定了,相当于在后面的人预留一个位置,相原创 2017-03-02 23:14:52 · 246 阅读 · 0 评论 -
poj 1088 滑雪 记忆化搜索
点击打开链接代码:#include #include #include using namespace std;typedef long long ll;#define mem(a) memset(a,0,sizeof(a))#define mp(x,y) make_pair(x,y)const int INF = 0x3f3f3f3f;const ll INFLL =原创 2017-02-23 19:28:51 · 251 阅读 · 0 评论 -
挑战练习题2.3动态规划 poj3616Milking Time dp
题目链接:http://poj.org/problem?id=3616题意:奶牛Bessie在0~N时间段产奶。农夫约翰有M个时间段可以挤奶,时间段f,t内Bessie能挤到的牛奶量e。奶牛产奶后需要休息R小时才能继续下一次产奶,求Bessie最大的挤奶量。题解:定义dp[i]表示第i个时间段挤奶能够得到的最大值,拆开来说,就是前面 i – 1个时间段任取0到i – 1个时间段挤奶,然后加上这个时间原创 2017-03-10 11:01:34 · 285 阅读 · 0 评论 -
挑战练习题2.3动态规划 poj3280Cheapest Palindrome 区间dp
题目链接:http://poj.org/problem?id=3280题意:字串S长M,由N个小写字母构成。欲通过增删字母将其变为回文串,增删特定字母花费不同,求最小花费。题解:dp[i][j]表示将原字串s的子字串s[i…j]变换成回文的最小花费 因为删除和增加一个字符都是一样的效果,取最小值就好了代码:#include <iostream>#include <cstdio>#include原创 2017-03-10 11:23:39 · 237 阅读 · 0 评论 -
挑战练习题2.3动态规划 poj1742 Coins 多重背包
题目链接:http://poj.org/problem?id=1742题意:有n种面额的硬币,面额个数分别为A_i、C_i,求最多能搭配出几种不超过m的金额?题解:多重部分和问题。多重背包优化? O(n^2) dp[i][j] := 用前i种硬币凑成j时第i种硬币最多能剩余多少个(-1表示配不出来) 1.如果dp[i - 1][j] >= 0(前i-1个数可以凑出j,那么第i个数根本用不着)直接原创 2017-03-10 12:05:27 · 250 阅读 · 0 评论 -
挑战练习题2.3动态规划 poj2385Apple Catching dp
题目链接:http://poj.org/problem?id=2385题意:给你t,w 表示有t分钟掉苹果,你可以移动w次,求出在最大次数时最多能接到多少苹果。题解:dp[i][j] : 表示第i分钟 跑了j次 得到的最大值代码:#include <iostream>#include <cstdio>using namespace std;typedef long long ll;#def原创 2017-03-10 10:36:36 · 224 阅读 · 0 评论 -
POJ 2411 Mondriaan's Dream 状压dp
题目链接:https://vjudge.net/contest/159644#problem/G题意:用1*2的砖去恰好铺满n*m的空间,有多少种方法题解:http://blog.youkuaiyun.com/xingyeyongheng/article/details/21692655代码:#include <iostream>#include <cstdio>#include <cstring>usi原创 2017-04-21 22:00:35 · 408 阅读 · 0 评论