您的位置:首页 > 其它

2014 ACM-ICPC Asia Mudanjiang Regional First Round

2014-09-24 20:33 344 查看
3810 A Volcanic Island

构造题。。。我太弱了。。。。构造不出来,看了别人的构造方法。。。。

网上题解都说6的时候要特判下。。。可是我看了根本不需要特判啊。。。直接就是对的。。。。Orz

AC代码如下:

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;

char maps[110][110];
int N;

void solve(){
for( int i = 1; i <= N; i++ ){
for( int j = 1; j <= N; j++ ){
maps[i][j] = 'B';
}
}
for( int i = 1; i <= N; i++ ){
maps[1][i] = 'Y';
}
char col[2];
col[0] = 'R';
col[1] = 'G';
for( int i = 1; i <= N / 2; i++ ){
char c = col[i%2];
for( int j = i + 1; j <= N; j++ ){
maps[j][i] = c;
}
for( int j = 2; j <= i + 1; j++ ){
maps[j][i+1] = c;
}
}
for( int i = N / 2 + 1; i < N - 1; i++ ){
char c = col[i%2];
for( int j = i + 2; j <= N; j++ ){
maps[j][i] = c;
}
maps[i+2][i+1] = c;
for( int j = i + 2; j > 2; j-- ){
maps[j][i+2] = c;
}
}
for( int i = 1; i <= N; i++ ){
printf( "%s\n", &maps[i][1] );
}
}

int main(){
int T;
scanf( "%d", &T );
while( T-- ){
scanf( "%d", &N );
if( N == 1 ){
puts( "Y" );
}else if( N <= 4 ){
puts( "No solution!" );
}else{
solve();
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: