bnuoj 4359无爱编号(数位dp)
来源:互联网 发布:linux daemon.log 编辑:程序博客网 时间:2024/05/16 19:00
众所周知,拉手网有许多客户,由于客户数量实在过于庞大,因此拉手网希望为每位客户进行编号以便更好的为客户服务。每个编号为一个由‘0’~‘9’组成的N位数字。考虑到很多人不喜欢数字4和数字13,因此我们称包含4或包含13的编号为无爱编号,如134、84、121351都是无爱编号,123则不是无爱编号。现在我们希望知道,所有N位的编号中,刨除掉无爱编号后剩余的编号数量。这个编号数量可能很大,我们只要知道结果的最后8位即可。
Input
输入的第一行是一个整数T,表示数据组数。
以下T行每行一个整数N(1≤ N ≤1000000),表示编号的位数。
Output
对于每组数据,输出一个8位整数表示编号数量的最后8位。若编号数量不足8位则用前导零填充。
Sample Input
212
Sample Output
0000000900000080
Source
第九届北京师范大学程序设计竞赛决赛
Author
temperlsyer
#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>#include <string>#include <cmath>#include <set>#include <queue>#include <algorithm>#include <vector>#include <stack>const double PI = acos(-1.0);using namespace std;#define esp 1e-8const int inf = 99999999;const int mod = 100000000;//freopen("in.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取//freopen("out.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中long long dp[1000005][3];//dp[i][0] 为长度<=i的合法个数//dp[i][1] 为长度<=i,首位为3的合法个数//dp[i][2] 为长度<=i的非法个数void init(){memset(dp, 0, sizeof(dp));dp[0][0] = 1;for (int i = 1; i <= 1000001; ++i){dp[i][0] = (dp[i - 1][0] * 9 - dp[i - 1][1] ) % mod;dp[i][1] = dp[i - 1][0] % mod;dp[i][2] = (dp[i - 1][0] + dp[i - 1][1] + dp[i - 1][2] * 10) % mod;}}int main(){int t, n;init();scanf("%d", &t);while (t--){scanf("%d", &n);printf("%08lld\n", (dp[n][0] + mod)% mod);//注意先加mod再取余,防止变负;}}
0 0
- bnuoj 4359无爱编号(数位dp)
- 数位dp无前导零
- BNUOJ 34978 汉诺塔 (概率dp)
- bnuoj Andrew and the Strings(dp)
- bnuoj 24250 Binary Operations (概率DP)
- BNUOJ 51280 组队活动(dp + 计数)
- BNUOJ-33687-Beautiful Spacing(二分+DP)
- BNUOJ 27935 我爱背单词(FFT)
- bnu 4359(数位dp)
- hdu3652(数位DP)
- hdu3709(数位dp)
- codeforces55D(数位DP)
- hdu4734(数位DP)
- ural1057(数位dp)
- lightoj1205(数位DP)
- hdu4352(数位DP)
- hdu4507(数位DP)
- hdu4734(数位DP)
- CJ30的函数
- Android Studio 快捷键
- C++ List模板
- 在书写高效 CSS 时会有哪些问题需要考虑?
- 享元模式:
- bnuoj 4359无爱编号(数位dp)
- 利用属性动画实现动态菜单的效果
- asp.net webForm中的Repeater的用法
- <%%>与<scriptrunat=server>,<%=%>与<%#%>的区别
- 一起来啃犀牛书:事件处理
- iOS NSOperation/Queue
- mysql中char与varchar的区别分析
- Visio画ER图
- java多线程编程