dp
文章平均质量分 50
木落淮南,雨晴雲夢
这个作者很懒,什么都没留下…
展开
-
zjy&xmd&密码
zjyzjyzjy是一个热爱密码的学长,他对于密码的痴迷程度远超常人。一天,zjyzjyzjy发明了一种新的密码,他找到了xmdxmdxmd,并告诉了他密码的规则,对于一个十进制的数,将它的各位作为主码,其余的位作为下标(不含前导000),这样每一个数,都会形成一个唯一个的码,而原数则称为码的值。为了让xmdxmdxmd听懂,zjyzjyzjy还举例说明了,码的转换规则,如 :132132132的码是,码2132_{13}213,而码2132_{13}213的值是132132132,555的码是,码5原创 2021-10-12 19:52:43 · 8624 阅读 · 0 评论 -
AtCoder Beginner Contest 222 E - Red and Blue Tree(dp)
E - Red and Blue Tree题意:略(因为解释起来比较困难)思路:利用dfs记录边然后反向将边标记出来,记录每条边的出现次数,然后利用dp进行转移,由于边数之和固定,所以可以去掉一维,然后再用滚动数组优化原方程式if(f[i][j][k]!=0)if(f[i][j][k]!=0)if(f[i][j][k]!=0)f[i+1][j+val[i]][k]+=f[i][j][k]f[i+1][j+val[i]][k]+=f[i][j][k]f[i+1][j+val[i]][k]+=f[i]原创 2021-10-09 22:59:09 · 222 阅读 · 0 评论 -
P2657 [SCOI2009] windy 数(数位dp6)
P2657 [SCOI2009] windy 数怎么说呢?就是一道数位dp的模板题,直接套版子,然后排除一下不合法的情况,在注意一下前导0的情况即可。#include <bits/stdc++.h>#define inf 0x7fffffff#define ll long long#define int long long//#define double long double#define re register int#define void inline void#def原创 2021-08-16 19:17:08 · 71 阅读 · 0 评论 -
第 45 届国际大学生程序设计竞赛(ICPC)亚洲网上区域赛模拟赛 E Eat Walnuts
传送门E Eat WalnutsAs we all know, in the ACM ICPC held in 2017, the organizer of Xinjiang University presented a box of walnuts to each coach. Our coach is happy to share with the team members except Mr.Watermelon. He is going to test Mr.Watermelon with原创 2021-03-06 19:18:29 · 249 阅读 · 0 评论 -
网格类dp1(方向设置)
P2295 MICE这道题的难点在于如何计算见到的老鼠,并且不能重复一个思路是,判断上一个状态的方向,上一个状态来源于该位置的左边的网格和上面的网格,可以以多开一维,用于存方向。观察转移方向的移动,上一状态都存在两个方向...原创 2021-07-28 23:35:03 · 127 阅读 · 0 评论 -
P1857 质数取石子(博弈论dp1)
P1857 质数取石子经典博弈论问题,先手必胜还是先手必败,除此之外,外有一个问题即必胜方会尽量快地取胜,必败方会尽可能拖延步数所以我们可以采取两个数组分别记录自己和对手的状态,状态石子数,存的是取石子的次数先考虑必胜和必败的两种状态如果该状态上一状态存在一个必败状态,则该状态必胜,反之必败所以问题就简单了对于自己而言,如果该状态必胜,则取石子的个数是上一状态(可以理解为对手必胜状态)的取个最小,然后+1即可f[i]=min(f[i],dp[i-prime[j]]+1);如果该状态必败,则等原创 2021-07-22 19:12:00 · 350 阅读 · 0 评论 -
数位dp5
P2110 欢总喊楼记算是比较模板化的dp了,只要记录一下首位和末尾就行了对于前导的情况需要展开讨论#include <bits/stdc++.h>#define inf 0x7fffffff#define ll long long#define int long long//#define double long double//#define double long long#define re int//#define void inline void#define原创 2021-07-15 23:27:53 · 99 阅读 · 0 评论 -
数位dp4(前导0处理)
P2602 [ZJOI2010]数字计数在递归的时候设置一个前导位lead,只有lead不为0的时候才可以进行记忆化,搜索等操作其余的没什么可以说的#include <bits/stdc++.h>#define inf 0x7fffffff#define ll long long#define int long long//#define double long double//#define double long long#define re int//#define v原创 2021-07-13 10:18:24 · 169 阅读 · 0 评论 -
数位dp1
1533. 1 的个数数位dp版子题#pragma GCC optimize(2)#pragma GCC optimize(3,"Ofast","inline")#include <bits/stdc++.h>#define inf 0x7fffffff#define ll long long#define int long long//#define double long double//#define double long long#define re int//#原创 2021-05-03 22:20:15 · 100 阅读 · 0 评论 -
数位dp2
P4999 烦人的数学作业将就ACWing(数位dp)的代码稍稍改了改就过了,没想到真是没想到#pragma GCC optimize(2)#pragma GCC optimize(3,"Ofast","inline")#include <bits/stdc++.h>#define inf 0x7fffffff#define ll long long#define int long long//#define double long double//#define double原创 2021-05-03 22:34:46 · 77 阅读 · 0 评论 -
数位dp2
P4999 烦人的数学作业将就ACWing(数位dp)的代码稍稍改了改就过了,没想到真是没想到#pragma GCC optimize(2)#pragma GCC optimize(3,"Ofast","inline")#include <bits/stdc++.h>#define inf 0x7fffffff#define ll long long#define int long long//#define double long double//#define double转载 2021-05-03 22:35:20 · 79 阅读 · 0 评论 -
数位dp3
P1633 二进制f[len][a][b][c][x],len表示最长的二进制位数长度,a表示A用了多少个1,b表示B用了多少个1,c表示C用了多少个1,x表示是否进位。初始状态f[0][0][0][0][0]=0,其他为inf,目标状态为f[len][la][lb][lc][0],同时用二进制的方式对空间进行优化#include <bits/stdc++.h>#define inf 0x7fffffff#define ll long long#define int long lon原创 2021-07-06 15:18:02 · 142 阅读 · 0 评论