BZOJ3588 : fx
考虑从左往右填数,维护当前数字权值与$A$权值的差值,如果差值大于9,那么以后无论怎么填,都不会改变大小关系。
所以设$f[i][j][k]$表示填了前$i$位,差值为$j$,是否卡住$B$上限为$k$的方案数,然后DP即可。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=205,P=1000000007;
int T,C,n,m,i,j,k,t,A[N],B[N],f[N][18][2],ans;char a[N],b[N];
inline void up(int&a,int b){a+=b;if(a>=P)a-=P;}
int main(){
scanf("%d",&T);
for(C=1;C<=T;C++){
scanf("%s%s",a+1,b+1);n=strlen(a+1);m=strlen(b+1);
for(i=1;i<n-i+1;i++)swap(a[i],a[n-i+1]);
for(i=1;i<m-i+1;i++)swap(b[i],b[m-i+1]);
for(i=1;i<=n||i<=m;i++)A[i]=B[i]=0;
for(i=1;i<=n;i++)A[i]=a[i]-'0';
for(i=1;i<=m;i++)B[i]=b[i]-'0';
if(n<m)n=m;
for(i=1;i<n-i+1;i++)swap(A[i],A[n-i+1]),swap(B[i],B[n-i+1]);
for(i=1;i<=n;i++)for(j=0;j<18;j++)f[i][j][0]=f[i][j][1]=0;
for(i=0;i<=B[1];i++){
t=max(i-A[1],-9);
if(t<9)f[1][t+9][i==B[1]]++;
}
for(i=1;i<n;i++)for(j=-9;j<9;j++){
for(k=0;k<=9;k++){
t=max(j*2-A[i+1]+k,-9);
if(t<9)up(f[i+1][t+9][0],f[i][j+9][0]);
}
for(k=0;k<=B[i+1];k++){
t=max(j*2-A[i+1]+k,-9);
if(t<9)up(f[i+1][t+9][k==B[i+1]],f[i][j+9][1]);
}
}
for(ans=j=0;j<=9;j++)up(ans,f[n][j][0]),up(ans,f[n][j][1]);
printf("Case #%d: %d\n",C,ans);
}
return 0;
}
BZOJ3588 : fx的更多相关文章
- 用fxc.exe编译shader文件(*.fx, *.hlsl)的设置
原文出自:http://msdn.microsoft.com/en-us/library/windows/desktop/bb509709(v=vs.85).aspx#Profiles 拿DX11 S ...
- atitit.团队建设总结fx O622
团队建设总结fx O622 大的title 2 建设团队文化 2 办公环境(3s+树+湖) 3 每人一个办公室 3 弹性工作制 3 重大的决定公投体制 3 每年一个kid经验日 3 做自己想到做的事. ...
- 交互式报表和工作报表控件Stimulsoft Reports.Fx for Java
Stimulsoft Reports.Fx for Java是一款Java平台下的报表工具控件,可以为您的应用程序添加交互式报表和工作报表.Java技术可以用于不同的平台.不同的操作系统和不同的硬件, ...
- dojo 九 effects dojo/_base/fx 和 dojo/fx
官方教程:Dojo Effects这里讲学习一下dojo如何实现淡入.淡出.滑动等效果.实现这些特殊的效果有两个包 dojo/_base/fx 和 dojo/fx.dojo/_base/fx 中提供了 ...
- Flex里的命名空间,fx、mx、s【转】
Flex 4带给我们的,是全新的命名空间.了解这些命名空间必定是一件好事情.Flex 4有三个非常重要的命名空间,分别是: xmlns:fx=”http://ns.adobe.com/mxml/200 ...
- Styling FX Buttons with CSS
http://fxexperience.com/2011/12/styling-fx-buttons-with-css/ ——————————————————————————————————————— ...
- [效果]JS折叠菜单-使用方法 (Moo.Fx)
(从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期2014-06-24) 用法: 1.添加JS库 CODE:<script src="prototype.lite.js& ...
- Houdini FX 14 重磅推出!(附下载方式)
把之前发布在新浪的博客搬过来了,新浪广告太多,影响阅读和观感,博客园很清净~ SideFX于2015年1月在官网发布Houdini FX 14,喜爱尝鲜.充满好奇心的我迫不及待的装上Apprentic ...
- Tsinsen A1516. fx 数位dp
题目: http://www.tsinsen.com/A1516 A1516. fx 时间限制:2.0s 内存限制:256.0MB 总提交次数:164 AC次数:72 平均分:51. ...
随机推荐
- Swift - 简单封装一个工具类模板
创建模板类(封装一个类) 例1:新建一个名字叫做 Product 的类 Product.swift File 的内容 class Product { var name: String var desc ...
- WebKit示例解读
如果你曾经在你的App中使用UIWebView加载网页内容的话,你应该体会到了它的诸多不尽人意之处.UIWebView是基于移动版的Safari的,所以它的性能表现十分有限.特别是在对几乎每个Web应 ...
- Swift - 语言指南,来自github学习
@SwiftLanguage 更新于 2016-6-6,更新内容详见 Issue 55.往期更新回顾详见<收录周报> 这份指南汇集了 Swift 语言主流学习资源,并以开发者的视角整理编排 ...
- NYOJ之括号配对问题
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N&l ...
- MySQL 主从同步
http://blog.csdn.net/z69183787/article/details/53897894
- 简简单单的一个PYTHON多进程实现
因为在作自动化部署时,希望能将多个服务分不同的批次进行发布, 同一批次的机器同时发布, 如果前面一批次出错误,后面就需要停止整 个流程. 那可以简单的用threading来实现了. thread_li ...
- Fiddler Tips
使用代理服务器 点击 Tools -> Fiddler Options -> Gateway Fiddler 默认将使用刚打开Fiddler窗口时IE 设置的代理服务器,当然你也可以手动修 ...
- BOOL in Object-C
BOOL in Object-C typedef signed char BOOL; #define YES (BOOL)1 #define NO (BOOL)0 重构上页中的代码 - (BOOL)s ...
- 数据结构之图 Part2 - 2
邻接表 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...
- android 入门-git之上传本地代码到github
github部分: 1.首先去github网站 上注册一个用户 2.说明 https://guides.github.com/activities/hello-world/ 2.点击 New repo ...