动态规划
时雨晴天
PhD毕业,正在寻找下一个人生目标,愿求文武双全之道。
展开
-
Poj 3071 Football (比赛对阵 概率DP)
题意:2^n个队进行足球赛,每个队打败另外一个队都有一个概率。问最后胜利的概率最大的是哪只球队。原创 2014-05-03 22:32:10 · 867 阅读 · 0 评论 -
CF 148D Bag of mice (概率DP)
题目链接:http://codeforces.com/problemset/problem/148/D题意:袋子里有w只白鼠和b只黑鼠,由公主开始,公主和龙轮流从袋子中抓一只老鼠,先抓到白鼠的赢。特别的:龙每次抓完老鼠会有一只老鼠跑出来。每次抓老鼠和跑出来的老鼠都是随机的。如果两个人都没有抓到白色老鼠则龙赢。求公主赢的概率。思路:dp[i][j]表示轮到公主抓时袋子里还剩i只白鼠j原创 2013-08-12 16:04:40 · 1000 阅读 · 0 评论 -
Poj 1644 To Bet or Not To Bet (概率 DP)
题意:棋盘是一个线性表,初始位置0,结束位置m+1,每一轮抛硬币决定向右一步还是两步,概率各为0.5。棋盘每格上都会有一个说明+n,-n,L,或者 0,分别意味着向右走n格,向左走n格,失去一轮机会,无任何说明。给出棋盘的大小,以及棋盘上每一格的说明,求在t轮或者少于t轮便走到终点处的概率。思路:DP,递推。注意读入方式,以及数组的初始化。#include #include #incl原创 2013-08-12 15:09:37 · 1234 阅读 · 0 评论 -
LightOJ 1408 Batting Practice (期望)
题目连接:http://lightoj.com/volume_showproblem.php?problem=1408题意:连续进k1个球或连续不进k2个球则游戏结束,给出进球概率p,求到游戏结束时投球个数的期望。思路:f[i]表示连续i次不命中时到游戏结束剩余投球个数的期望,t[i]表示连续i次命中时到游戏结束剩余投球个数的期望。设命中概率p,则不命中q=1-p。f[i] = q*(原创 2013-08-11 20:13:33 · 1463 阅读 · 0 评论 -
LightOJ 1284 Lights inside 3D Grid (概率期望)
题目连接:http://lightoj.com/volume_showproblem.php?problem=1284题意和思路参考:http://www.cnblogs.com/jianglangcaijin/archive/2013/01/01/2841663.html其中Get函数用于计算一维两点不在同一侧的概率。最后公式又迭代、等比数列求和公式推得。#include #inc原创 2013-08-11 16:17:30 · 1303 阅读 · 0 评论 -
Hdu 4465 Candy (概率 对数 组合数 负二项分布)
题意:两个瓶子里都装了n个糖果;从第一个瓶子拿的概率是p ,当再拿糖果的时候,发现瓶子空了 ,求这时候另外一个瓶子的剩余的糖果的数量的期望 思路:参考了http://www.cnblogs.com/yefeng1627/archive/2013/04/24/3040112.html计算过程中为避免溢出和丢失精度,采用取对数计算,exp还原。本题服从负二项分布:已知一个事件在伯努利试验中原创 2013-08-11 13:06:21 · 1126 阅读 · 0 评论 -
LightOJ 1038 Race to 1 Again (约数+期望)
题目连接:http://lightoj.com/volume_showproblem.php?problem=1038题意:给一个数,用这个数的约数(包括自己)去除这个数,直到得数为1,求除的次数的期望。思路:设一个数的约数有num个,E[n] = E[a[1]]/num+E[a[2]]/num+...+E[a[num]]/num+1 (因为又除一次,所以+1)整理得:E[n]=(原创 2013-08-11 10:36:21 · 1179 阅读 · 0 评论 -
LightOJ 1030 Discovering Gold + Hdu4405 Aeroplane chess (期望)
相似的两题一起总结。LightOJ 1030 Discovering Gold题目链接:http://lightoj.com/volume_showproblem.php?problem=1030题意:投骰子从1走到n,注意在最后如果数字超过剩余的格数要重新投。思路:倒推,dp[i]表示走到i位置(从1开始计数)之后获得的期望#include #include #def原创 2013-08-11 10:20:11 · 1514 阅读 · 0 评论 -
Poj 2096 Collecting Bugs (dp求期望)
简说期望类问题的解法 - Kicd的日志 - 网易博客下面内容参考了:http://blog.csdn.net/morgan_xww/article/details/6774708题意:一个软件有s个子系统,会产生n种bug。 某人一天发现一个bug,这个bug属于某种bug,发生在某个子系统中。 求找到所有的n种bug,且每个子系统都找到bug,这样所要的天数的期望。 需要注意的是:原创 2013-08-11 10:03:22 · 908 阅读 · 0 评论 -
LightOJ 1027 A Dangerous Maze 概率期望学习小记
偶尔做过一些概率期望的题,现在系统的学习下。大学《概率论与统计》的知识基本够用……下面的链接是别人总结的题目:概率DP_滴答_百度空间【DP_概率DP专辑】【10、4最新更新】 - ZeroClock - 博客频道 - CSDN.NET概率dp 与 dp求期望 - 标签 - Because Of You - 博客园概率dp与dp求期望 « DarkSword概率dp原创 2013-08-10 19:32:16 · 1455 阅读 · 0 评论 -
hdu 2955 Robberies + LightOJ 1079 Just another Robbery (01背包 概率)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2955题意:有一个小偷要偷银行的钱,可是他偷没家银行总是有一定的概率被抓,现在给了你一个概率P,只要他被抓的概率乘积不大与P,他就是安全的。问你在他安全的情况下,他最多可以偷多少钱。思路:01背包。所有银行的总资产为背包容量V。求最大的逃跑概率。题目给出被抓的概率,要求最大的逃跑率,即1-p原创 2013-02-26 20:22:19 · 864 阅读 · 0 评论 -
携程第二场 Poj 1182 食物链(带权并查集) Poj 1948 Triangular Pastures Poj(dp二维背包) 1740 A New Stone Game(博弈)
携程的第二场好多原题,网上好多题解。。。原创 2014-04-11 21:43:20 · 1739 阅读 · 0 评论 -
Codeforces Round #222 (Div. 2) ABCD
继续总结做过的CF比赛链接:http://codeforces.com/contest/378A Playing with Dice题意:a,b两个数字,扔一个骰子,求分别与a,b求差的绝对值,谁小就谁赢,相等平局,输出每种情况的个数。#include #include int a,b;int Dis (int k){ if (fabs(a-k)<fabs(b-k原创 2014-02-04 17:51:05 · 977 阅读 · 0 评论 -
Codeforces Round #219 (Div. 2) + 元旦欢乐赛
抽出时间补一下做过的题。Codeforces 373A Collecting Beats is Fun题意:面板上有16个灯,每个灯会在一个时间量,一只手可以同时关掉k个,问是否可以及时关掉思路:找到最多的那个,和2*k比较即可#include #include char str[10];int hash[15];int main (){ int k,i;原创 2014-01-23 23:12:52 · 988 阅读 · 0 评论 -
Poj 3287 The Trip, 2007 (简单贪心)
又是被题意玩坏的节奏。题意:把一个包放入另一个包内,使得总共要带的件数最少,就是说大包可以装小包,且一个大包只能装一个小包,但是这个小包可以继续装更小的包。因为相同大小的包不能互相装,所以最小数量就是有相同尺寸的包的最大数量。#include #include #include using namespace std;#define upmax(a,b) ((a)=(a)>(b)?原创 2014-01-20 14:29:36 · 942 阅读 · 0 评论 -
Havel-Hakimi 度序列判断无向图是否可图 Poj 1659 Frogs' Neighborhood
南京现场赛遇到的知识点,旁边北邮队伍秒过,我们这边三人大眼瞪小眼。。。赛后证明最后队友思路大方向没错,只是判断是否存在多种构图方式时有问题。以下摘自百度知道:Havel-Hakimi算法用来判断是否可以构造出一个满足给定顶点序列的图。例如给一个非升整数序列(4, 3, 2, 2, 2,1),该算法将判断能不能找到一个具有4个顶点的图且顶点的度可以构成上述序列。算法最终会构造出如下的原创 2013-12-13 21:33:51 · 1431 阅读 · 0 评论 -
Hdu 2850 Load Balancing (贪心 优先队列)
题意:n个任务,m台服务器,给出每个任务的耗时,分配工作到服务器中,使他们各台服务器间总处理时间的最大值与最小值的差最小思路:贪心,优先队列,先处理耗时多的任务,再处理耗时少的任务。先对耗时从大到小排序,然后每次更新每个机器的最大工作时间,每次取出总耗时最少的服务器分配新的任务。#include #include #include using namespace std;stru原创 2013-08-12 09:55:11 · 1173 阅读 · 0 评论 -
Hdu 1001+1170+1032+1108+2942+1009
又是水题代码集锦。。。。1001//乘完再除会超范围#include int main() { int n; while (~scanf("%d",&n)) if (n%2) printf("%d\n\n",(1+n)/2*n); else printf("%d\n\n",n/2*(n+1)); return 0;}1170原创 2013-03-20 16:35:12 · 981 阅读 · 0 评论 -
HDU1052 Tian Ji -- The Horse Racing(贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1052思路:首先田忌与齐王的马均升序排列,由双方最慢的马开始扫描贪心策略:当前田忌的马比齐王的快:赢一局;当前田忌的马比齐王的慢:用这匹马与齐王最快的比,输一局;当前马速度相同:若田忌最快的马比齐王最快的马快,赢一局;否则,用当前马与齐王最快的比,若速度慢(有可能速度相同),输一原创 2013-01-24 23:29:35 · 593 阅读 · 0 评论 -
HDU 1051 Wooden Sticks(贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1051思路:简单贪心,升序排序第一关键字:长度,第二关键字:质量。筛的时候注意条件是 l这类简单贪心实在水不动了,赶紧去找些难的。。。#include #include #include using namespace std;struct Point {原创 2013-01-23 18:34:01 · 736 阅读 · 0 评论 -
HDU 1050 Moving Tables (贪心 区间最大叠加数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1050参考链接:http://blog.csdn.net/code_pang/article/details/8251240思路1:贪心#include #include #include using namespace std;#define min(a,b) ((a)<(b)原创 2013-01-22 11:02:43 · 817 阅读 · 0 评论 -
HDU 2037 今年暑假不AC (贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2037水题,作为第一道贪心题练下手。思路:贪心思想:只要每一步都选着占用时间最小的同时要使剩余时间最大的,也就是说,每回都要找一个结束最早的。当找到第一个后,一定要使剩余的时间最长,以后每选一个都要考虑这个问题。这样每一步都最优的话,结果也是最优的,可以用反证法证明。也就是按照结束时间小到大排序原创 2013-01-14 20:42:22 · 968 阅读 · 0 评论 -
LightOJ 1383 Underwater Snipers
题目链接 http://lightoj.com/volume_showproblem.php?problem=1383题意:给出k,n,s,D. y=k代表河岸,河岸上侧有n个敌人,在河岸下侧布置s个狙击手,狙击手射程为D,要求每个敌人至少被一个狙击手攻击到。接下来的n行给出敌人的坐标,敌人和狙击手所处位置的横纵坐标一定是整数。所有狙击手距离河岸的最小距离为M,求M的最大值。思原创 2012-12-13 12:56:57 · 830 阅读 · 0 评论 -
Hdu 5045 Contest (2014 上海Online) (状态压缩dp)
听说还可以用二分图什么的gao原创 2014-09-27 19:27:12 · 1025 阅读 · 0 评论 -
状态压缩dp学习小记part1
论文:天津大学的周伟的《状态压缩》上述论文在这里有部分参考代码:状态压缩递推(States Compressing Recursion,SCR)题目及解题思路可以在这里找到: (原创)BUCToj 动态规划一状态压缩 Problem E-I 解题报告之五连发从以下两篇博文中挑选了练习题目,并参考了题目的翻译……状态压缩DP总结【POJ3254】【POJ1185】【POJ原创 2013-05-31 21:53:20 · 1669 阅读 · 9 评论 -
树形DP学习小记Part1 选课 Hdu 1561 The more, The Better
进入树形DP的学习,据说本题为树形DP入门题,难怪网上代码长得都差不多……选课问题应该是最基本的模型了,找个能交的OJ真不容易……2015-4-28 更新了一个别人的题集原创 2013-07-26 09:47:42 · 1539 阅读 · 0 评论 -
NKOJ 1137 石子合并问题 (区间dp)
前几天做的第一道区间dp的题。下午开始备战最后一门考试。又积压了好多题没写题解了……题目链接:http://acm.nankai.edu.cn/p1137.html思路:我是看这篇文章入门的 深入分析区间型动态规划,解题思路里面已经说得很清楚了,下面贴我的代码其中dp[i][j]表示,从第 i 个数到第 j 个数相加的最小或最大代价#include #include #原创 2013-07-02 11:44:28 · 914 阅读 · 0 评论 -
状态压缩dp学习小记part2
继续学习状态压缩的相关知识。本来准备继续按照上篇博文里提到的那篇论文继续学习,但被矩形完全覆盖虐了回来,决定先做些其他的题增进理解之后再回来做。Zoj 3471 Most Powerful题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3471题意:不超过10种原子,两两之间相互碰撞可以产生原创 2013-06-05 22:03:41 · 1127 阅读 · 0 评论 -
Hdu 2089 不要62 (暴力/数位dp)
应该属于数位dp的一题,暴力方法可过就先偷懒了……第二段代码是别人的,转化成字符串进行处理#include __int64 data[1000005];bool OK (int n){ int i,j; for (j=1;j<=n;j*=10) { if (n%(j*10)-n%j==4*j) //某位为4 return false; if (j>=10 &原创 2013-09-08 17:27:04 · 1076 阅读 · 0 评论 -
Poj 3286 How many 0's? + Bzoj 1833 count 数字计数(数位统计)
差不多的两道题,放在一起总结下。第一题的分析可以参考:http://www.cnblogs.com/zhj5chengfeng/archive/2013/03/24/2977984.html#include __int64 radix[15],n,m;__int64 Cal (__int64 x){ if (x<0) return 0; __int64 sum=1; //原创 2013-09-06 17:03:57 · 1642 阅读 · 0 评论 -
数位dp学习小记 Hdu 3555
学习时主要参考了以下文章的内容和思想:几个基础数位DP (hdu 2089,hdu 3555 ,uestc 1307 windy 数) - 窝是爱酱,喵~~~~ - 博客频道 - CSDN.NEThttp://blog.csdn.net/acm_cxlove/article/details/7819907【专题】数位DP(按位DP) - cmonkey - 博客频道 - CSDN.原创 2013-04-06 20:07:28 · 2522 阅读 · 4 评论 -
LightOJ 1064 Throwing Dice (DP)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1064题意:一次掷n个骰子,求点数之和大于m的概率。思路:dp,将所有数据预处理出来。要用64位整型。#include #include __int64 dp[26][151],p[25];int n,m; void init (){ int i,j,k;原创 2013-07-18 09:30:35 · 1226 阅读 · 0 评论 -
LightOJ 1173 The Vindictive Coach (DP 计数)
题目连接:http://lightoj.com/volume_showproblem.php?problem=1173题意:n个不同身高的队员和教练的按照身高排成波浪形……每个人按照身高由低到高编号,其中第m个是教练,他必须在第一个,如果条件允许,排第二的要比m低,如果条件不允许,即其余人都比教练高,则要让差距尽可能小。思路:其实就是n个不同的数排成波浪形。f[n][i]表示n个数以第原创 2013-09-03 19:49:31 · 1916 阅读 · 0 评论 -
LightOJ 1246 Colorful Board (DP+组合数)
题目连接:http://lightoj.com/volume_showproblem.php?problem=1246题意:有(M+1)*(N+1)的棋盘,可以用k种油漆给它们染色。要求曼哈顿距离为奇数的格子不能染同一颜色(显然相邻格子的曼哈顿距离为1),问总的染色方案数。思路:问题可转化为:每个格子(x,y),x+y奇偶性不同的格子的颜色不能相同。于是棋盘被分成两部分,类似于国际象棋黑白原创 2013-09-06 16:47:18 · 1665 阅读 · 0 评论 -
LightOJ 1005 Rooks (排列数 组合数)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1005题意:在一个n*n的棋盘上放k个车,使得各个车之间不相互攻击。有多少种放法?思路:先在n行中选出k行,C(n,k),再在n列中选出k列随便放A(n,k),答案为C(n,k)*A(n,k)。一直都记得0!=1,却忘了A(n,0)=1。。。。。。#include原创 2013-11-06 21:09:46 · 851 阅读 · 0 评论 -
LightOJ 1011 Marriage Ceremonies (二分图最优匹配 状态压缩+记忆化搜索)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1011题意:n男n女要结婚,给出好感度矩阵,i行j列表示i男对j女的好感度,求一夫一妻结婚后总的最大好感度。思路:套了个KM算法的模板0.004s直接秒了……然后觉得可以用状态压缩+记忆化搜索来练练手,结果跑了0.256s。。。网上貌似还有用费用流做的。#includ原创 2013-11-06 21:44:41 · 1035 阅读 · 1 评论 -
LightOJ 1017 Brush (III) (DP)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1017题意:坐标系里有n个点,一个宽度为w的刷子可以擦去这些点(边缘擦到也算),刷子可以横向无限移动,问移动k次最多可以擦去多少点。思路:显然与点的横坐标无关,将纵坐标排序,预处理:以刷子的底边擦去一个点i会向上影响多少个点mv[i]。状态转移方程:dp[i][j]=max(原创 2013-11-08 23:06:35 · 1302 阅读 · 0 评论 -
Codeforce 373 D Counting Rectangles is Fun (统计全0子矩阵)
题目链接:http://codeforces.com/contest/373/problem/D题意:求一个矩阵中有多少个全0子矩阵。思路:动态规划,dp[a][b][c][d]为待求量,矩阵大小只有40*40,询问数量可以达到3*10^5,提示应该进行预处理。状态转移方程:dp[a][b][c][d]= dp[a][b][c-1][d] + dp[a][b][c][d-1] - dp原创 2014-01-24 22:03:10 · 949 阅读 · 0 评论 -
Hdu 1502 Regular Words (java高精度 + DP)
题意:ABC每个字母有n个,求满足要求的排列的个数:在该排列的任意前缀中满足 A的个数不少于B的个数 不少于C的个数。思路:DP,dp[i][j][k]表示该串由i个A,j个B,k个C组成,状态转移方程:dp[i][j][k] = dp[i-1][j][k]+dp[i][j-1][k]+dp[i][j][k-1],并且i>=j>=k,(也就是串尾分别接A B C)最后数据较大,需要高精度。原创 2014-02-13 10:20:23 · 851 阅读 · 0 评论 -
Hdu 4824 Disk Schedule (双调欧几里得旅行商问题)
Poj 2677 和 Hdu 2224 也都是这类问题。学习资料:POJ2677 DP tour 双调欧几里得旅行商问题 - _sunshine - 博客园原创 2014-05-30 16:52:19 · 1282 阅读 · 0 评论