DP
Karmen Yang
ACM菜鸡
展开
-
2019ICPC香港J题(数位dp)
题意:求区间L~R中有多少个数X是与f(x)模m同余的,f(x)定义是每一位上的数与其他所有位上数的乘积取和。思路:裸的数位dp,dp[i][j][k]表示第i位,前面的位数和为j%m,(x-f(x))%m为k的情况下最后x与f(x)模m同余的方案数,状态转移就非常明显了,可以直接看代码#include<bits/stdc++.h>using namespace std;#define mod 1000000007typedef long long ll;typedef long d原创 2020-10-06 00:11:55 · 403 阅读 · 0 评论 -
POJ2411状压DP(0竖1横)
题意:mn的矩阵问填多少12 的分块可以填满的方案数思路:m*n是奇数时肯定不行,m或n有一个为1肯定只有一种。对于每一行设计状态假设填横着的则为连续的11,填竖着的则设为0,对于下一行来说,如果上一行相同位置如果是0,那么我只能填1,如果上一行相同位置为1,那么我可以填0,如果上一行相同位置为连续的两个1.那么我填11.最终态是dp[m][1<<(n-1)],因为需要填满,所以最后一行只能是全1.不能出现0,因为出现0需要用下一行的格子补齐;#include<cstdio>#原创 2020-10-04 14:05:29 · 185 阅读 · 0 评论 -
2017ICPC南宁E题题解
题意:2^r个人打比赛,一共比r轮决出冠军,主角的实力排在第k位,并且对于所有人,打败比他弱的人概率是p,打败比他强的人概率是(1-p);主角要尽可能的提高获胜的概率,求这个概率即可思路:我们想一想就知道,让比我厉害的个人先出局这样一定是获胜概率最大的。所以每一轮让比自己厉害的m个人内斗,自己去选择和比自己弱n个人的pk,最后到m为0或n为0的时候获胜概率就是固定的了。为p^n或者(1-p ) ^ m;把过程记忆化一下即可;#include<cstdio>#include<strin原创 2020-10-03 19:52:29 · 198 阅读 · 0 评论 -
2020.9.29排位赛第二场补题
2017ICPC乌鲁木齐A coins题意:给你n个正面朝下的硬币,你每次可以随意拿p个硬币,每次把这k个硬币往上抛,如此这样抛m次,问最后正面朝上的期望是多少。思路:概率DP,设dp[i][j]为第i次抛硬币后有j个硬币朝上的概率。一共有两种推法,第一种:正向推:我是已经抛了i次硬币了,那么dp[i][j]是我当前j个硬币朝上的概率,我设这次抛硬币个有k个硬币朝上,那么这里会有两种情况:第一种n-j>=p,那么我这次抛硬币都选正面朝下的。dp[i+1][j+k] += dp[i][j]*C原创 2020-09-30 09:43:23 · 86 阅读 · 0 评论 -
概率DP入门题
关键在于找递推关系POJ2096题意:一个软件有s个子系统,会产生n种bug一个人每天发现一个bug,这个bug属于一个子系统,属于一种分类每个bug属于某个子系统的概率是1/s,属于某种分类的概率是1/n问发现n种bug,每个子系统都发现bug的天数的期望。递推式:dp[i][j]表示发现i个bug输入j个子系统的期望:dp[i][j]= i/n * j/s dp[i][j] ...原创 2019-11-16 21:32:23 · 125 阅读 · 0 评论 -
HDU5179
HDU 5179题意:对一个递减数的数(数位中不能有0),并且要求上一位对下一位求余==0的一个数,区间内有多少这种数。思路:数位DP,dp[i][j]表示i位的数字,前一位数字是j填后面的数字有多少符合题意的数字#include<cstring>#include<algorithm>#include<cstdio>#include<cmath...原创 2019-11-16 20:29:25 · 171 阅读 · 0 评论 -
HDU 3709 数位DP
HDU 3709#include<cstdio>#include<cstring>#include<iostream>using namespace std;typedef long long ll;const int N=20;ll l,r,f[N][N][2000];int T,bits[N];ll dfs(int pos,int x,int...原创 2019-11-16 20:11:41 · 64 阅读 · 0 评论 -
HDU3652(数位dp)
HDU 3652题意:求1~n里有多少个能被13整除且数字里面包含十三的数的个数#include<cstring>#include<algorithm>#include<cstdio>#include<cmath>using namespace std;int a[15],n,ans;int dp[15][15][3];//dp[i]...原创 2019-11-16 19:39:35 · 146 阅读 · 0 评论 -
树形dp求树的直径
求树的直径#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N=100005;int n,m,t,ans;int f1[N],f2[N];int first[N],v[N],w[N];int nex[N];void add(int...原创 2019-11-15 17:34:06 · 170 阅读 · 0 评论 -
HDU4313
HDU 4313 Matrix/* dp[i][0]代表的是在当前以i节点为根节点的子树中,i所在的连通块中没有危险节点的最小花费;dp[i][1]代表的是在当前以i节点为根节点的子树中,i所在的连通块中有一个危险节点的最小花费;注意:是i所在的连通块允许出现一个危险节点 如果i是叶子节点:如果i为危险点dp[i][0] = inf,dp[i][1]= 0;否则dp[i][0] = dp...原创 2019-11-15 16:45:24 · 90 阅读 · 0 评论 -
LCIS
给一个序列a和序列b,求他们的最长公共上升子序列///LCIS 最长公共上升子序列 #include<cstdio>#include<algorithm>using namespace std;int a[555],b[555],dp[555];//dp[i]表示以b[j]结尾的序列的LCIS长度为多少 int path[555],pre[555],ans=0;...原创 2019-11-02 16:38:52 · 156 阅读 · 0 评论 -
暑假专题4,树形DP补题
A-BZOJ2435///卡STL,用前向星……#include<stdio.h>#include<string.h>#include<string>#include<algorithm>using namespace std;#define inf 0x3f3f3f3f#define N 1001005int ma(int a,i...原创 2019-08-11 15:02:15 · 99 阅读 · 0 评论 -
暑假专题3,状压DP 区间DP
状压DPA - Corn Fields POJ3254DescriptionFarmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yummy corn for the c...原创 2019-08-02 10:26:39 · 411 阅读 · 0 评论 -
暑假专题3,补题
B-CF1114D先预处理压缩序列使得相邻两个数字不相同dp[i][j][0]表示在区间i,j里的染成i颜色的最小涂色个数dp[i][j][1]表示在区间i,j里的染成i颜色的最小涂色个数#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#defin...原创 2019-08-06 10:01:54 · 80 阅读 · 0 评论 -
暑假专题2,补题
A BZOJVIP 1642Discription贝茜是一只非常努力工作的奶牛,她总是专注于提高自己的产量。为了产更多的奶,她预计好了接下来的N (1 ≤ N ≤ 1,000,000)个小时,标记为0…N-1。 Farmer John 计划好了 M (1 ≤ M ≤ 1,000) 个可以挤奶的时间段。每个时间段有一个开始时间(0 ≤ 开始时间 ≤ N), 和一个结束时间 (开始时间 < ...原创 2019-07-31 10:24:37 · 237 阅读 · 0 评论 -
暑假专题2,DP入门
1、LCS(最长公共子序列)B - Common Subsequencesubsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = < x1, x2, …, xm > another sequence Z...原创 2019-07-31 10:04:41 · 207 阅读 · 0 评论 -
暑假专题1 搜索入门
E - Fliptile (POJ 3279)DescriptionFarmer John knows that an intellectually satisfied cow is a happy cow who will give more milk. He has arranged a brainy activity for cows in which they manipulate ...原创 2019-07-20 14:49:24 · 306 阅读 · 0 评论 -
暑假搜索专题1(搜索)补题
A - Fox And Two Dots(CF510B)最后突然发现有个特判,为此t了好几发#include<stdio.h>#include<string.h>#include<algorithm>#include<queue>using namespace std;int m,n,sx,sy;char ma[55][55];in...原创 2019-07-19 19:19:00 · 210 阅读 · 0 评论