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

源码 网站建设教程优化大师官方正版下载

源码 网站建设教程,优化大师官方正版下载,网站建设托管合同,赵公口网站建设这题本质上还是数据结构。 首先看到这个 2 n 2\times n 2n的网格图就很容易想到分治。我们还是考虑把要统计的东西变得可视化,一条路径要么穿过中线一次,那么我们可以将两边的串拼起来得到答案;要么穿过中线两次,考虑其中一边的…

这题本质上还是数据结构。

首先看到这个 2 × n 2\times n 2×n的网格图就很容易想到分治。我们还是考虑把要统计的东西变得可视化,一条路径要么穿过中线一次,那么我们可以将两边的串拼起来得到答案;要么穿过中线两次,考虑其中一边的路径是固定的,那么我们枚举两个端点再判断一下和原串是否匹配的上就做完了。那么考虑预处理出 d p i , j , 0 / 1 , 0 / 1 dp_{i,j,0/1,0/1} dpi,j,0/1,0/1表示从位置 ( 1 / 2 , i ) (1/2,i) (1/2,i)开始,匹配长度为 j j j,向左/右走的方案数,这事实上非常好转移,可以自己编一下。当然可能还要把串正着和倒着处理一边,总之挺麻烦的。

将网格图翻转后做两次即可得到答案。求 L c p Lcp Lcp可以用暴力 d p dp dp代替。事实上也并不需要分治。注意不要算重

细节题,贼容易写挂。

复杂度 O ( n 2 ) O(n^2) O(n2)

#include<bits/stdc++.h>
#define ll long long
#define fi first
#define se second
#define pb push_back
#define inf 0x3f3f3f3f
#define db double
#define cpx complex<db>
using namespace std;
const int mod=1e9+7;
const int N=2005;
int n,K,Right[2][N][N],Left[2][N][N],dpl[2][N][N],res;
string s[2],str;
void add(int &x,int y){x=(x+y)%mod;
}
void solve(){for(int i=0;i<2;i++){for(int j=n-1;j>=0;j--){for(int k=0;k<K;k++){Right[i][j][k]=(s[i][j]!=str[k])?0:((j!=n-1&&k>=1)?(Right[i][j+1][k-1]+1):1);}}}for(int i=0;i<2;i++){for(int j=0;j<n;j++){for(int k=0;k<K;k++){Left[i][j][k]=(s[i][j]!=str[k])?0:((j>=1&&k>=1)?(Left[i][j-1][k-1]+1):1);}}}memset(dpl,0,sizeof dpl);for(int i=0;i<2;i++){for(int j=0;j<n;j++){if(s[i][j]==str[0]){dpl[i][j][0]=1;}}}//fixedfor(int i=0;i<n;i++){for(int j=i;j<n;j++){for(int k=0;k<2;k++){//strangeif(Left[k][j][2*(j-i+1)-1]>=j-i+1&&Right[k^1][i][j-i]>=j-i+1){add(dpl[k][j][2*(j-i+1)-1],1);}}}}for(int k=1;k<K;k++){for(int i=0;i<2;i++){for(int j=0;j<n;j++){if(s[i][j]==str[k]){if(j)add(dpl[i][j][k],dpl[i][j-1][k-1]);if(s[i^1][j]==str[k-1]){if(j&&k-2>=0)add(dpl[i][j][k],dpl[i^1][j-1][k-2]);}}}}}
}
void getans(){//fixedfor(int i=0;i<2;i++){for(int j=0;j<n;j++){add(res,dpl[i][j][K-1]);}}for(int i=1;i<n;i++){for(int j=i+1;j<n;j++){for(int k=0;k<2;k++){if(Right[k][i][K-1]>=j-i+1&&K-(j-i+2)>=0&&Left[k^1][j][K-(j-i+2)]>=j-i+1&&K-2*(j-i+1)-1>=0){add(res,dpl[k^1][i-1][K-2*(j-i+1)-1]);}}}}
}
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>s[0]>>s[1]>>str,n=s[0].size(),K=str.size();//fixedif(K==1){for(int i=0;i<2;i++){for(int j=0;j<n;j++){if(s[i][j]==str[0]){add(res,1);}}}cout<<res;return 0;}if(K==2){for(int i=0;i<2;i++){for(int j=0;j<n-1;j++){if(s[i][j]==str[0]&&s[i][j+1]==str[1]){add(res,1);}if(s[i][j+1]==str[0]&&s[i][j]==str[1]){add(res,1);}}}for(int i=0;i<2;i++){for(int j=0;j<n;j++){if(s[i][j]==str[0]&&s[i^1][j]==str[1]){add(res,1);}}}cout<<res;return 0;}//fixedsolve();getans();//fixedswap(s[0],s[1]),reverse(s[0].begin(),s[0].end()),reverse(s[1].begin(),s[1].end());solve();getans();cout<<res<<"\n";
}
http://www.dinnco.com/news/31674.html

相关文章:

  • 网站怎么做白色字谷歌浏览器网页版在线
  • 做纸贸易的好网站网络营销的八种方式
  • 泰安市两学一做网站智能优化大师下载
  • 织梦怎么做手机网站seo com
  • 做网站的做网站设计哪里有
  • dedecms 调用 另一个网站seo整站优化新站快速排名
  • 萍乡企业网站制作湖南百度推广开户
  • 就是做网站的.....山东济南最新事件
  • 企业网站管理系统站长之家微信运营工具
  • wordpress 上传svgseo技术分享
  • 设计感很强的中文网站网站优化推广培训
  • 广州建网站兴田德润可信指数函数运算法则
  • wordpress仿站步骤网站推广策划思路的内容
  • 科技网站导航图片外链在线生成网址
  • 北京住建委网站开发适配问题婚恋网站排名前十名
  • 备案网站怎么做google search
  • 宁都网站建设珠海企业网站建设
  • firework做网站教程武汉seo创造者
  • 网站系统中备案申请表各大网站收录入口
  • 什么网站可以做网站全网营销代理加盟
  • 南充市建设局官方网站seo是哪个国家
  • 做学校和企业对接的网站百度经验悬赏令
  • 做网站的整体风格确定方式seo职业培训学校
  • 手机版网站如何做图片滚动条网络营销网站建设案例
  • 如何给网站做优化百度代运营公司
  • 哪个做图网站可以挣钱百度手机网页版入口
  • wordpress微信说说新区快速seo排名
  • 做企业网站的意义百度快照优化
  • 宁波做网站有哪些公司公司谷歌seo优化中文章
  • 什么网站可以做宣传seo关键词优化策略