标签:ace 字符 check art 顺序 color family size for
1 #include<iostream> 2 using namespace std; 3 4 char a[101][101]; 5 int mark[101][101]; 6 int m,n; 7 void reMark(){ 8 for(int i=0;i<n;++i){ 9 for(int j=0;j<m;++j) mark[i][j]=0; 10 } 11 } 12 int check(int x,int y){ 13 if(x<0||y<0||x>m||y>n) return 0; 14 else if(mark[y][x]==1) return 0; 15 else if(a[y][x]==‘+‘||a[y][x]==‘|‘||a[y][x]==‘-‘) return 0; 16 else return 1; 17 return 0; 18 } 19 void dfs(int x,int y,char c){ 20 a[y][x]=c; 21 mark[y][x]=1; 22 if(check(x,y+1)){ 23 dfs(x,y+1,c); 24 } 25 if(check(x+1,y)){ 26 dfs(x+1,y,c); 27 } 28 if(check(x,y-1)){ 29 dfs(x,y-1,c); 30 } 31 if(check(x-1,y)){ 32 dfs(x-1,y,c); 33 } 34 } 35 void draw(int x1,int y1,int x2,int y2){ 36 if(x1>x2){ 37 for(int i=x1;i>=x2;--i){ 38 a[y1][i]=a[y1][i]==‘|‘||a[y1][i]==‘+‘?‘+‘:‘-‘; 39 } 40 } 41 else if(x2>x1){ 42 for(int i=x2;i>=x1;--i){ 43 a[y1][i]=a[y1][i]==‘|‘||a[y1][i]==‘+‘?‘+‘:‘-‘; 44 } 45 } 46 else if(y1>y2){ 47 for(int i=y1;i>=y2;--i){ 48 a[i][x1]=a[i][x1]==‘-‘||a[i][x1]==‘+‘?‘+‘:‘|‘; 49 } 50 } 51 else if(y2>y1){ 52 for(int i=y2;i>=y1;--i){ 53 a[i][x1]=a[i][x1]==‘-‘||a[i][x1]==‘+‘?‘+‘:‘|‘; 54 } 55 } 56 } 57 58 int main(){ 59 for(int i=0;i<101;i++){ 60 for(int j=0;j<101;j++){ 61 a[i][j]=‘.‘; 62 } 63 } 64 int q; 65 int x1,y1,x2,y2; 66 char c; 67 cin>>m>>n>>q; 68 for(int i=1;i<=q;i++){ 69 int operate; 70 cin>>operate; 71 if(operate==1){ 72 cin>>x1>>y1>>c; 73 y1=n-1-y1; 74 reMark(); 75 dfs(x1,y1,c); 76 } 77 if(operate==0){ 78 cin>>x1>>y1>>x2>>y2; 79 y1=n-1-y1; 80 y2=n-1-y2; 81 draw(x1,y1,x2,y2); 82 } 83 } 84 for(int i=0;i<n;++i){ 85 for(int j=0;j<m;++j){ 86 cout<<a[i][j]; 87 } 88 if(i<n-1) cout<<endl; 89 } 90 return 0; 91 }
标签:ace 字符 check art 顺序 color family size for
原文地址:http://www.cnblogs.com/bitor/p/6568143.html