
ACM/ICPC_数位dp
just_sort
Acdream.
展开
-
SWUST OJ 1804 二进制
Description对于一串自然数序列0,1,2,3,4,5,6......,n。冰神给了你一个任务,就是求,0到n中,所有自然数的二进制码中的‘1’的个数举个例子:当n=5的时候十进制数 二进制数-------------------------0 01 12原创 2016-04-08 10:48:06 · 1020 阅读 · 0 评论 -
2016 ACM/ICPC Asia Regional Shenyang Online HDU 5898 odd-even number
odd-even number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 343 Accepted Submission(s): 186Problem DescriptionFor a number,if原创 2016-09-19 20:59:28 · 880 阅读 · 0 评论 -
Educational Codeforces Round 8 D. Magic Numbers 数位DP
题目链接:http://codeforces.com/contest/628/problem/D 题意:现在定义d-magic数字,就是一个没有前导0的数,d恰好仅出现在这个数的偶数位置。然后现在给你m,d,a,b。问你在[a,b]内,是m的倍数,且是d-magic的数字有多少个答案需要 mod 1e9+7解法: 裸数位DP,dp[i][mod]表示从高到低i位,且模m余mod的magic nu原创 2017-03-28 17:02:33 · 464 阅读 · 0 评论 -
hihocoder #1301 : 筑地市场 二分+数位dp
题目链接:这里 题意: Description筑地市场是位于日本东京都中央区筑地的公营批发市场,为东京都政府设置的中央批发市场之一,亦是日本最大的鱼市场。其规模之大与知名度之广,不只是东京,更是日本首屈一指的批发市场。全球百分之五十的金枪鱼,从世界的各地被运往这里,在每天的清晨,进行着繁忙的拍卖,它们是寿司中最不可或缺的食材,如何能够买到上等的金枪鱼,成为了每家寿司店都关注的大事。当地的鱼贩,会原创 2017-03-23 11:11:31 · 468 阅读 · 0 评论 -
SPOJ 10606 Balanced Numbers 数位DP
题目链接:https://vjudge.net/problem/SPOJ-BALNUM题意:个数被称为是平衡的数当且仅当对于所有出现过的数位,偶数出现奇数次,奇数出现偶数次。给定A,B,请统计出[A,B]内所有平衡的数的个数。解法:注意,这里的偶数是指出现过的数,并且不能计算前导零。对于每一个数有三种状态:0:这个数还木有出现过。1:这个数出现过奇数次。2:这个数出现过偶数次。 所以直接用一个三进制原创 2017-05-10 18:53:06 · 437 阅读 · 0 评论 -
BZOJ 3329: Xorequ 数位DP+矩阵快速幂
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3329解法:x xor 2x=3x(与x xor 3x=2x等价)求满足等式且小于n的x的个数,与满足等式小于2n的数的个数。因为异或是不进位的二进制加法,那么因为结果正好和加法相同,那么说明x在二进制上没有相邻的1。那么简单的数位DP就可以求出满足这个的答案原创 2017-05-11 10:16:37 · 771 阅读 · 0 评论 -
BZOJ 3679 数位DP,离散化
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3679解法: 比较裸的数位DP,dp[i][j][k]表示前i位,当前位数字为j,乘积为k(k保存的是离散化之后的值),然后按照数位DP的做法去写就可以了。///BZOJ 3679///数位DP,离散化#include using namespace st原创 2017-05-10 20:20:07 · 451 阅读 · 0 评论 -
BZOJ 1833: [ZJOI2010]count 数字计数 数位DP,处理前导0
Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次。 Input 输入文件中仅包含一行两个整数a、b,含义如上所述。 Output 输出文件中包含一行10个整数,分别表示0-9在[a,b]中出现了多少次。 Sample Input 1 99Sample Output 9 20 20 20 20 20 20原创 2017-05-10 16:09:28 · 486 阅读 · 0 评论 -
弱校联萌 BNU I. Increasing or Decreasing
【题意】求L,R区间里面严格递增或者严格递减的数的个数。【解题方法】数位DP。正解给了两种方法,我直接用数位DP水过去了。【代码君】////Created by just_sort 2016/10/6//Copyright (c) 2016 just_sort.All Rights Reserved//#include #include #include #include原创 2016-10-06 16:36:53 · 706 阅读 · 0 评论 -
SPOJ BALNUM (数位DP)
【题意】求出现的数字,所有偶数出现奇数次,所有奇数出现偶数次的个数。【解题方法】用一个三进制表示每个数字出现的状态,1表示出现过奇数次,0表示从未出现过,1表示出现过偶数次。dp[l][s]长度为i,s代表当前状态。接下来就是数位DP经典套路了。【AC 代码】#include #include #include #include using namespace std;typ原创 2016-08-13 20:11:10 · 798 阅读 · 0 评论 -
HDU.2089 & HDU.3555
【HDU.2089 题意】不吉利的数字为所有含有4或62的号码。例如: 62315 73418 88914 都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列。 你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的士车上牌照了。【解题方法】数位DP。dp[i][j]代表当前i位并且首位为j的最大方案!【AC原创 2016-07-17 14:32:59 · 574 阅读 · 0 评论 -
数位DP学习 数位DP板子理解 CF55D解题报告
【题意】先理解一下数位DP的模板,下面解释的非常清楚了。// pos = 当前处理的位置(一般从高位到低位)// pre = 上一个位的数字(更高的那一位)// status = 要达到的状态,如果为1则可以认为找到了答案,到时候用来返回,// 给计数器+1。// limit = 是否受限,也即当前处理这位能否随便取值。如56原创 2016-08-10 11:28:16 · 1145 阅读 · 0 评论 -
HDU 4352 XHXJ's LIS(数位DP)
【题意】问区间[L, R]里面满足 LIS == k的数字个数。【解题方法】LIS运用动态规划可以在nlogn的时间复杂度解决,此略。 因为最多只有0-9十个数字,因此可以预处理。 .sta为LIS的状态,siz[sta]中保存LIS的长度(即二进制中1的个数),nex[sta][i]为在sta中插入 数字i之后的状态。 dp[l][sta]原创 2016-08-10 15:23:17 · 545 阅读 · 0 评论 -
HDU 2089 不要62 && HDU 3555 Bomb (数位DP)
【题意】【L,R】中不含4或62的数字的个数。【解题方法】数位DP,板子题。#include #include #include #include using namespace std;int digit[10],dp[10][2],vis[10][2];int dfs(int l,int six,int jud){ if(l==0) return 1; if原创 2016-08-10 15:50:32 · 320 阅读 · 0 评论 -
Codeforences #287 div2 D. The Maths Lecture
【题意】N【解题方法】裸数位DP了。dp[i][mod][ok]表示从第n位到第i位,模数为mod,是否含有后缀大于0并且mod=0的数字数。添加一个数的时候是(d*10^i+mod)%k,这里需要注意。【AC 代码】#include using namespace std;const int maxn=1010;int dp[maxn][100][2];//从第n位原创 2016-08-10 20:47:46 · 356 阅读 · 0 评论 -
HDU 3652 裸数位DP
【题意】【1,n】里面还有数字13并且是13的倍数的数字的个数。【解题方法】数位DP裸题。dp[l][mod][iso][has] :l为数字长度,(mod为当前数字对13的取余值,iso为是否存在, has为最后一位是否为数字1。 int dfs(int l,int mod,bool iso,bool has,bool jud) :jud判断是否为边界值。【AC 代码】原创 2016-08-12 21:32:02 · 723 阅读 · 0 评论 -
数位DP专题小结--by sgx 数位DP专题小结--by sgx
数位DP,一句话概括,就是在一个给定区间内求出满足某中奇葩条件的数字个数,这真是奇葩题目,但是总体写起来又有一定规律性。主要可以分为以下几个步骤:确定主体框架,确定一个大方向,想想该如何设计状态;下面基本就是模板,直接DFS就行了,一位一位处理,这也是他叫按位DP的原因。数位DP代码一般都很短,不过效率挺好,解决一些竞赛中出现的问题非常有用 。如果看了这部分 ,你感觉还转载 2017-08-14 19:57:51 · 570 阅读 · 0 评论