bzoj1833
http://www.lydsy.com/JudgeOnline/problem.php?id=1833
2.5个小时就花在这上面了。。。
水到200题了。。。然并卵,天天做水题有什么前途。。。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll A, B;
ll dp[][][], a[], ret[], ans[], bin[];
void solve(ll n, int f)
{
int len = ; ll t = n; memset(a, , sizeof(a)); memset(ret, , sizeof(ret));
while(n) a[++len] = n % , n /= ;
for(int i = ; i < len; ++i)
for(int j = ; j <= ; ++j)
for(int k = ; k <= ; ++k) ret[k] += dp[i][j][k];
// for(int i = 1; i < a[len]; ++i)
// for(int j = 0; j <= 9; ++j) ret[j] += dp[len][i][j];
for(int i = len; i; --i)
{
for(int j = ; j < a[i]; ++j)
{
if(!j && i == len) continue;
for(int k = ; k <= ; ++k) ret[k] += dp[i][j][k];
}
ret[a[i]] += t % bin[i] + ;
}
for(int i = ; i <= ; ++i) ans[i] += f * ret[i];
}
int main()
{
// freopen("countzj.in", "r", stdin);
// freopen("countzj.out", "w", stdout);
bin[] = 1ll; for(int i = ; i <= ; ++i) bin[i] = bin[i - ] * 10ll;
for(int i = ; i <= ; ++i) dp[][i][i] = ;
for(int i = ; i <= ; ++i)
for(int j = ; j <= ; ++j)
for(int k = ; k <= ; ++k)
for(int l = ; l <= ; ++l) dp[i][j][l] += dp[i - ][k][l] + (ll)(j == l) * bin[i - ];
scanf("%lld%lld", &A, &B);
solve(B, ); solve(A - , -);
for(int i = ; i <= ; ++i) printf("%lld ", ans[i]);
printf("%lld\n", ans[]);
// fclose(stdin); fclose(stdout);
return ;
}
bzoj1833的更多相关文章
- [BZOJ1833][ZJOI2010]count 数字计数
		[BZOJ1833][ZJOI2010]count 数字计数 试题描述 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 输入 输入文件中仅包含一行两个整数a ... 
- 数位DP入门:(bzoj1833+3209)
		//我是来看文章创建时间的= = 膜拜了一下蔡大神.... 人生第一道自己写的数位DP...好吧以前是看题解然后也不知道为什么就过了的>_< 虽然说现在还是只会裸题= = 数位DP介绍: ... 
- bzoj1833: [ZJOI2010]count 数字计数  数位dp
		bzoj1833 Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a.b,含义如上所述. O ... 
- 【bzoj1833】 ZJOI2010—count 数字计数
		http://www.lydsy.com/JudgeOnline/problem.php?id=1833 (题目链接) 题意 求在${[a,b]}$范围内整数中,每个数码出现的次数. Solution ... 
- BZOJ1833 ZJOI2010 count 数字计数 【数位DP】
		BZOJ1833 ZJOI2010 count 数字计数 Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包 ... 
- bzoj1833: [ZJOI2010]count 数字计数 && codevs1359 数字计数
		bzoj1833 codevs1359 这道题也是道数位dp 因为0有前导0这一说卡了很久 最后发现用所有位数减1~9的位数就okay.....orzczl大爷 其他就跟51nod那道统计1出现次数一 ... 
- [BZOJ1833][ZJOI2010]Count数字计数(DP)
		数位DP学傻了,怎么写最后都写不下去了. 这题严格上来说应该不属于数位DP?只是普通DP加上一些统计上的判断吧. 首先复杂度只与数的位数$\omega$有关,所以怎么挥霍都不会超. f[i][j][k ... 
- LG2602/BZOJ1833 「ZJOI2010」数字计数  数位DP
		问题描述 LG2602 BZOJ1833 题解 数位\(\mathrm{DP}\)板子题. 注意限制位数.前导零. \([a,b]=[1,b]-[1,a-1]\) \(\mathrm{Code}\) ... 
- 【BZOJ-1833】count数字计数      数位DP
		1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec Memory Limit: 64 MBSubmit: 2494 Solved: 1101[Submit][ ... 
- bzoj1833 digit
		这道题其实挺水,只是写的时候需要想清楚.我的方法是: 1.将[a,b]转化为[0,b+1)-[0,a) 2.预处理出非0的v在区间[0,10^p)出现次数以及0在区间[0,10^p)出现数 3.将一个 ... 
随机推荐
- java的标识符和关键词
			1.1.1 标识符 可以简单的理解为一个名字.在Java中,我们需要标识代码的很多元素,包括类名.方法.字段.变量.包名等.我们选择的名称就称为标识符,并且遵循以下规则: 标识符可以由字母.数字. ... 
- 牛客多校Round 6
			Solved:3 rank:156 J. Heritage of skywalker 学习一下nth_element 可以o (n)的找出前多少大的元素 #include <bits/stdc+ ... 
- 总结struts2 iterator status的用法
			1:#status.odd 是否奇数行 2:#status.count 当前行数 3:#status.index 当前行的序号,从0开始『#status.count=#status.index+1』 ... 
- node-sass安装失败的解决方案
			这是一个老生常谈的问题了,网上有很多解决方法,找一个自己觉得合适的才是最重要的...... 执行以下命令即可: npm config set sass_binary_site https://npm. ... 
- python_ 学习笔记(运算符)
			python的运算符基本和C语言一致,以下说一些不一样的! 算术运算符 **:代表乘方,对应也有**=: //:代表商向下取整,对应也有//=: 逻辑运算符 and or not 位运算符 :& ... 
- linux的ssh相关指令
			1.安装ssh apt-get install openssh-server 2.备份ssh的配置文件 sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_confi ... 
- XML中的特殊(保留)字符数据
			XML中的特殊(保留)字符数据 制作人:全心全意 在XML文档中,有些字符会被XML解析器当作标记进行处理.如果希望把这些字符作为普通字符处理,就需要使用实体引用或CDATA段. 使用实体引用 为了避 ... 
- 微信小程序-template模板
			============================= 构建template模板 ============================= 1.分析得出共为 ... 
- Set   Map    List   Iterator
			Set和Map类似,也是一组key的集合,但不存储value.由于key不能重复,所以,在Set中,没有重复的key. Map放没有顺序的键值对,所有键值对 — 参见 entrySet(),所有键 — ... 
- zoj  1008   暴力枚举求解dfs+优化
			/* 现将相同的合并计数. 再枚举判断是否符合当cou==n*n是符合就退出 */ #include<stdio.h> #include<string.h> #define N ... 
