hdu 3886 Final Kichiku “Lanlanshu” 数位DP
思路:
dp[i][j][k]:满足在字符串的j位,前一位数字是k。
代码如下:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#define ll long long
#define M 100000000
using namespace std;
char str[],a[],b[];
int len,bit[],dp[][][];
bool ok(int i,int u,int v)
{
if(str[i]=='/') return u<v;
if(str[i]=='-') return u==v;
if(str[i]=='\\') return u>v;
}
int dfs(int pos,int j,int pre,bool h,bool f)
{
if(pos==-) return j==len;
if(!f&&dp[pos][j][pre]!=-) return dp[pos][j][pre];
int ans=;
int e=f?bit[pos]:;
for(int i=;i<=e;i++){
if(h) ans+=dfs(pos-,j,i,h&&i==,f&&i==e);
else if(j<len&&ok(j,pre,i)) ans+=dfs(pos-,j+,i,h,f&&i==e);
else if(j>&&ok(j-,pre,i)) ans+=dfs(pos-,j,i,h,f&&i==e);
ans%=M;
}
if(!f) dp[pos][j][pre]=ans;
return ans;
}
int solve(char an[],bool f)
{
int m=,i,j=,le=strlen(an);
while(an[j]=='') j++;
for(i=le-;i>=j;i--) bit[m++]=an[i]-'';
if(f&&m>){
for(i=;i<m;i++){
if(bit[i]){
bit[i]--;
break;
}
else bit[i]=;
}
}
return dfs(m-,,,,);
}
int main()
{
int i,j,k,m,n;
while(scanf("%s",str)!=EOF){
len=strlen(str);
scanf("%s%s",a,b);
memset(dp,-,sizeof(dp));
printf("%08d\n",(solve(b,)-solve(a,)+M)%M);
}
return ;
}
hdu 3886 Final Kichiku “Lanlanshu” 数位DP的更多相关文章
- hdu_3886_Final Kichiku “Lanlanshu”(数位DP)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3886 题意:这题的题意有点晦涩难懂,大概意思就是给你一个区间,让你找一些满足递增递减条件的数,举个列: ...
- hdu 4352 XHXJ's LIS 数位dp+状态压缩
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4352 XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others ...
- HDU 4507 (鬼畜级别的数位DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4507 题目大意:求指定范围内与7不沾边的所有数的平方和.结果要mod 10^9+7(鬼畜の元凶) 解题 ...
- HDU 5787 K-wolf Number (数位DP)
K-wolf Number 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5787 Description Alice thinks an integ ...
- 【HDOJ】3386 Final Kichiku “Lanlanshu”
数位DP.需要注意的是需要特殊处理前导0,另外连续的==匹配,不要计重了,尽量贪心的匹配掉. /* 3886 */ #include <iostream> #include <sst ...
- 【HDU 3652】 B-number (数位DP)
B-number Problem Description A wqb-number, or B-number for short, is a non-negative integer whose de ...
- HDU 5787 K-wolf Number(数位DP)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5787 [题目大意] 求区间[L,R]内十进制数相邻k位之间不相同的数字的个数. [题解] 很显然的 ...
- 2017"百度之星"程序设计大赛 - 复赛1005&&HDU 6148 Valley Numer【数位dp】
Valley Numer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- HDU 4352 XHXJ's LIS 数位dp lis
目录 题目链接 题解 代码 题目链接 HDU 4352 XHXJ's LIS 题解 对于lis求的过程 对一个数列,都可以用nlogn的方法来的到它的一个可行lis 对这个logn的方法求解lis时用 ...
随机推荐
- IOS中GPS定位偏移纠正(适用于Google地图)
在这个神奇的国度里,我们总得学习一些有中国特色的东东,例如“火星坐标”.也许有人还不知道这是什么玩意,我就简要介绍一下吧. 如果你有带GPS模块的智能手机,打开定位功能,然后访问Google ...
- linux CentOS 系统下如何将php和mysql命令加入到环境变量中
在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行“php -v”命令查看当前php版本信息时时, ...
- [转]network-manager与interfaces冲突
[转]network-manager与interfaces冲突 http://blog.sina.com.cn/s/blog_48a45b9501010681.html 网络配置的两种方式 ...
- EntityFramwork(1) 源地址https://msdn.microsoft.com/zh-cn/data/jj193542
1.创建应用程序 简单起见,我们将构建一个使用 Code First 执行数据访问的基本控制台应用程序. 打开 Visual Studio "文件"->"新建&qu ...
- 关于使用,NI采集卡+labview信号采集,问题交流【第二贴】
*** 采集卡 NI PCI-6534: max sample rate 20MHz:32位的数字输入,数字输出. ***输入信号: 峰峰值,4.16V 最小值 -80mV 频率 ...
- iOS 进阶 第二十二天(0603)
0603 block\运行时 block block的本质是一个指向结构体的指针. 运行时 要分析clang命令反编译出来的c++代码,就要把一些小括号删掉来分析.因为这些小括号一般都是类型强转. o ...
- jira的插件
jira的插件开发流程实践 怎么开头呢,由于自己比较懒,博客一直不怎么弄,以后克己一点,多传点自己遇到的问题和经历上来,供自己以后记忆,也供需要的小伙伴少走点弯路吧 最近公司项目需要竞标一个运维项 ...
- 阴影 box-shadow(一)
阴影 box-shadow(一) box-shadow是向盒子添加阴影.支持添加一个或者多个. 很简单的一段代码,就实现了投影效果,酷毙了.我们来看下语法: box-shadow: X轴偏移量 Y轴偏 ...
- (转载)HTML:模拟链接被按下,在新标签页打开页面,不使用window.open(可能被拦截)
原文: http://www.cppblog.com/biao/archive/2010/08/21/124196.html 当按下一个按钮时,想打开一个新的标签页,可以使用window.open去实 ...
- IT服务系统组成
软件+硬件+数据 + 运维人员 = IT服务系统 车 司机 乘客 修车 = 车模式 效率 系统 用户 业务 运维 = 信息化 效率 如果司机不会开车,没有人会修车就不会有车轮上的世界 同样没有人会运维 ...