BZOJ1833 数位DP】的更多相关文章

数位DP随便搞搞. #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<ctime> #include<string> #include<iomanip> #include<algorithm> #include<map> using namesp…
//我是来看文章创建时间的= = 膜拜了一下蔡大神.... 人生第一道自己写的数位DP...好吧以前是看题解然后也不知道为什么就过了的>_< 虽然说现在还是只会裸题= = 数位DP介绍: http://wenku.baidu.com/link?url=9OS5Ybpw5wx00ahrH8ED2oyIlR1uWwrxT8N4pEg27GgBt2T2hLe4sd_h1rmpY7P0HmeHIEDw9h6_K98dPhhjoMhD2TpKcS8w1X8cC_dkPp_ 接下来是bzoj1833题目地…
bzoj1833 Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a.b,含义如上所述. Output 输出文件中包含一行10个整数,分别表示0-9在[a,b]中出现了多少次. 单独考虑每一位,数位dp,注意前导零 /************************************************************** Problem: 1833 User: walf…
BZOJ1833 ZJOI2010 count 数字计数 Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a.b,含义如上所述. Output 输出文件中包含一行10个整数,分别表示0-9在[a,b]中出现了多少次. Sample Input 1 99 Sample Output 9 20 20 20 20 20 20 20 20 20 HINT 30%的数据中,a<=b<=10^6:…
1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 2494  Solved: 1101[Submit][Status][Discuss] Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a.b,含义如上所述. Output 输出文件中包含一行10个整数,分别表示0-9在[a,b]中出现了多少次.…
题目: (传送门)[http://www.lydsy.com/JudgeOnline/problem.php?id=1833] 题解: 第一次接触数位dp,真的是恶心. 首先翻阅了很多很多一维dp,因为要处理前缀0,所以根本搞不懂. 查询了dalaolidaxin的博客,又查阅了资料: 初探数位dp 才完全弄懂这个题. 具体的,我们设 f[i][j][k]为考虑所有i位数,最高位为j数,之中k的数目. 我们可以得出方程: \[f[i][j][k] = \sum f[i-1][l][k] (j!=…
点此看题面 大致题意: 求在给定的两个正整数\(a\)和\(b\)中的所有整数中,\(0\sim9\)各出现了多少次. 数位\(DP\) 很显然,这是一道数位\(DP\)题. 我们可以用前缀和的思想,分别求出小于等于\(b\)时的答案和小于等于\(a-1\)时的答案,然后将两个答案相减,就可以得出\(a\sim b\)之间的答案了. 对于每一位,若设\(x\)为当前需要小于的数字(即\(b\)或\(a-1\))当前可以填的数字有两种情况: ①前面的数字已经保证当前数字小于\(x\).则这位数字可…
数位dp姿势一直很差啊:顺便庆祝一下1A Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a.b,含义如上所述. Output 输出文件中包含一行10个整数,分别表示0-9在[a,b]中出现了多少次. Sample Input 1 99 Sample Output 9 20 20 20 20 20 20 20 20 20 HINT 30%的数据中,a<=b<=10^6:100%的数据中,…
题目 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 输入格式 输入文件中仅包含一行两个整数a.b,含义如上所述. 输出格式 输出文件中包含一行10个整数,分别表示0-9在[a,b]中出现了多少次. 输入样例 1 99 输出样例 9 20 20 20 20 20 20 20 20 20 提示 30%的数据中,a<=b<=10^6: 100%的数据中,a<=b<=10^12. 题解 你以为我真的会写数位dp? 首先容斥一下,转化为求小于等于…
这个数位dp倒是没什么限制条件,只是需要在过程中把每个数字出现次数记录一下即可.记忆化返回时数学算出.框架还是套板子. #include <cstdio> #include <cmath> #include <cstring> #include <iostream> #include <algorithm> using namespace std; typedef long long ll; ll n, m, cnt1[], cnt2[], dp…