
数位DP
动态规划---数位统计DP
(xsj)
模拟只会猜题意
贪心只能过样例
DP一般看规律
数论只会gcd
计算几何瞎暴力
图论只会匈牙利
数据结构没学过
字符串只能干输入
展开
-
acwing 1086 恨7不成妻
题面题解代码#include <cstring>#include <iostream>#include <algorithm>#include <vector>using namespace std;typedef long long ll;const int N = 20, P = 1e9 + 7;struct F { int s0; //个数(0次方) int s1; //和(1次方) int s2;原创 2021-04-16 10:27:41 · 157 阅读 · 0 评论 -
acwing 1085 不要62
题面题解代码#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>using namespace std;const int N = 10;int f[N][N]; //i位数,最高位是j的满足条件的方案数void init() { for (int i = 0; i <= 9; i+原创 2021-04-14 14:10:02 · 107 阅读 · 0 评论 -
acwing 1084 数字游戏II
题面题解(数位DP)代码#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<vector>using namespace std;const int N = 11, M = 100;int P;int f[N][N][M]; // i位数,最高位是j,i位之和模P的余数原创 2021-04-14 10:42:54 · 160 阅读 · 0 评论 -
acwing 1083 Windy数
题面题解(数位DP)代码在这里插入代码片原创 2021-04-14 08:46:19 · 114 阅读 · 0 评论 -
acwing 1082 数字游戏
题面题解(数位DP)代码#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>using namespace std;const int N = 15;int n;int f[N][N]; //f[i][j]表示一共有i位,且最高位填j的数的个数void init() { for (int原创 2021-04-13 17:00:31 · 163 阅读 · 0 评论 -
牛客练习赛80 不降数
题面题解一个线性递推,但由于n数值过大,无法进行继续,我们只要给n取余100019即可!!!成立的理由大致如下:递推100019次,而且还是一个和式,那么一定是100019的倍数!代码#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>using namespace std;const int m原创 2021-04-12 21:28:03 · 126 阅读 · 0 评论 -
acwing 1081 度的数量
题面题解 (数位DP)题意有点难受,假设K=2,B=2 ,那么要想满足题中要求,在2进制下每一位只能填0或者1,比如 20 = (10100)2,只有这样才能转化为 24 + 2 2 , 再比如K=2,B=8,那么9在8进制下就表示为11, 9=80+81 ,但是17在8进制下表示是21,那么它就不可能表示成为整数次幂之和所以现在我们就转化成了在[X,Y] 之间的数,在B进制下,由K个1,其余都是0组成的数的个数,数位DP问题我们利用前缀和的思想,统计的是1-N之间满足条件的数,然后在[X原创 2021-04-12 21:23:23 · 178 阅读 · 0 评论