ccf+BFS+主要是那个数据输入的处理梗了,然后最后时间来不及了,最后就是 continue没加
2016-04-02 12:36
405 查看
点击打开链接
///这个是上次ccf没有完成的。 其实错在就是那个画边那里没有输入continue。 #include<stdio.h> #include<stdlib.h> #include<iostream> #include<string.h> #include<cstring> #include<string> #include<math.h> #include<algorithm> #include<queue> using namespace std; char Arr[105][105]; int visit[105][105]={0}; int Move[4][2]={{-1,0},{1,0},{0,-1},{0,1}},m=0,n=0; struct Node{ int x,y; }; queue<Node>Q; void solve1(int x1,int y1,int x2) { int i=0; for(i=x1;i<=x2;i++){ if(Arr[i][y1]=='-'){ Arr[i][y1]='+'; continue; } Arr[i][y1]='|'; } } void solve2(int x1,int y1,int y2) { int j=0; for(j=y1;j<=y2;j++){ if(Arr[x1][j]=='|'){ Arr[x1][j]='+'; continue; } Arr[x1][j]='-'; } } int check(Node temp) { if(temp.x>=0&&temp.x<n&&temp.y>=0&&temp.y<m&&!visit[temp.x][temp.y]&&Arr[temp.x][temp.y]!='|'&&Arr[temp.x][temp.y]!='-'&&Arr[temp.x][temp.y]!='+'){ return 1; } else return 0; } void BFS(int x,int y,char c) { int t=0; while(!Q.empty()) Q.pop(); memset(visit,0,sizeof(visit)); Node n,temp; n.x=x,n.y=y; Q.push(n);visit[n.x][n.y]=1;Arr[n.x][n.y]=c; while(!Q.empty()){ n=Q.front();Q.pop(); for(t=0;t<4;t++){ temp=n; temp.x+=Move[t][0];temp.y+=Move[t][1]; if(check(temp)){ Arr[temp.x][temp.y]=c; visit[temp.x][temp.y]=1; Q.push(temp); } } } } int main() { int q=0,i=0,j=0,x1=0,y1=0,temp=0,x2=0,y2=0,x=0,y=0,flag=0; char c; string str; cin>>m>>n>>q; getchar(); for(i=0;i<n;i++){ for(j=0;j<m;j++){ Arr[i][j]='.'; } } for(i=0;i<q;i++){ scanf("%d ",&flag); if(flag==0){ scanf("%d %d %d %d",&x1,&y1,&x2,&y2); temp=x1,x1=y1,y1=temp; x1=n-1-x1; temp=x2,x2=y2,y2=temp; x2=n-1-x2; if(y1==y2){//处理| if(x1>x2) swap(x1,x2); solve1(x1,y1,x2); } else if(x1==x2){//处理- if(y1>y2) swap(y1,y2); solve2(x1,y1,y2); } } else{ scanf("%d %d %c",&x,&y,&c); temp=x,x=y,y=temp; x=n-1-x; BFS(x,y,c); } } for(i=0;i<n;i++){ for(j=0;j<m;j++){ printf("%c",Arr[i][j]); } printf("\n"); } return 0; }
相关文章推荐
- 用16进制来设置UIcolor
- KeyValue and HFile create
- 【转】request和response的页面跳转
- iOS开发,将子线程获取的数据实时更新到UI
- PHP 全局变量 $_REQUEST 的分析
- BFS+优先级队列-WAJUEJI which home strong!
- 初学android 对话框时需要主要AlertDialog和AlertDialog.builder之间的区别
- 自定义实现mapreduce计算的value类型
- Android-UI布局2
- 【Uva11324】The Largest Clique【SCC】【最长路】【有向图最大团】
- UINavgationController
- pip和requests模块的安装
- Express框架中的req.fresh属性何时返回true,何时返回false
- Android-UI布局1
- 开机提示:error:no such partition grub rescue>
- TextView高亮显示
- JAVA的String、StringBuilder和StringBuffer类的区别
- Xcode Build Search Paths 设置
- S5PV210开发系列四_uCGUI的移植
- 随谈 error:unknown filesystem grub rescue解决办法