求评级

灌水区

@[wangyanxiang2013](/user/1002621) 私自散播题目违规!!!
by __Sam__ @ 2024-04-25 19:37:05


@[wangyanxiang2013](/user/1002621) 1≥q ≤1000。是什么
by szh_AK_all @ 2024-04-25 19:38:26


$1 \leq r,c \leq 10^7$ ???你确定可以做?
by nightwatch_ryan @ 2024-04-25 19:38:46


@[wangyanxiang2013](/user/1002621) 橙,dfs板子
by DFs_YYDS @ 2024-04-25 19:39:49


等等,没注意到数据范围,你这读入都超时了
by DFs_YYDS @ 2024-04-25 19:40:18


@[wangyanxiang2013](/user/1002621) 话说题目的数据哪来的
by szh_AK_all @ 2024-04-25 19:42:03


@[szh_AK_all](/user/939431) 手打的?复制的?
by DFs_YYDS @ 2024-04-25 19:42:58


@[DFs_YYDS](/user/1119406) @[nightwatch_ryan](/user/961351) 我都随便打的,数据贼小
by wangyanxiang2013 @ 2024-04-25 19:48:00


这算私自散播题目吗?违规我就删帖子。
by wangyanxiang2013 @ 2024-04-25 19:50:15


@[wangyanxiang2013](/user/1002621) A了,代码 ```cpp #include<iostream> #define N 105 bool a[N][N],b[N][N],cc[N][N],d[N][N],e[N][N]; const int dx[]={0,1,-1,0}; const int dy[]={1,0,0,-1}; int r,c,q; void dfs1(int x,int y,int &cnt){ for(int i=0;i<4;i++){ int nx=x+dx[i]; int ny=y+dy[i]; if(nx>=1&&ny>=1&&nx<=r&&ny<=c&&a[nx][ny]){ a[nx][ny]=0; cnt++; dfs1(nx,ny,cnt); } } } void dfs2(int x,int y,int &cnt){ for(int i=0;i<4;i++){ int nx=x+dx[i]; int ny=y+dy[i]; if(nx>=1&&ny>=1&&nx<=r&&ny<=c&&b[nx][ny]){ b[nx][ny]=0; cnt++; dfs2(nx,ny,cnt); } } } void dfs3(int x,int y,int &cnt){ for(int i=0;i<4;i++){ int nx=x+dx[i]; int ny=y+dy[i]; if(nx>=1&&ny>=1&&nx<=r&&ny<=c&&cc[nx][ny]){ cc[nx][ny]=0; cnt++; dfs3(nx,ny,cnt); } } } void dfs4(int x,int y,int &cnt){ for(int i=0;i<4;i++){ int nx=x+dx[i]; int ny=y+dy[i]; if(nx>=1&&ny>=1&&nx<=r&&ny<=c&&d[nx][ny]){ d[nx][ny]=0; cnt++; dfs4(nx,ny,cnt); } } } void dfs5(int x,int y,int &cnt){ for(int i=0;i<4;i++){ int nx=x+dx[i]; int ny=y+dy[i]; if(nx>=1&&ny>=1&&nx<=r&&ny<=c&&e[nx][ny]){ e[nx][ny]=0; cnt++; dfs5(nx,ny,cnt); } } } int main(){ std::cin>>r>>c>>q; for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ char x;std::cin>>x; if(x=='Y')a[i][j]=1; if(x=='R')b[i][j]=1; if(x=='B')cc[i][j]=1; if(x=='G')d[i][j]=1; if(x=='W')e[i][j]=1; } } int ans1,ans2,ans3,ans4,ans5; ans1=ans2=ans3=ans4=ans5=0; for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ if(a[i][j]){ int cnt=0; dfs1(i,j,cnt); ans1=std::max(ans1,cnt); } } } for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ if(b[i][j]){ int cnt=0; dfs2(i,j,cnt); ans2=std::max(ans2,cnt); } } } for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ if(cc[i][j]){ int cnt=0; dfs3(i,j,cnt); ans3=std::max(ans3,cnt); } } } for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ if(d[i][j]){ int cnt=0; dfs4(i,j,cnt); ans4=std::max(ans4,cnt); } } } for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ if(e[i][j]){ int cnt=0; dfs5(i,j,cnt); ans5=std::max(ans5,cnt); } } } while(q--){ char x;std::cin>>x; if(x=='Y')printf("%d\n",ans1); if(x=='R')printf("%d\n",ans2); if(x=='B')printf("%d\n",ans3); if(x=='G')printf("%d\n",ans4); if(x=='W')printf("%d\n",ans5); } } ```
by nightwatch_ryan @ 2024-04-25 20:01:23


| 下一页