网站建设的目的及效益分析,水利网站建设情况汇报,东莞网站SEO优化推广,美团网站建设2015 ACM / ICPC 北京现场赛 I 题 构造 注意一个小坑#xff0c;每条蛇的输出是要从头到尾输出的。 还要注意的是#xff0c;不能开数组去模拟构造过程#xff0c;然后输出#xff0c;那样会TLE的。 #include cstdio
#include cstring
#include cmath每条蛇的输出是要从头到尾输出的。 还要注意的是不能开数组去模拟构造过程然后输出那样会TLE的。 #include cstdio
#include cstring
#include cmath
#include vector
#include algorithm
using namespace std;const int maxn50010;
vectorint G[maxn];
int Find[maxn][3];
int n;
int R1,C1,R2,C2;
int tot;int ans[maxn][maxn];void f()
{Find[2][1]1; Find[2][2]2; Find[4][2]2;for(int i4;i500;ii2) {if(i%40) Find[i][1]Find[i-2][1]2;else Find[i][1]Find[i-2][1];}for(int i4;i500;ii2){if(i%42) Find[i][2]Find[i-2][2]2;else Find[i][2]Find[i-2][2];}
}void init()
{//清空for(int i0;in;i) G[i].clear();tot0;//确定左图的大小R1C1(n1)/2;//确定右图的大小if(n%21){R2Find[n-1][1];C2Find[n-1][2];}else {R2Find[n][1];C2Find[n][2];}
}void odd()
{for(int i1;in;ii2){tot;for(int j1;jtot;j){G[i].push_back(tot);G[i].push_back(j);ans[tot][j]i;}for(int jtot-1;j1;j--){G[i].push_back(j);G[i].push_back(tot);ans[j][tot]i;}}
}void even()
{if(R1R2){int NowR1;int NowC0;for(int i2;in;ii2){//横着画if(i%40){for(int j1;ji/2;j) {G[i].push_back(NowR1);G[i].push_back(jC1);ans[NowR1][jC1]i;}for(int ji/2;j1;j--) {G[i].push_back(NowR2);G[i].push_back(jC1);ans[NowR2][jC1]i;}NowRNowR2;} //竖着画else{for(int j1;ji/2;j) {G[i].push_back(j);G[i].push_back(NowC1C1);ans[j][NowC1C1]i;}for(int ji/2;j1;j--) {G[i].push_back(j);G[i].push_back(NowC2C1);ans[j][NowC2C1]i;}NowCNowC2;}}}else if(R1C2){swap(R2,C2);int NowRR21;int NowC1;for(int i2;in;ii2){//竖着画if(i%40){for(int jR2;jR2-i/21;j--){G[i].push_back(j);G[i].push_back(NowC1C1);ans[j][NowC1C1]i;}for(int jR2-i/21;jR2;j){G[i].push_back(j);G[i].push_back(NowC2C1);ans[j][NowC2C1]i;}NowCNowC2;}//横着画else {for(int j1;ji/2;j){G[i].push_back(NowR-1);G[i].push_back(jC1);ans[NowR-1][jC1]i;}for(int ji/2;j1;j--){G[i].push_back(NowR-2);G[i].push_back(jC1);ans[NowR-2][jC1]i;}NowRNowR-2;}}}
}void print()
{for(int i1;in;i){for(int j0;jG[i].size();j){printf(%d,G[i][j]);if(jG[i].size()-1) printf( );else printf(\n);}}
}int main()
{f();while(~scanf(%d,n)){init();//初始化odd();//左图even();//右图/*for(int i1;iR1;i){for(int j1;jC1C2;j){printf(%5d,ans[i][j]);}printf(\n);}*/printf(%d %d\n,R1,C1C2);print();//输出}return 0;
} 转载于:https://www.cnblogs.com/zufezzt/p/4977956.html