下载代码的网站,网页效果,阿里云oss wordpress,wordpress 加载时间第一道数位dp#xff0c;属于基础模板#xff0c;又自卑小时没学好数数了#xff0c;只是不清楚为什么大家的dp定义都是相同的#xff0c;很显然么#xff0c;难道我写的是怪胎。。。 /*
ID:esxgx1
LANG:C
PROG:hdu3555
*/
#include cstdio
#include cstring属于基础模板又自卑小时没学好数数了只是不清楚为什么大家的dp定义都是相同的很显然么难道我写的是怪胎。。。 /*
ID:esxgx1
LANG:C
PROG:hdu3555
*/
#include cstdio
#include cstring
#include iostream
#include algorithm
using namespace std;#define LN 21
unsigned long long dp[LN 1][3];void work(int ln)
{dp[0][0] 1;for(int i1; iln; i) {dp[i][0] dp[i-1][0] * 9 dp[i-1][1] * 8; // 无49开头无9dp[i][1] dp[i-1][0] dp[i-1][1]; // 无49, 开头是9dp[i][2] dp[i-1][2] * 10 dp[i-1][1]; // 有49
// printf(i%d, %I64u %I64u %I64u\n, i, dp[i][0], dp[i][1], dp[i][2]);}
}unsigned long long solve(int i, unsigned long long N, int extra)
{unsigned long long prefix N/10;int curr N % 10;int extra0 extra;unsigned long long rslt N % 10 * dp[i-1][2];if (curr 9 prefix % 10 4) extra 1;if (prefix) rslt solve(i1, prefix, extra0);if (extra0) {rslt curr * (dp[i-1][0] dp[i-1][1]);extra 1;} else if (curr 4) rslt dp[i-1][1];return rslt;
}int main(void)
{#ifndef ONLINE_JUDGEfreopen(in.txt, r, stdin);#endifint T;cin T;if (T) {work(LN);do {unsigned long long N;cin N;int extra 0;cout solve(1, N, extra) (extra ? 1 : 0) endl;--T;}while(T);}return 0;
} 2014-07-31 20:55:00Accepted3555156MS348K1257 BG转载于:https://www.cnblogs.com/e0e1e/p/hdu_3555.html