摘要: ``` #include #include #include using namespace std; typedef long long ll; const int MOD=2520; ll gcd(ll a,ll b) { return b==0?a:gcd(b,a%b); } ll lcm(ll a,ll b) { return a*b/gcd(a,b); } ll dp[30][MOD][ 阅读全文
posted @ 2020-03-15 22:40 晴屿 阅读(88) 评论(0) 推荐(0) 编辑
摘要: ```#include#include#include#include #define mem(a,b) memset(a,b,sizeof(a))#define inf 0x3f3f3f3ftypedef long long LL;const LL mod=1e9+7;const int M=13;using namespace std;const int N =1e5+100;LL dp[21... 阅读全文
posted @ 2020-03-15 21:57 晴屿 阅读(135) 评论(0) 推荐(0) 编辑
摘要: ```//dp[i][j][0]表示i位数模13为j当前没有包含13并且最高位不为1的方案数;//dp[i][j][1]表示i位数模13为j当前没有包含13并且最高位为1的方案数;//dp[i][j][2]表示i位数模13为j当前包含13的方案数。#include#include#include#define N 15using namespace std;int bit[N],dp[N][N][... 阅读全文
posted @ 2020-03-15 21:28 晴屿 阅读(72) 评论(0) 推荐(0) 编辑
摘要: ``` #include #include #include using namespace std; long long dp[30][30][3000]; int num[30]; long long dfs(int pos,int center,int sum,bool flag) { //如果遍历到最后以为了 if(pos==0) //判断和是否位0 return sum==0; if(s 阅读全文
posted @ 2020-03-15 20:55 晴屿 阅读(96) 评论(0) 推荐(0) 编辑
摘要: ``` #include #include #include #include using namespace std; const int N=70; int a[N]; //设f(pos,det)f(pos,det)表示处理到pos位,当前detdet是多少的答案。 //detdet是这个二进制数0的数量减去1的数量 //当然需要注意的是,11的数量可能大于00的数量导致detdet为负,所以 阅读全文
posted @ 2020-03-15 16:23 晴屿 阅读(80) 评论(0) 推荐(0) 编辑
摘要: ``` #include #include #include #include using namespace std; typedef long long ll; const int N = 35; ll n; ll f[N][30]; void init() { //处理一位的数字 for (int i = 0; i nums; while (n) nums.push_back(n % 10) 阅读全文
posted @ 2020-03-15 14:45 晴屿 阅读(83) 评论(0) 推荐(0) 编辑
摘要: ``` //f[i,j]一共有i位数字,且最高位是j,而且不包括4和64的数的个数 //f[i-1,k] 表示次高位为k //如果合法,那么需要满足 j、k都不为4 jk不是62 #include #include #include #include using namespace std; const int N = 35; int f[N][10]; void init() { //处理一位的 阅读全文
posted @ 2020-03-15 14:21 晴屿 阅读(93) 评论(0) 推荐(0) 编辑