社区讨论
模拟+枚举,递归调用了一次,1 3AC剩下WA悬关
P3392涂条纹参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lpsf1kqe
- 此快照首次捕获于
- 2023/12/05 22:08 2 年前
- 此快照最后确认于
- 2023/12/06 12:30 2 年前
还没有到能够下载测试数据的地步,求助一下只过了两组是因为哪里的问题
代码如下
CPP//russia flag
#include<bits/stdc++.h>
using namespace std;
int N,M,stage=2510;//n,m<=50
int tran,counter;
char rec[54][54];//////用copy判断
int stor[2510];////////两个不同类数组用逗号表达式隔开
void draw(char C,int line,int st){//颜料,终点,起点
for(int j=st;j<line;j++){
for(int i=0;i<M;i++){
if(rec[i][j]!=C)
/*rec[i][j]=C,这里如果改了的话不能重复使用*/tran++;
}
}
}
void dig(char col,int line){
if(col=='W'){//W给到的行数(之一)画完剩下的给B让B自己枚举
draw('W',line,0);//两行画完传递一个剩余行数给B
dig('B',N-line);
}
else if(col=='B'){//在递归函数内枚举B行数 ////////字符常量跟字符串标识错误
for(int i=1;i<=line-1/*上边的N-line,剩余行数-1给R留一个*/;i++){//i是B的行数
draw('B',N-line+i,N-line);
dig('R',line-i/*给R剩下的行数*/);
}
}
else if(col=='R'){
draw('R',N,N-line);
stor[counter]=tran;
tran=0;
counter++;
}//****注意是否有数组与循控参数对不起来的错误
}
int main(){
for(int i=0;i<2510;i++)
stor[i]=2510;
cin>>N>>M;
for(int v=0;v<N;v++)//储存(从[0][0]开始)
for(int p=0;p<M;p++)
cin>>rec[p][v];
for(int i=1;i<N-1/*最大值为N-2*/;i++) //枚举A
dig('W',i);
for(int i=0;i<(N-2)*(N-1);i++){
// cout<<stor[i]<<" ";
if(stor[i]<stage){//////////////////////////*stor[i]没有值*//*/*/*/*/*/
stage=stor[i];
}
}
cout<<stage;
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...