- 博客(15)
- 收藏
- 关注
原创 数位dp总结
到这里,数位dp就告一段落了,kuangbin的专题还差一道,那一道涉及到了ac自动机,目前还不可做。 简单写下数位dp的总结基础部分数位dp有它固定的模板,例如solve,dfs函数的大体写法,和limit的处理。唯一不同的地方就是前缀状态state的维护,最为详细的state记法就是把前面所选择的每一个数都记录下来(即前缀prev),那么这就成了纯粹的暴力。 所以,根据题目...
2018-05-28 21:06:13 322
原创 XHXJ's LIS (数位dp,bitset状态压缩)
题目链接 题目大意:给出L和R找出在[L,R]中满足最长递增子序列长度等于K的个数。 思路: 本来想的是维护一个num[10],num[i]表示以i结尾的lis的长度,0<=num[i]<=9。然后状态压缩的时候发现压缩后太大,看了题解之后知道,必须要用nlogn求lis的思路来做,因为nlogn的思路是维护一个长度为10的bool数组,压缩后状态数少很多。#include ...
2018-05-28 20:41:45 751
原创 Balanced Number(数位dp,枚举平衡点)
题目链接 大意:平衡数有平衡点,使平衡点两边的权值(数值)×权重(到平衡点的距离)和相等对于任意一个平衡数,它的平衡点唯一 枚举平衡点统计平衡数的个数注意0的情况,0有一个平衡点,但是00有两个平衡点,000有三个平衡点#include <bits/stdc++.h>#define ll long longusing namespace std;ll dp[20]...
2018-05-26 16:15:35 440 3
原创 Round Numbers(数位dp,前导0)
题目链接 题目大意:要求二进制中0的个数大于等于1#include <bits/stdc++.h>#define ll long longusing namespace std;int len,dig[40];ll dp[40][100];ll dfs(int pos,int state,bool zero,bool limit){ if(pos==0){...
2018-05-25 20:18:33 824
原创 Balanced Numbers(数位dp,前导0,状态压缩)
题目链接 题目大意:要求每个奇数出现的次数为偶数,每个偶数出现的次数为奇数状态压缩,一个长度为10的3进制数。 第i位上为0,表示i没出现过,为1表示i出现奇数次,为2表示i出现偶数次。 change函数进行状态转移int change(int state,int pos){ int data=0; if(state==0) data = 0; else da...
2018-05-25 20:01:30 635
原创 B-number (数位dp入门)
题目链接n中存在“13”且n%13==0 注意参数ok的状态转移#include <bits/stdc++.h>#define ll long longusing namespace std;const int mod = 13;int len,dig[20];ll dp[20][20][2][20];ll dfs(int pos,int prev,int ok,...
2018-05-21 21:12:25 1286
原创 Bomb(入门数位dp)
题目链接一开始理解错题意了,以为4949对答案的贡献为2,所以dfs里有个sum参数#include <bits/stdc++.h>#define ll long longusing namespace std;int len,dig[20];ll dp[20][20][20];ll dfs(int pos,int prev,int sum,bool limit){...
2018-05-21 20:57:58 437
原创 Beautiful numbers(数位dp)
题目链接 假设m有k个因子a1,a2,a3…ak 显然n%m%ai = n%ai#include <bits/stdc++.h>#define ll long longusing namespace std;int len,dig[20];const int mod = 2520;ll dp[19][2621][50];map<int,int>h;se...
2018-05-21 20:25:56 233
原创 吉哥系列故事——恨7不成妻(数位dp,求符合条件数的平方和)
(solve(r)+mod-solve(l-1))%mod输出时因为求区间值的mod,所以一定要注意防止出现负数 题目链接#include &lt;bits/stdc++.h&gt;#define LL long longusing namespace std;const int mod = 1e9+7;int a[20],len;LL w[20];struct node{...
2018-05-17 21:48:42 256
原创 hdu 4734 F(x) 数位DP
题目链接 简单的数位dp#include <bits/stdc++.h>#define LL long longusing namespace std;const int mod = 1e9+7;int dp[11][20000];int a[110];int len,maxx;int dfs(int pos,int prev,bool limit){ in...
2018-05-15 17:01:14 78
原创 不要62(数位dp)
不要62LL dfs(int pos,int prev,bool limit){ int i; if(pos==0) return 1; if(!limit&&dp[pos][prev]!=-1) return dp[pos][prev]; int up; LL ans=0; up = limit?a[pos]:9; ...
2018-05-14 20:29:35 117
原创 Gym - 101653R(数位dp)
题目链接 简单的数位dp入门 要求每一位都要不小于前一位核心代码如下:LL dfs(int pos,int prev,bool limit){ int i; if(pos==len) return 1; if(!limit&amp;&amp;dp[pos][prev]!=-1) return dp[pos][prev]; int up; LL a...
2018-05-14 20:11:01 202
原创 Poj 1182食物链(带权并查集)
[食物链](http://poj.org/problem?id=1182)Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 85904 Accepted: 25688Description 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 ...
2018-05-11 19:13:20 100
原创 二分图最大匹配
//匈牙利算法bool match(int u){ for(auto v:edge[u]){ if(vis[v])continue; vis[v] = 1; if(!from[v]||match(from[v])){ from[v] = u; return 1; } }...
2018-05-03 11:08:31 103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人