当前位置: 首页 > news >正文

手机网站建设中心提升网站关键词排名

手机网站建设中心,提升网站关键词排名,html5 手机网站,网页和移动端界面设计P8273 [USACO22OPEN] Pair Programming G 题目大意 一个程序由一系列指令组成,每条指令的类型如下: d \times d d,其中 d d d是一个 [ 0 , 9 ] [0,9] [0,9]范围内的整数 s s s,其中 s s s是一个表示变量名称的字符串&#xff…

P8273 [USACO22OPEN] Pair Programming G

题目大意

一个程序由一系列指令组成,每条指令的类型如下:

  • × d \times d ×d,其中 d d d是一个 [ 0 , 9 ] [0,9] [0,9]范围内的整数
  • + s +s +s,其中 s s s是一个表示变量名称的字符串,不同操作的变量名称互不相同

指令字符串中一个数字 d d d表示操作一,一个加号 + + +表示操作二。

B B B和小 E E E各有一个有 n n n条指令的程序,交错这些程序可以得到一个有 2 n 2n 2n个指令的新程序。计算执行这些交错程序可能得到的不同表达式的数量,输出答案对 1 0 9 + 7 10^9+7 109+7取模后的值。

T T T组数据。

1 ≤ T ≤ 10 , ∑ n ≤ 2000 1\leq T\leq 10,\sum n\leq 2000 1T10,n2000


题解

首先,要对小 B B B和小 E E E的字符串做一些处理。如果有 × 0 \times 0 ×0的操作,则之前的部分都没用了,但注意这个 × 0 \times 0 ×0还有用。如果有 × 1 \times 1 ×1操作,则对答案没有影响,要将其舍去。

f i , j , 0 / 1 f_{i,j,0/1} fi,j,0/1表示小 B B B的串匹配到第 i i i位,小 E E E的串匹配到第 j j j位,最后一个是小 B B B的指令还是小 E E E的指令的答案。

我们知道,加法和乘法都满足交换律,即 a + b = b + a , a × b = b × a a+b=b+a,a\times b=b\times a a+b=b+a,a×b=b×a。也就是说,如果有两个类型相同且位置相邻的操作,则两个操作的先后顺序对最后得到的表达式没有影响。

那么,如果两个字符串当前的操作类型相同,则先执行小 B B B的操作。

由此可推得转移式
f i + 1 , j , 0 = f i , j , 0 + f i , j , 1 f_{i+1,j,0}=f_{i,j,0}+f_{i,j,1} fi+1,j,0=fi,j,0+fi,j,1
f i , j + 1 , 1 = f i , j , 0 × [ S i ≠ T j + 1 ] + f i , j , 1 f_{i,j+1,1}=f_{i,j,0}\times [S_i\neq T_{j+1}]+f_{i,j,1} fi,j+1,1=fi,j,0×[Si=Tj+1]+fi,j,1

当最后一个指令是小 B B B的指令时,如果下一个指令要是小 E E E的指令,则必须满足两个指令的类型不同。这样就能保证没有表达式会被重复计算。

注意一开始 f 0 , 0 , 1 = 1 f_{0,0,1}=1 f0,0,1=1,如果将 1 1 1赋值到 f 0 , 0 , 0 f_{0,0,0} f0,0,0则会在下一次转移中被计算两次,所以要将 1 1 1赋值到 f 0 , 0 , 1 f_{0,0,1} f0,0,1才能使开始的空字符串只被计算一次。

时间复杂度为 O ( ∑ n 2 ) O(\sum n^2) O(n2)

code

#include<bits/stdc++.h>
using namespace std;
const long long mod=1e9+7;
int T,n,s1,t1;
long long f[2005][2005][2];
char s[2005],t[2005];
void dd(int &a1,char a[]){a1=0;for(int i=1;i<=n;i++){if(a[i]=='0') a1=0;else if(a[i]=='1') continue;if(a[i]!='+') a[i]='*';a[++a1]=a[i];}
}
int main()
{scanf("%d",&T);while(T--){scanf("%d",&n);scanf("%s%s",s+1,t+1);dd(s1,s);dd(t1,t);f[0][0][1]=1;for(int i=0;i<=s1;i++){for(int j=0;j<=t1;j++){if(i<s1) f[i+1][j][0]=(f[i][j][0]+f[i][j][1])%mod;if(j<t1){f[i][j+1][1]=f[i][j][1];if(i&&s[i]!=t[j+1])f[i][j+1][1]=(f[i][j+1][1]+f[i][j][0])%mod;}}}printf("%lld\n",(f[s1][t1][0]+f[s1][t1][1])%mod);}return 0;
}
http://www.yayakq.cn/news/238018/

相关文章:

  • 响应式网站开发哪家好东光网站制作
  • 优化型网站模板python做网站视频教程
  • 主体备案与网站备案开发工具怎么使用
  • 网络营销策划方案800字搜索引擎优化seo应用
  • 一键生成网站的软件百度的搜索引擎优化
  • 阿里云可以几个网站网站怎么做才美观
  • 网盘做扩大网站服务器网站逻辑结构优化是指
  • 知名的网站开发公司中国邮政做特产得网站
  • 做网站项目流程logo免费下载网站
  • 建设网站存在的问题户外做旅游网站
  • 企业如何做好网站建设网站设计标语
  • 多图片网站优化做网站点击量有用吗
  • 免费空间asp网站怎样做google网站
  • 企业网企业网站制作网站备案号收回
  • 医疗网站制作东莞好的网页设计培训试听
  • 淘客网站怎么做啊天津网站建设方案服务
  • vs2017可以做网站吗网页制作基础教程字体居中颜色
  • 厦门思总建设有限公司网站中国中国建设银行网站
  • 如何做网站title小标图广州seo培训
  • 哪个网站可以自己做名片中国设计师网app
  • 网站主题怎么写天梭手表官方网站
  • 好网站制作公司宁波seo推广推荐
  • 如何将网站生成二维码化妆品网站推广策划书
  • 做请柬的网站各类大型网站建设
  • 网站26个页面收费wordpress电商模板下载
  • 鹰潭市城乡建设局网站史志部门建设网站 说明
  • 如何做网站程序如何把网站放在主机上
  • 游戏公司官方网站建设方案高端定制网站设计公司
  • 厦门外贸网站建设公司建设网站请示
  • 网站开发后台用什么想自己建个网站