题目poj题目zoj//我感觉是题目表述不确切,比如他没规定xi能不能重复,比如都用1,那么除了0,都是YES了//算了,这种题目,百度来的过程,多看看记住就好//题目意思:判断一个非负整数n能否表示成几个数的阶乘之和//这里有一个重要结论:n!>(0!+1!+……+(n-1)!),//证明很容易,...
分类:
其他好文 时间:
2014-07-01 17:58:54
阅读次数:
289
多重背包,本题不需要二分优化。相对简单点。因为重复数十分小,小于10;
而增加一个限制每种材料的高度做法,如果使用逆向填表,那么只需要从这个高度往小递归填表就可以了。
还有就是注意要排序,以限制高度为标准从小到大排序,否则答案错误的。
#include
#include
#include
using std::sort;
const int MAX_K = 401;
const in...
分类:
其他好文 时间:
2014-07-01 16:08:42
阅读次数:
213
题目地址:POJ2455
手残真浪费时间啊。。又拖到了今天才找出了错误。。每晚两道题不知不觉又变回了每晚一道题、。。sad。。
第一次在isap中忘记调用bfs,第二次则是遍历的时候居然是从1开始遍历的。。。sad。。。
这题思路倒是很简单,就是有一个比较坑的地方,就是这里的重边要当两条边来用,以前受最短路什么的影响,直接把慢的删了,很明显不对。。。这里的两条重边都是可以走的。
建图思路是...
分类:
其他好文 时间:
2014-07-01 14:44:29
阅读次数:
194
所谓的完全背包,就是说物品没有限制数量的。
怎么起个这么intimidating(吓人)的名字?
其实和一般01背包没多少区别,不过数量可以无穷大,那么就可以利用一个物品累加到总容量结尾就可以了。
本题要求装满的,故此增加个限制就可以了。...
分类:
其他好文 时间:
2014-07-01 14:25:28
阅读次数:
229
本题是背包问题,但是需要转化成背包的。
因为是两个人洗衣服,那么就是说一个人只需要洗一半就可以了,因为不能两个人同时洗一件衣服,所以就成了01背包问题了。
思路:
1 计算洗完同一颜色的衣服需要的总时间totTime
2 利用动态规划背包法求这些衣服能在那些时间点完成
3 求比(totTime+1)/2大的最小时间点
4 得到洗一种颜色衣服的时间,那么继续求下洗一种颜色衣服的时间
5...
分类:
其他好文 时间:
2014-07-01 14:22:46
阅读次数:
209
Union Find就是所谓的并查集。
本题做的很无语,最后发现居然是输入搞错,一直WA。
不能使用循环接受输入,否则是WA的,气死人,浪费那么多时间就为了这个。
难点:
1 构建关系树
2 构建公式
3 快速更新公式
要抽象思维出什么对应什么的关系和上面是逆关系,就是利用0,1,2构建出父子节点之间的关系值,我是这样去思考构建出准确无误的公式的。
这样的抽象度是挺高的,需要多多训...
分类:
其他好文 时间:
2014-07-01 11:15:20
阅读次数:
190
dp[a][b][c],表示三个人从小到大依次在a,b,c位置时,距离结束最少的时间。
每次选一个人走到c+1位置搜索就好了。
坑点在于不能floyd,估计题目没说清楚,意思就是如果没送Li,那么Li~n的点连去都不能去。
#include
#include
#include
#include
using namespace std;
#define INF 0x3f3f3f3f
int d...
分类:
其他好文 时间:
2014-07-01 09:26:40
阅读次数:
248
本题是标准的并查集了,最后利用这些集求有多少独立集。
所以这里也写个标准程序过了。
最后查找独立集合: 看有多少个节点的父母节点是自己的,那么就是独立集合了。自己做自己的父母当然最独立的了,没有任何依赖,呵呵。
#include
const int MAX_N = 50001;
//const int MAX_M = MAX_N/2 * (MAX_N-1) + 1;
int N, M;
...
分类:
其他好文 时间:
2014-07-01 07:46:53
阅读次数:
160
两次SPFA。求 来 和 回 的最短路之和。
用Dijkstra+邻接矩阵确实好写+方便交换,但是这个有1000000个点,矩阵开不了。
d1[]为 1~N 的最短路。
将所有边的 邻点 交换。
d2[] 为 1~N 的最短路。
所有相加为 所要答案。
忧伤的是用SPFA “HDU 1535” AC了,但是POJ 一样的题 “POJ 1511” 就WA了。
...
分类:
其他好文 时间:
2014-07-01 07:20:32
阅读次数:
206