luogu3107
相对较为模板化的代码 f[i][j][bo1][bo2]记录到第i位,数字num出现了x次(j初始为20,若当前数字不为num,j++;否则j--;最后只要记录j<=20的总和)bo1和bo2就很简单了,上界和前导零
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
using namespace std;
#define int long long
string l,r;
int f[][][][],kkk[];
inline int DP(int le,int num1,int num2)
{
int re=,i,bo1,bo2,j,k,bo,pp; memset(f,,sizeof f); f[][][][]=;
//bo1:上界 bo2:前导零
for(i=;i<le;i++)
{
for(j=;j<=;j++)
{
for(bo1=;bo1<;bo1++)
{
for(bo2=;bo2<;bo2++)
{
if(f[i][j][bo1][bo2]==)continue;
for(k=;k<=;k++)
{
if((num2!=-&&(k!=||!bo2)&&k!=num1&&k!=num2)||(bo1&&k>kkk[i]))continue; pp=j;
if(!bo2||k!=)
{
if(num2==-)
{
if(k==num1)pp--;else pp++;
}
else
{
if(k==num1)pp--;else if(k==num2)pp++;
}
}f[i+][pp][bo1&(k==kkk[i])][bo2&(k==)]+=f[i][j][bo1][bo2];
}
}
}
}
}
if(num2==-)
{
for(i=;i<=;i++)for(j=;j<;j++)re+=f[le][i][j][];
}else for(i=;i<;i++)re+=f[le][][i][];
return re;
}
inline int solve(string s)
{
int re=,i,j,le=s.size();
for(i=;i<le;i++) kkk[i]=s[i]-'';
for(i=;i<=;i++) re+=DP(le,i,-);
for(i=;i<;i++)
{
for(j=i+;j<=;j++)re-=DP(le,i,j);
}return re;
}
signed main()
{
int i; cin>>l>>r;
for(i=l.size()-;i>=;i--)
{
if(l[i]=='')l[i]='';else {l[i]--;break;}
}printf("%lld\n",solve(r)-solve(l));
}
luogu3107的更多相关文章
随机推荐
- 【Codeforces 464D】World of Darkraft - 2
Codeforces 464 D 首先我们知道这K个装备是互不干扰的,就是说如果一个装备升级了或者卖掉了,不会对其它装备的挣到的钱产生任何影响.所以我们就考虑单独处理某一个装备挣到的钱. 那么就设\( ...
- 【Codeforces 1105E】Helping Hiasat
Codeforces 1105 E 题意:给你m个事件,每个事件可能是以下两种之一: \(1\),代表此时可以更改用户名 \(2\) \(s\),代表\(s\)来查看是否用户名与其名字相符 一共有\( ...
- android 工具大集合
http://www.androiddevtools.cn/ http://www.sourcetreeapp.com/
- 常见camera测试卡
常见camera测试卡 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/luckywang1103/article/details/87166 ...
- 前端知识点总结(html+css)部分
HTML 1.一套规则,浏览器认识的规则. 2.开发者: 学习Html规则 开发后台程序: - 写Html文件(充当模板的作用) ****** - 数据库获取数据,然后替换到html文件的指定位置(W ...
- Luogu4338 ZJOI2018 历史 LCT、贪心
传送门 题意:在$N$个点的$LCT$中,最开始每条边的虚实不定,给出每一个点的$access$次数,求一种$access$方案使得每条边的虚实变换次数之和最大,需要支持动态增加某个点的$access ...
- 【iOS】build diff: /../Podfile.lock: No such file or directory
Github 上下载的开源项目,在 Xcode 打开运行后报了错,如图所示: 解决方法: 在工程设置中的 Build Phases 下删除 Check Pods Manifest.lock 及 Cop ...
- SpringMVC之单/多文件上传
1.准备jar包(图标所指必备包,其他按情况导入) 2.项目结构 3.SingleController.java(控制器代码单文件和多文件) package com.wt.uplaod; import ...
- ionic Cannot find module 'internal/fs'问题
最近升级了node.js到7.3.0之后,在用cordoval add plugin XXX 命令安装插件的时候报"Cannot find module 'internal/fs'" ...
- Perhaps you are running on a JRE rather than a JDK
在Eclipse中跑maven项目时,出现上面的问题: 1.有可能你的环境变量配置是在jre上面的,所以你要检查一下你配置文件,PATH和CLASSPATH都要检查 2.eclipse默认是跑在jre ...