日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[ZJOI2010]数字计数

發(fā)布時間:2024/8/23 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [ZJOI2010]数字计数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一眼數(shù)位dp,但。。。調(diào)試了好久。。

/*** Problem:Count* Author:Shun Yao* Time:2013.5.31* Result:Accepted* Memo:DP*/#include <cstdio> #include <cstring>long long ans[10], s[15], tmp[10], f[15][10][10];void calc(long long b, char y) {long i, j, l, t, k;long long q;if (b == 0) {if (y)++ans[0];else--ans[0];return;}memset(s, 0, sizeof s);memset(f, 0, sizeof f);memset(tmp, 0, sizeof tmp);k = 0;while (b) {s[++k] = b % 10;b /= 10;}q = 1;for (i = 1; i <= k; ++i) {for (j = 0; j <= 9; ++j) {f[i][j][j] = q;for (l = 0; l <= 9; ++l)for (t = 0; t <= 9; ++t)f[i][j][l] += f[i - 1][t][l];}q *= 10;}if (k > 0) {for (j = 2; j <= k; ++j)tmp[s[j]] += s[1] + 1;for (l = 0; l <= 9; ++l)for (j = 0; j <= s[1]; ++j)tmp[l] += f[1][j][l];}q = 10;for (i = 2; i < k; ++i) {for (j = i + 1; j <= k; ++j)tmp[s[j]] += s[i] * q;for (l = 0; l <= 9; ++l)for (j = 0; j < s[i]; ++j)tmp[l] += f[i][j][l];q *= 10;}if (k > 2) {for (i = 0; i <= 9; ++i)tmp[i] += f[1][i][i];for (i = 2; i < k; ++i)for (j = 0; j <= 9; ++j)for (l = 1; l <= 9; ++l)tmp[j] += f[i][l][j];for (i = 1; i < s[k]; ++i)for (j = 0; j <= 9; ++j)tmp[j] += f[k][i][j];}for (i = 0; i <= 9; ++i)if (y)ans[i] = tmp[i];elseans[i] -= tmp[i]; }int main() {long i;long long a, b;freopen("count.in", "r", stdin);freopen("count.out", "w", stdout);scanf("%lld%lld", &a, &b);calc(b, 1);calc(a - 1, 0);printf("%lld", ans[0]);for (i = 1; i <= 9; ++i)printf(" %lld", ans[i]);fclose(stdin);fclose(stdout);return 0; }

?

轉(zhuǎn)載于:https://www.cnblogs.com/hsuppr/archive/2013/06/03/3115477.html

總結(jié)

以上是生活随笔為你收集整理的[ZJOI2010]数字计数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。