dp
numberer
这个作者很懒,什么都没留下…
展开
-
hdu 6148 Valley Number 数位dp
中文题就不说题意了。。。记录了三个状态,上一个数字是增还是减,上一个数字,前导0。前导0不合法。注意相等时候应保留前一位的增长还是减少,先增加再等再下降也是属于山峰的。#include<bits/stdc++.h>using namespace std;const int maxn=10;const int mod=1e9+7;long long dp[105][3][15...原创 2018-03-11 19:44:53 · 395 阅读 · 0 评论 -
hdu 4405 Aeroplane chess 概率dp
题意:玩飞行棋,总长度为n,从0出发,当前步数+投掷骰子的点数>=n都可以结束游戏。有m条航路,(x,y) 当你走到x时,氪跳至y。问结束游戏投掷骰子的期望是多少。刚刚学习概率dp,这题很简单。从后往前计算。i 点的期望等于(后面六个点的期望的和) / 6,如果该点存在航路,那么这个点的期望等于与他链接的那个点的期望。#includeusing namespace std;con原创 2018-03-18 16:47:37 · 175 阅读 · 0 评论 -
codeforces 895C Square Subsets 状压dp
题目大意:给你一个数组,问有多少个非空子集满足集合中所有数字的乘积是一个平方数。结果mod 1e9+7。首先就可以想到把所有数出现的次数记录一下。由于唯一分解定理可知若一个数是平方数,那么它唯一分解后质因子的指数一定是偶数。而且数字都是小于70的,小于70的质数只有20个,于是就可以进行状压dp了。第 i 位为1表示唯一分解后第 i 个质数的质数为奇数,否则为偶数。接着考虑状态转移。若数 k 没出...原创 2018-04-17 00:40:12 · 322 阅读 · 0 评论 -
poj 2288 状压dp
题意 : n个点,m条边,每个点有一个权值。求一条哈密顿路径,使这条哈密顿路径的权值最大。哈密顿路径的权值由三个部分组成:1. 哈密顿路径上每个点权值的和2. 哈密顿路径上每两个相邻的点乘积的和3. 哈密顿路径上三个点可以构成三角形,把这三个点权值的乘积加上问权值最大的哈密顿路径权值是多少 ,有几条。数据范围,n不超过13,所以是数位dp两个数组 dp[status][i][j] 记录权值,表示...原创 2018-07-06 21:03:46 · 213 阅读 · 0 评论