UVA
Hakim_Sun
这个作者很懒,什么都没留下…
展开
-
UVA116Unidirectional TSP(多段图的最短路)
紫书上的例题,自己实现了一遍,供参考。参考代码#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int inf = 0x3f3f3f3f;int mp[15][105]; int...原创 2018-07-24 09:33:38 · 141 阅读 · 0 评论 -
UVA11584Partitioning by Palindromes(回文串,动态规划)
题目大意给你一个字符串,划分成尽量少的回文串,要求字串在原串中是连续的。解法用一个dp数组存储最优解,dp[i]表示字符0~i至少需要划分多少回文串。用pal[i][j]数组表示i~j是否是一个回文串,对于pal数组需要预处理。dp的状态转移方程dp[i]=min{dp[j-1]+1|pal[j][i]==true}。参考代码#include<cstdio>...原创 2018-07-24 15:58:13 · 175 阅读 · 0 评论 -
UVA10003 Cutting Sticks
题目大意一根长度位L的木棍上有n个切割点,这个木棍做n次切割,求总花费最少是多少。每次花费为被切割木棍的长度。如L=10,切割点为2,4,7。一次切割2,4,7,总花费=10+8+6=24;解题思路这是一道类似矩阵连乘的题目,套用模板就行了。先求小区间的最小花费,然后根据小区间推得大区间的最小花费。参考代码#include<cstdio>#include&...原创 2018-07-27 11:17:25 · 108 阅读 · 0 评论 -
UVA437 The Tower of Babylon(DAG上的动态规划)
题目大意有n(n&lt;=30)种长方体,每种都有无穷多个。要求选一些长方体摞成一根尽量高的柱子(可以自行选择一条边作为高),使得每个长方体的底面长宽分别严格小于它下方立方体的地面长宽。解题思路这是一个DAG(有向无环图)模型。每种长方体将长宽高全排列变成6个长方体,这就够了,因为题目的限制,这六个长方体最多被使用一次。定义dp[i]表示以第i个长方体为顶时柱子的最大高度。对于每个长方...原创 2018-07-22 16:55:57 · 154 阅读 · 0 评论 -
uva10375 Choose and divide(唯一分解定理)
题目大意:C(m,n)= m!/((m-n)!*n!),给你四个数p,q,r,s,求解C(p,q)/C(r,s)。解题思路:根据唯一分解定理,任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积。所以我们可以用一个factor数组保存每一个质因数。具体做法是,比如计算时乘以2,而2只有一个质因数2,那么factor[2]++;反之,如果要处以一个2,那么...原创 2018-07-20 16:28:22 · 102 阅读 · 0 评论