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的更多相关文章
随机推荐
- iScroll.js插件使用方法
iScroll.js 用法参考 (share) 分享是传播.学习知识最好的方法 以下这篇文章是iScroll.js官网的中文翻译,尽管自己英文不好,但觉得原作者们翻译的这个资料还是可以的,基本用法介绍 ...
- virtualbox - 2台虚拟机之间通过ssh互访
virtualbox 5.2.12 一台虚拟机是Debian 9,另一台是Ubuntu 18.04. 注意: 2台虚拟机系统里要安装ssh ! sudo apt install ssh 然后在virt ...
- VS2013开发上位机并调用MSCcommm控件的方式
此文章适合VC++串口通信入门 一.页面布局及添加控件 1, 安装好vs2010如图 2, 新建一个基于VC++的MFC项目comm 注意:点击ok,然后next,这时候要将application t ...
- React-性能优化pureComponent
每当store里有数据更新时,render()函数就会执行,有时候store的更新数据与本组件并没有关系,render()不必执行. 我们可以用shouldComponentUpdate来优化组件. ...
- DeskMini无传统机械键盘与鼠标接口的情况下使用U盘安装系统经验总结
总结安装纯净版Win7旗舰版系统安装过程所解决的问题要点: 1:UEFI引导启动的实现. 2:使用Dism++实现系统的安装. 3:使用Dism++解决新主板在安装系统过程中不能使用USB键盘和鼠标的 ...
- Zookeeper-基本概念
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务.它是一个典型的分布式数据一致性的解决方案,分布式应用可以基于它实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知.集群管理 ...
- NOI Day1线上同步赛梦游记
Preface 第一次体验NOI,虽然不是正式选手,但是打打同步赛还是挺涨姿势的,也算是体验了一把. Day1很爆炸,一方面是NOI题目的难度高于自身的水平,另一方面也出现了比较大的失误,T1一个数组 ...
- Luogu P1966 火柴排队
这还是一道比较简单的题目,稍微想一下就可以解决.终于有NOIP难度的题目了 首先我们看那个∑(ai-bi)^2的式子,发现这个的最小值就是排序不等式 所以我们只需要改变第一组火柴的顺序,使它和第二组火 ...
- FreeRTOS 任务与调度器(1)
前言: Task.c和Task.h文件内是FreeRTOS的核心内容,所有任务和调度器相关的API函数都在这个文件中,它包括下图这些内容FreeRTOS文件如下: Task.c和Task.h文件内是F ...
- WPF制作带明细的环形图表
效果 明细用Popup实现的,录gif时,Popup显示不出来,不知道为什么,所以静态图凑合看吧 大体思路 图表使用Arc+Popup实现 图表分为两部分,一是环形部分,一是标注的明细部分. 环形部分 ...