uva 1456(dp)】的更多相关文章

题意:有n个数字u1,u2,u3-un,每一个数字出现的概率pi = ui/(u1 + u2 + - + un),分成w组.计算期望值. 第一组例子的五个数字例如以下 30 5 10 30 25 分成2组 假设分成{u1, u2, u3}和{u4,u5} 期望值 = 3 * (p1 + p2 + p3) + (3 + 2) * (p4 + p5) 假设分成{u1,u4}和{u2,u3,u5} 期望值 = 2 * (p1 + p4) + (2 + 3) * (p2 + p3 + p5) 求最小的期…
Cellular Network Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Practice UVA 1456 A cellular network is a radio network made up of a number of cells each served by a base station located in the cell. The base sta…
题目传送门 题意:(摘自LRJ<训练指南>) 手机在蜂窝网络中的定位是一个基本问题.假设蜂窝网络已经得知手机处于c1, c2,…,cn这些区域中的一个,最简单的方法是同时在这些区域中寻找手机.但这样做很浪费带宽.由于蜂窝网络中可以得知手机在这不同区域中的概率,因此一个折中的方法就是把这些区域分成w组,然后依次访问.比如,已知手机可能位于5个区域中,概率分别为0.3.0.05.0.1.0.3和0.25,w=2,则一种方法是先同时访问{c1,c2,c3},再同时访问{c4,c5},访问区域数的数学…
http://uva.onlinejudge.org/index.php? option=com_onlinejudge&Itemid=8&page=show_problem&category=&problem=4147 题意:给定一个字符串,以及若干单词,求有几种方式能用单词组成字符串  我先是dp方程推得有问题不知怎么改动搞得卡了非常久,然后就是数组开得太小一直RE trie数组大小=单词个数*单词长度  dp[i]为以str[i]开头的后缀的ans.dp[i]=seg…
UVA 11404 - Palindromic Subsequence 求给定字符串的最长回文子序列,长度一样的输出字典序最小的. 对于 [l, r] 区间的最长回文串.他可能是[l+1, r] 和[l, r-1]两个区间的结果. 或者当s[l] == s[r]时,区间[l+1, r-1]的结果再加上以s[l], s[r]为首尾的子序列. dp[l][r] = ans(dp[l][r-1], dp[l+1][r], s[l] + dp[l+1][r-1] + s[r])  dp存的是子序列,即一…
UVA 11552 - Fewest Flops 一个字符串,字符串每 k 个当作一组,组中的字符顺序能够重组.问经过重组后改字符串能够编程最少由多少块字符组成.连续的一段字符被称为块. dp[i][j] 表式第i组以字符j结尾的最少块数. 那么我们考虑加入一组后能够降低块数的情况. 1):上一组的结尾在这一组里找得到相同的字符,而且该字符不作为当前块的结尾. 假设要作为结尾的话要把该字符所在的块拆开.所以然并卵. 2):当前组仅仅有一种字符,而且和上一组的结尾相同. 这两种情况都能够使块数减一…
题意:有n个数据,给定k,要从中选出k+8个三元组(x,y,z,其中x<=y<=z),每选一次的代价为(x-y)^2,求最小代价和. [解题方法] 将筷子按长度从大到小排序 排序原因: 由于一组中A<=B<=C 选第i根筷子作为A时,必然要选第i-1根作为B,否则不会达到最优 dp[i][j]表示选了对于前j根筷子选了i个筷子集合时的最小花费 设c[j]为选j作为A,j-1作为B时的花费(c[j]=(w[i]-w[i-1])^2;),状态转移如下: dp[i][j] = min(…
题意: 找出长度为n.0和1个数相等.没有前导0且为k的倍数的二进制数的个数. 分析: 这道题要用动态规划来做. 设dp(zeros, ones, mod)为有zeros个0,ones个1,除以k的余数为mod的二进制数的个数,则状态转移方程为: dp(zeros + 1, ones, (mod>>1) % k) += dp(zeros, ones, mod) dp(zeros, ones + 1, ((mod>>1)+1) % k) += dp(zeros, ones, mod)…
题意:给你一堆二维点,每个点有一些分数. 现在要从点(0 , 0 )出发,只能从标号小的点走到大的点,每个人有一个走的距离的限制,问最后能拿到的最高的分数,当然这个人从(0 , 0)出发还得回到( 0 , 0 ). 思路:用dp[i][j]表示在点i分数为j的最短距离,转移方程就是dp[i][j] = min(dp[i][j] , dp[k][j - w[k]] + Map[i][k]) . CODE: #include <set> #include <map> #include…
题目大意: 手机在蜂窝网络中的定位是一个基本问题.如果蜂窝网络已经得知手机处于c1, c2,-,cn这些区域中的一个.最简单的方法是同一时候在这些区域中寻找手机.但这样做非常浪费带宽. 因为蜂窝网络中能够得知手机在这不同区域中的概率.因此一个折中的方法就是把这些区域分成w组,然后依次訪问.比方.已知手机可能位于5个区域中,概率分别为0.3.0.05.0.1.0.3和0.25,w=2,则一种方法是先同一时候訪问{c1,c2,c3},再同一时候訪问{c4,c5},訪问区域数的数学期望为3*(0.3+…