Codeforces Round #293 Div2 F(Pasha and Pipe)

Problem

Limits Look up Original Problem From hereSolution 一共就14种情况。有些情况可以合并一起算,,算出来就好了。Complexity My Code;ll;ld;ull;uin;grid[N][N];bool a[N][N][M];int n,m;ll ans=0;int main(){scanf(“%d %d”,&n,&m);repin(i,1,n){scanf(“%s”,grid[i]+1);}repin(i,1,n){bool all=true;int p=m;repin(j,1,m){if(grid[i][j]==’#’){all=false;p=j-1;break;}}depin(j,p,1){a[i][j][1]=1;}all=true;p=1;depin(j,m,1){if(grid[i][j]==’#’){all=false;p=j+1;break;}}repin(j,p,m){a[i][j][3]=1;}if(all&&i!=1&&i!=n) ans+=1;}repin(j,1,m){bool all=true;int p=n;repin(i,1,n){if(grid[i][j]==’#’){all=false;p=i-1;break;}}depin(i,p,1){a[i][j][0]=1;}all=true;p=1;depin(i,n,1){if(grid[i][j]==’#’){all=false;p=i+1;break;}}repin(i,p,n){a[i][j][2]=1;}if(all&&j!=1&&j!=m) ans+=1;}rep(i,2,n){rep(j,2,m){if(a[i][j][0]&&a[i][j][1]) ans+=1;if(a[i][j][0]&&a[i][j][3]) ans+=1;if(a[i][j][1]&&a[i][j][2]) ans+=1;if(a[i][j][2]&&a[i][j][3]) ans+=1;}}ll last2=0,last1=0;rep(i,2,n){last2=last1=0;rep(j,2,m){if(a[i][j][2]) ans+=last1;if(a[i][j][0]) ans+=last2;last2=last1;last1+=a[i][j][0];if(grid[i][j]==’#’) last2=last1=0;}}last2=last1=0;rep(j,2,m){last2=last1=0;dep(i,n-1,1){if(a[i][j][3]) ans+=last2;if(a[i][j][1]) ans+=last1;last2=last1;last1+=a[i][j][3];if(grid[i][j]==’#’) last2=last1=0;}}last2=last1=0;rep(j,2,m){last2=last1=0;dep(i,n-1,1){if(a[i][j][1]) ans+=last2;if(a[i][j][3]) ans+=last1;last2=last1;last1+=a[i][j][1];if(grid[i][j]==’#’) last2=last1=0;}}last2=last1=0;rep(i,2,n){last2=last1=0;rep(j,2,m){if(a[i][j][2]) ans+=last2;if(a[i][j][0]) ans+=last1;last2=last1;last1+=a[i][j][2];if(grid[i][j]==’#’) last2=last1=0;}}printf(“%lld\n”,ans);}

别人失去了信心,他却下决心实现自己的目标。

Codeforces Round #293 Div2 F(Pasha and Pipe)

相关文章:

你感兴趣的文章:

标签云: