acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 题解(用命换的)

    #include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;i++) #define pre(i,a,b) for(int i=a;i>=b;i--) #define N 155 #define P 1000000007 using namespace std; int n,u[N],f[N][N][N][2][2],g[N][N][N][2][2];char s[N]; int w(int i,int x,int y,int p,int q,int l,int r){ return (((g[i][y][q][l][r]-g[i][x-1][q][l][r])%P-g[i][y][p-1][l][r])%P+g[i][x-1][p-1][l][r])%P; } int main(){ scanf("%d",&n);int ans=0; rep(i,1,n){ scanf("%s",s+1); rep(j,1,n)u[j]=u[j-1]+(s[j]=='G'); pre(l,n,1)rep(r,l,n)if(u[r]-u[l-1]==r-l+1){ f[i][l][r][0][0]=1+w(i-1,l,r,l,r,0,0); f[i][l][r][0][1]=(w(i-1,l,r,r+1,n,0,0)+w(i-1,l,r,r,n,0,1))%P; f[i][l][r][1][0]=(w(i-1,1,l-1,l,r,0,0)+w(i-1,1,l,l,r,1,0))%P; f[i][l][r][1][1]=((w(i-1,1,l,r,n,1,1)+w(i-1,1,l-1,r+1,n,0,0))%P+ (w(i-1,1,l-1,r,n,0,1)+w(i-1,1,l,r+1,n,1,0))%P)%P; rep(x,0,1)rep(y,0,1)(ans+=f[i][l][r][x][y])%=P; } rep(p,0,1)rep(q,0,1)rep(x,1,n)rep(y,1,n) g[i][x][y][p][q]=(((g[i][x-1][y][p][q]+g[i][x][y-1][p][q])%P-g[i][x-1][y-1][p][q])%P+f[i][x][y][p][q])%P; } printf("%d\n",(ans+P)%P); return 0; }

    userId_undefined

    

    3阅读
    1回复
    0点赞
  • 题解

    时间内存击败所有人

    userId_undefined

    dchk-SY

    秩序白银
    3阅读
    0回复
    0点赞
首页