codeforces 1073E

题解:

考虑数位DP,状压出现过的数字集合S,f ( l , x , S , pz , lim )表示到第 l 位,数字为x, 数字集合为S ,是否为前导0,是否贴上界

然后同时定义g为该状态下的数字和,利用 10^(l-1) * f(l , x, S, pz, lim)计算该位的贡献,然后加上所有后继的g就行了

 1 #include<bits/stdc++.h>
 2 #define ll long long
 3 using namespace std;
 4 const ll mod = 998244353;
 5 ll l,r;
 6 int k;
 7 int num[22],cnt;
 8 ll f[22][10][1050][2][2],g[22][10][1050][2][2];
 9 bool vis[22][10][1050][2][2];
10 ll fastpow(ll a,ll p)
11 {
12     ll ans=1;
13     while(p)
14     {
15         if(p&1)ans=ans*a%mod;
16         a=a*a%mod;p>>=1;
17     }
18     return ans;
19 }
20 void dfs(int l,int x,int S,bool pz,bool lim)
21 {
22     if(vis[l][x][S][pz][lim])return;
23     vis[l][x][S][pz][lim]=1;
24     int t=0;
25     for(int i=0;i<10;++i)if(S&(1<<i))t++;
26     if(t>k)return;
27     if(l==1)
28     {
29         f[l][x][S][pz][lim]=1,g[l][x][S][pz][lim]=x;
30         return;
31     }
32     int up=(lim)?num[l-1]:9;
33     for(int i=0;i<=up;++i)
34     {
35         dfs(l-1,i,(pz&(!i))?0:(S|(1<<i)),pz&(!i),lim&(i==num[l-1]));
36         f[l][x][S][pz][lim]=(f[l][x][S][pz][lim]+f[l-1][i][(pz&(!i))?0:(S|(1<<i))][pz&(!i)][lim&(i==num[l-1])])%mod;
37         g[l][x][S][pz][lim]=(g[l][x][S][pz][lim]+g[l-1][i][(pz&(!i))?0:(S|(1<<i))][pz&(!i)][lim&(i==num[l-1])])%mod;
38     }
39     g[l][x][S][pz][lim]=(g[l][x][S][pz][lim]+f[l][x][S][pz][lim]*x%mod*fastpow(10,l-1)%mod)%mod;
40 }
41 ll solve(ll n)
42 {
43     if(!n)return 0; 
44     memset(num,0,sizeof(num));
45     memset(f,0,sizeof(f));
46     memset(g,0,sizeof(g));
47     memset(vis,0,sizeof(vis));
48     cnt=0;
49     ll x=n;
50     while(x)
51     {
52         num[++cnt]=x%10;
53         x/=10;
54     }
55     ll ans=0;
56     for(int i=0;i<=num[cnt];++i)
57     {
58         dfs(cnt,i,(i==0)?0:(1<<i),(i==0),(i==num[cnt]));
59         ans=(ans+g[cnt][i][(i==0)?0:(1<<i)][(i==0)][(i==num[cnt])])%mod;
60     }
61     return ans;
62 }
63 int main()
64 {
65     scanf("%I64d%I64d%d",&l,&r,&k);
66     printf("%I64d\n",(solve(r)-solve(l-1)+mod)%mod);
67     return 0;
68 }
View Code

 

转载于:https://www.cnblogs.com/uuzlove/p/10612406.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时空AI技术:深度强化学习在智能城市领域应时空AI技术:深度强化学习在智能城市领域应用介绍...

来源&#xff1a;海豚数据科学实验室作者&#xff1a;京东科技 时空AI团队深度强化学习是近年来热起来的一项技术。深度强化学习的控制与决策流程必须包含状态&#xff0c;动作&#xff0c;奖励是三要素。在建模过程中&#xff0c;智能体根据环境的当前状态信息输出动作作用于环…

牛客16500 珠心算测试

题目描述 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练&#xff0c;既能够开发智力&#xff0c;又能够为日常生活带来很多便利&#xff0c;因而在很多学校得到普及。 某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成…

读书笔记007:《伤寒论》- 手少阴心经

手少阴脉起心中&#xff0c;下膈直与小肠通&#xff0c;支者还从肺系走&#xff0c;直上喉咙系目瞳。直者上肺出腋下&#xff0c;臑后肘内少海从&#xff0c;臂内后廉抵掌中&#xff0c;锐骨之端注少冲。多气少血属此经&#xff0c;是动心脾痛难任&#xff0c;渴欲饮水咽干燥&a…

牛客16585 统计单词数

题目描述 一般的文本编辑器都有查找单词的功能&#xff0c;该功能可以快速定位特定单词在文章中的位置&#xff0c;有的还能统计出特定单词在文章中出现的次数。 现在&#xff0c;请你编程实现这一功能&#xff0c;具体要求是&#xff1a;给定一个单词&#xff0c;请你输出它在…

牛客21312 神秘餐馆

题目描述 一家神秘餐馆准备开放N天&#xff0c;牛牛 和 牛妹听到这个消息后&#xff0c;准备尽可能多的一起去吃午饭 餐馆有M道菜&#xff0c;牛牛和牛妹每次来只允许点一道菜&#xff0c;如果在第i天买了第j道菜 那么第i7天也只能买第j道菜 第i天第j道菜的价格为price[i][j] …

牛客21297 手机号码

题目描述 给你一个整数n表示手机号码的位数 再给你m个字符串表示保留的号码,比如911 110 120等 问你一共有多少的手机号码不以保留号码开头 n, m map(int, input().split()) s [] for _ in range(m):s.append(input())sum pow(10, n) num 0for i in range(m):flag Falsefo…

牛客16785 Cantor表

先找到第N个数在第几行第几列&#xff0c;然后根据规律进行计算 N int(input())t 1 while N-t > 0:N N-tt 1if t%2 0:print("%d/%d"%(N,t-N1)) else:print("%d/%d"%(t-N1,N))

Echarts富文本rich及格式化工具formatter的使用

Echarts官网上说&#xff0c;ECharts&#xff0c;一个使用 JavaScript 实现的开源可视化库&#xff0c;可以流畅的运行在 PC 和移动设备上&#xff0c;兼容当前绝大部分浏览器&#xff08;IE8/9/10/11&#xff0c;Chrome&#xff0c;Firefox&#xff0c;Safari等&#xff09;&a…

国拨经费约31.48亿!科技部发布科技创新2030 —“脑科学与类脑研究”重大项目2021年度项目申报指南...

来源&#xff1a;科技部科技部关于发布科技创新 2030 —“脑科学与类脑研究”重大项目 2021年度项目申报指南的通知国科发资〔2021〕265号各省、自治区、直辖市及计划单列市科技厅&#xff08;委、局&#xff09;&#xff0c;新疆生产建设兵团科技局&#xff0c;国务院各有关部…

牛客16662 津津的储蓄计划

题目描述 津津的零花钱一直都是自己管理。每个月的月初妈妈给津津300元钱&#xff0c;津津会预算这个月的花销&#xff0c;并且总能做到实际花销和预算的相同。 为了让津津学习如何储蓄&#xff0c;妈妈提出&#xff0c;津津可以随时把整百的钱存在她那里&#xff0c;到了年末她…

Hinton获2021迪克森科学奖:他改变了AI,改变了世界

来源&#xff1a;AI科技评论作者&#xff1a;维克多编辑&#xff1a;青暮据卡内基梅隆大学&#xff08;CMU&#xff09;官方消息&#xff0c;Geoffrey Hinton 获得了2021年的迪克森科学奖&#xff08;The Dickson Prize in Science&#xff09;。此奖项设立于1969年&#xff0c…

牛客21783 牛牛的星际旅行

题目描述 在一个遥远的星球上&#xff0c;每周有N天&#xff0c;牛牛去了这个星球旅游&#xff0c;他恰好只带了N件不同的衣服&#xff0c;编号为1到N 每一天他会穿其中的某一件衣服&#xff0c;一周之内不能穿同一件衣服两次&#xff0c;而且假如某件衣服是在第x天穿的&#x…

国拨经费约31.48亿!科技部发布科技创新2030 —“脑科学与类脑研究”重大项目2021年度项目申报指南

来源&#xff1a;科技部科技部关于发布科技创新 2030 —“脑科学与类脑研究”重大项目 2021年度项目申报指南的通知国科发资〔2021〕265号各省、自治区、直辖市及计划单列市科技厅&#xff08;委、局&#xff09;&#xff0c;新疆生产建设兵团科技局&#xff0c;国务院各有关部…

牛客21805 字符串编码与解码

链接&#xff1a;https://ac.nowcoder.com/acm/problem/21805 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述 给你两个长度相同的字符串a&#xff…

数学有什么用处?看完后恍然大悟!

来源&#xff1a;算法数学俱乐部编辑&#xff1a;nhyilin高等数学有什么用&#xff1f;很多人问过我这个问题。其实大多数人在问这个问题的时候&#xff0c;心里已经预设了否定的答案。确实&#xff0c;对于大多数人来说&#xff0c;已经发展到了连数字都基本很少用了的一些高等…

牛客16589 机器翻译

链接&#xff1a;https://ac.nowcoder.com/acm/problem/16589 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format: %lld 题目描述 小晨的电脑上安装了一个机器翻译软…

2021年传感器行业的机遇与风险 | 深度思考

来源&#xff1a;蓝焱资本2021年已过半&#xff0c;物联网时代已经到来。毫无疑问&#xff0c;万物联网的背后是万物数字化&#xff0c;而数字化万物的核心就是传感器。传感器这个概念虽然已经存在多年&#xff0c;但它依旧是个活力无限的领域。随着物联网概念的火热&#xff0…

牛客16654 谁拿了最多奖学金

链接&#xff1a;https://ac.nowcoder.com/acm/problem/16654 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format: %lld 题目描述 某校的惯例是在每学期的期末考试之…

Flink应用场景

本文为《Flink大数据项目实战》学习笔记&#xff0c;想通过视频系统学习Flink这个最火爆的大数据计算框架的同学&#xff0c;推荐学习课程&#xff1a; Flink大数据项目实战&#xff1a;http://t.cn/EJtKhaz 主要应用场景有三类&#xff1a; 1.Event-driven Applications【事件…

未来,中国空间站将成为怎样的“太空科研站”?

来源&#xff1a;中国科学报作者&#xff1a;赵维杰&#xff0c;NSR新闻编辑9月17日13点34分&#xff0c;神舟十二号载人飞船返回舱在东风着陆场顺利着陆。航天员聂海胜、刘伯明、汤洪波状态良好&#xff0c;我国空间站阶段首次载人飞行任务取得圆满成功。从6月17日升空至今&am…