动态规划
文章平均质量分 67
CQU_HYX
软件算法专精
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
codeforces 449D
题目给你1e61e6个数,你需要找出有多少子序列,他们的值andand起来为0。思路设f(s)f(s)表示状态为ss,ss中为1的位一定是1,为0的位可能为1的可选数字的个数,g(s)g(s)表示状态ss中为1的位的个数。那么可以由容斥原理得到ans=∑220s=0(−1)g(s)∗(2f(s)−1)ans = \sum_{s=0}^{2^{20}}(-1)^{g(s)}*(2^{f(s)}-1)核原创 2016-09-03 15:44:53 · 898 阅读 · 0 评论 -
codeforces132C
题意:有个乌龟在一条线上走,初始位置为1 给你一串FT字符串代表指令,F代表朝着当前前进的方向走一步,T代表转向,再给你转换次数n, 每次可以把T变F,F变T,同一个指令可以变多次 问你在转换了n次的情况下,走的最远距离(假设初始位置为0,最远左边为o则答案为abs(o - 0))很恶心的dp dp[i][j][k][l] 已经执行了i指令,已经改变了j次,当前位置为k,朝向为l是否合法原创 2016-01-22 23:36:58 · 520 阅读 · 0 评论 -
codeforces 258B
很经典的思路啊,比赛的时候没怎么多想,其实还很简单的。 题意:有7个party,然后有m个数字,1-m,每个party可以选择其中一个数字,4和7是幸运的字符,每个数字有多个幸运字符比如4447有四个。 问你第一个party选的数字的幸运字符个数 严格大于其他party选择的数字的幸运字符个数的和 的选择方法数。用数位dp预处理出1-m之间幸运字符个数为i数字数为c[i],然后枚举第一个p原创 2016-01-22 23:29:17 · 477 阅读 · 0 评论 -
codeforces 264B
题意很简单,给你n个严格上升的数字ai, 然后你要求出最大的子序列,满足相邻的数字不互质我的思路比较奇葩,首先唯一分解每个ai, 然后通过他的质因子来寻找可能出现的转移的地方,然后dp[i] = max(dp[i], dp[k] + 1) 如果直接这样做会tle,然后我们想想,最靠前的边价值越小,不带转移的必要,所以我估算了下概率,舍掉80%的边直接不转移,然后就过了。。//// Crea原创 2016-01-22 23:24:00 · 376 阅读 · 0 评论 -
codeforces 148E
题意:给你n个架子,每个架子有c个花瓶,每个花瓶有价值,从每个架子拿花瓶的时候只能从最外面部分开始拿(最左端和最右端)你现在要从n个架子里拿m个花瓶,求最大价值很经典的组合背包模型了,注意预处理出每个架子拿k个花瓶的最大价值,然后都不用二进制优化,直接裸的三方可过//// Created by Matrix on 2016-01-22// Copyright (c) 2015 Matrix.原创 2016-01-22 23:20:24 · 680 阅读 · 0 评论 -
uva11758 解题报告(神博弈之一)
题目链接 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2858题意:给你一个一维的棋盘,大小为n,然后给你k个棋子,k一定为偶数,有k/2个灰棋子,k/2个白棋子,灰色和白色一定成对摆放(先灰后白)然后两个人,A,B,每次可以进行一种操作,可以选择其中原创 2015-11-27 21:05:13 · 679 阅读 · 0 评论 -
训练指南UVALive5088解题报告
Alice and Bob’s Trip I - Alice and Bob’s Trip Time Limit:6000MS Memory Limit:0KB 64bit IO Format:%lld & %llu SubmitStatusPracticeUVALive 5088 Appoint description: Description Download a原创 2015-10-07 11:24:56 · 487 阅读 · 0 评论 -
AOJ 2456 Usoperanto (树形dp)解题报告
UsoperantoTime Limit: 8000msMemory Limit: 256000KB This problem will be judged on Aizu. Original ID: 2456 64-bit integer IO format: %lld Java class name: Main Prev Submit Status Statistics原创 2015-10-02 16:45:19 · 923 阅读 · 0 评论 -
HDU4089概率dp解题报告
HDU4089概率dp解题报告K - Activation Time Limit:10000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description After 4 years’ waiting, the game “Chinese Paladin 5” finally comes out. Tomato原创 2015-08-27 20:51:38 · 1027 阅读 · 0 评论 -
POJ3162 解题报告
Walking Race Description flymouse’s sister wc is very capable at sports and her favorite event is walking race. Chasing after the championship in an important competition, she comes to a training cen原创 2015-09-09 23:14:01 · 525 阅读 · 0 评论 -
DP之数位,概率,树形总结
DP小练终于搞定了,前前后后用了两星期,这次练习,主要是练习数位,概率和树形dp,其中不乏有些很好的思想。首先,我们来看看数位dp。一般的,数位dp都用于统计区间,满足一些性质的数的个数,格式都比较固定,究其本质,不外乎先查找【0, r】区间满足该性质的数的个数,然后再求出【0, l - 1】区间满足该性质的数的个数,然后相减即可。这里给出一段我的模板int digit[70];ll dp[原创 2015-09-09 23:50:38 · 799 阅读 · 0 评论 -
UVA 10559解题报告
一般的动态规划题,都是当前的决策不会影响到未来。而这类动态规划的题目中,当前的决策是会影响到未来的,并且这道题中,不仅仅是当前的决策影响到未来,因为价值是加起来的平方,所以以前的决策会和现在的决策一起影响未来的。因此不能简单的把之前的决策的影响在以前就消去,而是多开一维状态来记录之前的影响。 dp[l][r][k]表示 要消去l,r的小方块,并且剩下k个和col[r]颜色相同的方块留给未来使用的最原创 2015-12-06 22:13:51 · 499 阅读 · 0 评论 -
利用动态规划将逻辑函数化简到最简形式
// // Created by Running Photon on 2016-2-29 // Copyright (c) 2015 Running Photon. All rights reserved. //include include include include include include include include include include include in原创 2016-02-29 22:58:01 · 1216 阅读 · 0 评论 -
ZOJ3537 解题报告及总结
题目意思就是 给你一个多边形,先判断是否是凸包,然后再划分成一个一个三角形,求最小代价,两点之间画一条线的最小代价为 abs(xi + xj) * abs(yi + yj) % p才做的时候,想法是枚举划分的线,根据分治的思想,大的多边形拆成两个小多边形,然后记忆化,复杂度超高难写不说(因为要记录i节点的nxt节点编号,不停地变来变去),还不知道wa在哪。。后来想了下,既然最后一定是一个一个的三原创 2016-02-25 20:01:46 · 555 阅读 · 0 评论 -
HDU5834解题报告
树形dpdp套路题,但是转移有点麻烦。一个很显然的想法就是 先dfsdfs一次把子树搞完,然后再dfsdfs加上其父节点对当前节点的影响。写的略辣眼睛,调试了好久。。dp[0][u],dp[1][u]dp[0][u],dp[1][u]分别表示以u为根,走回来和不走回来的最大值,第一次dfsdfs很简单,普通的套路,第二次的时候,我们先把父亲节点对于即将访问的儿子节点的影响排除掉,再dfsdfs,然后原创 2016-08-15 19:19:06 · 1771 阅读 · 2 评论 -
2016多校联合第一场 HDU5731解题报告
题意:给你一个n*m的矩阵,你需要用1*2或者2*1的多米诺骨牌将其全部覆盖,并且使得没有一条横线或者竖线通过矩阵如果不看条件,此题是赤裸裸的轮廓线基础dp,赛场上利用轮廓线把行的情况处理出来,但是列就懵逼了。思路:首先我们用一个数组d[n][m]来存轮廓线dp求出来的值:n行m列的矩阵随意放置全部覆盖的方法数,然后状压竖向分割线,状压之后,把每一块的长度保存下来丢进v数组。然后从小到大枚举行的长度原创 2016-07-20 16:12:58 · 1787 阅读 · 0 评论 -
2016多校联合第三场 HDU5760
给你个nn,然后nn个数,你要找到一个最长的序列ss,输出其长度,并且输出不同的ss的个数。ss序列必须是回文的,并且中间最小,往两边依次增大,可以相等。s1s_{1}与s2s_{2}不同当且仅当长度不同或者存在某位s1[i]!=s2[i]s_{1}[i] != s_{2}[i]这个dp比较难。n范围比较小,先把aa数组离散化。方便之后处理。再预处理两个数组pre[i][j]pre[i][j] nx原创 2016-07-27 17:58:09 · 843 阅读 · 0 评论 -
2016多校联合第三场 HDU5758 Explorer Bo
题目大意: 给定一颗树,每次任意选取两个点,两点之间的所有边被标记,此次操作对答案的贡献为路径的长度;问在最少选取次数的情况下整个树被标记的最小答案。思路:对于第一个问题,最少选取次数显然是(叶子节点+1)/2。对于第二个问题,我们需要根据叶子节点总数的奇偶分类。偶数时:叶子节点必然是两两配对。每一个点由于要标记父节点,除根节点外对于奇数个叶子节点的子树我们只需要延伸一条链,而对于偶数个叶子节点的子原创 2016-07-27 12:54:17 · 1140 阅读 · 2 评论 -
codeforces 319C div1 189
题目链接http://codeforces.com/contest/319/problem/C题意:给你一个n表示有n棵树,第一棵树高度一定为1,往后高度一定递增。然后有一个b数组。减少任意一颗树的高度1的话费是b[i],那么a[i]a[i]一定等于0,并且a[j]>0,j>ia[j] > 0, j > i。这个dp不是很明显。因为第一棵树高度为1,肯定首先砍掉,通过样例我们发现砍第一次不需要cos原创 2016-07-25 15:42:10 · 726 阅读 · 0 评论 -
2016多校联合第二场 HDU5735 Born Slippy 解题报告
此题赛上没注意看,后来补题看了下,发现完全懵逼。。再去看了官方题解,我只想说:出题人收下弱等膝盖。。题目大意:给一颗树,每个点有个权值wiw_{i}。从s点(1)开始走到树上某个点v时会产生一个v1,v2,...,vedv_{1}, v_{2}, ... , v_{ed}的序列然后这条路径的价值然后我们可以任意选取一个子序列v1,v2,...,vedv_{1}, v_{2}, ... , v_{ed原创 2016-07-22 15:39:00 · 899 阅读 · 0 评论 -
HDU5745解题报告 暴力压位
Problem Description Professor Zhang would like to solve the multiple pattern matching problem, but he only has only one pattern string p=p1p2…pm. So, he wants to generate as many as possible pattern s原创 2016-07-22 11:47:10 · 1486 阅读 · 10 评论 -
UESTC第十四届校赛A题解题报告
太弱,什么都不会(Qrz) 给你一个n,然后你要用一个序列构成0到n的所有数(构成方法就是从序列中选若干个数加起来)问你有多少种这样的序列,{1,2,3}和{1,3,2}是相同的序列首先,看下n范围5000,复杂度肯定是n^2打表。 然后赛上各种推不出状态。。。 其实,肯定有一维状态要表示整个序列的和,那么就是dp[i],i为整个序列的和的方法数。然后尝试转移会发现很迷茫。。显然再加一维,考虑原创 2016-04-07 19:32:30 · 504 阅读 · 0 评论 -
Codeforces 45C
一道比较好的题,虽然不难,不过该考察的细节都考察了,不容易ac 很显然的概率dp dp[i][j] 表示前i个区间,选取了j个区间有首位为1的概率,然后答案就是求和。 坑点1:统计数位的时候,细节很多稍不注意就弄错。 坑点2:统计数位的时候,用Ull才能防止1e18*10爆炸 坑点3:要统计首位为1的区间为0的情况 坑点4:概率是求和,而不是dp[i][j] = max(dp[i-1][j原创 2016-03-13 22:05:54 · 453 阅读 · 0 评论 -
南京2013区域赛C题,HDU4804
* 队友用dfs过了,回来学了发轮廓线dp,现学现卖。* **看过轮廓线后,觉得这玩意儿好神奇,写起来比dfs顺手多了,虽然两者的思想其实都是差不多的,都是从一个合法状态通过边转移到另一个状态,dfs难写,长,轮廓线好写,容易写错。思路必须要清晰。 不说废话了,轮廓线的经典之处在于每次枚举旧的状态。通过旧的状态走到新状态的时候,旧的状态先左移一位,再建立新状态,原创 2016-02-28 23:40:32 · 692 阅读 · 0 评论 -
poj 2152解题报告
Description Country Z has N cities, which are numbered from 1 to N. Cities are connected by highways, and there is exact one path between two different cities. Recently country Z often caught fire, so原创 2015-09-08 15:05:57 · 625 阅读 · 0 评论 -
POJ 1741(男人八题)
POJ 1741(男人八题)解题报告。Tree Time Limit:1000MS Memory Limit:30000KB 64bit IO Format:%I64d & %I64uDescription Give a tree with n vertices,each edge has a length(positive integer less than 1001).原创 2015-09-07 20:47:59 · 587 阅读 · 0 评论 -
文章标题
Collecting BugsTime Limit: 10000MS Memory Limit: 64000K Total Submissions: 1245 Accepted: 524 Case Time Limit: 2000MS Special Judge DescriptionIvan is fond of collecting. Unlike other people原创 2015-08-25 15:59:25 · 407 阅读 · 0 评论 -
HDU2571解题报告
:本来不想写这篇的,但是,看着图太亮了,必须写了、I - 命运Crawling in process...Crawling failedTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64原创 2015-03-11 15:55:35 · 589 阅读 · 0 评论 -
区间为状态的dp Milking Time
DescriptionBessie is such a hard-working cow. In fact, she is so focused on maximizing her productivity that she decides to schedule her nextN (1 ≤ N ≤ 1,000,000) hours (conveniently l原创 2015-03-11 16:23:44 · 739 阅读 · 0 评论 -
Largest Submatrix
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u DescriptionNow here is a matrix with letter 'a','b','c','w','x','y','z' and you can change 'w' to 'a'原创 2015-03-11 16:08:42 · 362 阅读 · 0 评论 -
Beans 二维化一维
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u DescriptionBean-eating is an interesting game, ever原创 2015-03-11 16:05:50 · 551 阅读 · 0 评论 -
Cheapest Palindrome字符串回文dp(插入看做删除(等价))
DescriptionKeeping track of all the cows can be a tricky task so Farmer John has installed a system to automate it. He has installed on each cow an electronic ID tag that the system will read原创 2015-03-11 16:23:53 · 617 阅读 · 0 评论 -
平衡状态数量+01背包
DescriptionGigel has a strange "balance" and he wants to poise it. Actually, the device is different from any other ordinary balance.It orders two arms of negligible weight and each arm's原创 2015-03-11 16:09:53 · 466 阅读 · 0 评论 -
HDU 1506解题报告
Largest Rectangle in a HistogramTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6301 Accepted Submission(s): 1803Problem Descri原创 2015-03-11 15:54:33 · 520 阅读 · 0 评论 -
Cow Exhibition
Description"Fat and docile, big and dumb, they look so stupid, they aren't much fun..." - Cows with Guns by Dana Lyons The cows want to prove to the public that they are both smart and fun原创 2015-03-15 10:14:40 · 782 阅读 · 0 评论 -
Bridging signals
Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Description'Oh no, they've done it again', cries the chief designer at the Waferland chip factory. Once mo原创 2015-03-15 10:13:10 · 423 阅读 · 0 评论 -
Wooden Sticks
Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u DescriptionThere is a pile of n wooden sticks. The length and weight of each stick are known in advance. The s原创 2015-03-15 10:14:05 · 593 阅读 · 0 评论 -
Q - Coins
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u DescriptionWhuacmers use coins.They have coins of value A1,A2,A3...An Silverland dollar. One day Hibix op原创 2015-03-11 16:03:39 · 627 阅读 · 0 评论 -
动规A - Robberies
Crawling in process...Crawling failedTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmitStatusThe aspiring Roy the Robber has seen a lot of Ameri原创 2015-03-11 15:48:43 · 480 阅读 · 0 评论 -
HDU1864解题报告-dp
Description现有一笔经费可以报销一定额度的发票。允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,(此处有问题)单项物品的价值不得超过600元。现请你编写程序,在给出的一堆发票中找出可以报销的、不超过给定额度的最大报销额。 Input测试输入包含若干测试用例。每个测原创 2015-03-11 15:52:45 · 413 阅读 · 0 评论
分享