babystep.....脑残的baby(QAQ)提高训练
2016-07-11 20:25
357 查看
#include<iostream> #include<cstdio> #include<cstdlib> #include<vector> using namespace std; const int maxn=555; int f[maxn*maxn]; int n,m; int x[5],y[5]; int find(int x){ return f[x]==x?x:f[x]=find(f[x]);//并查集 } int idx(int x,int y){ if(x==0 || y==0 || x==n || y==n)return 0; return (x-1)*(n-1)+y;//讲区域用点的坐标表示 } bool flag; int main(){ cin>>n; for(int i=1;i<=(n-1)*(n-1);i++)f[i]=i;//不在边上的点 cin>>m; flag=1; for(int i=1;i<=m;i++){//操作次数 pair<int,int> iH, iD, ths; for(int j=1;j<=4;j++) { scanf("%d%d",&x[j],&y[j]);//输入四组坐标,即两条线段 if(i==1 && j==2)break; } if(flag){ if(x[1]==x[2]){//竖着的线段 if(y[1]>y[2]) swap(y[1],y[2]); x[1]-=1; y[2]=y[1]; } else if(y[1]==y[2]) { if(x[1]>x[2]) swap(x[1],x[2]); y[1]-=1; x[2]=x[1]; } //printf("%d %d %d %d\n",x[1],x[2],y[1],y[2]); // printf("%d %d\n",idx(x[1],y[1]),idx(x[2],y[2])); int A=find(idx(x[1],y[1])); int B=find(idx(x[2],y[2])); f[A]=B; if(A!=B){ printf("HAHA\n"); flag=1; } else { printf("DAJIA\n"); flag=0; } } else { if(x[3]==x[4]){//竖着的线段 if(y[3]>y[4]) swap(y[3],y[4]); x[3]-=1; y[4]=y[3]; } else if(y[3]==y[4]){ if(x[3]>x[4]) swap(x[3],x[4]); y[3]-=1; x[4]=x[3]; } int A=find(idx(x[3],y[3])); int B=find(idx(x[4],y[4])); f[A]=B; if(A!=B){ printf("HAHA\n"); flag=1; } else { printf("DAJIA\n"); flag=0; } } } return 0; }
Babystep
发布时间: 2016年7月11日 14:42 时间限制: 2000ms 内存限制: 128M描述
从前有一个 Baby。从前还有一个网格图。 Baby 喜欢爆炸。
Baby 偶尔会炸掉网格图中的一条边(u, v)。之后他会尝试从 u 走到 v。如果他成功地从 u 走到 v,他会很高兴;否则他会找人打架。
从第二次爆炸开始,根据 Baby 此时心情的不同,Baby 会炸掉不同的边。你被要求编写一个程序,对于每次爆炸,给出此时 Baby 是否还能从 u 到 v。
输入
第一行,一个整数 R,代表网格图是 R*R 的。第二行,一个整数 N,代表操作数。第三行,四个整数 x1,y1,x2,y2,描述了第一次爆炸的边。以下 N-1 行,每行四个整数 x1,y1,x2,y2,x1’,y1’,x2’,y2’,分别描述 Baby 高兴时炸的边和想找人打架时炸的边。
输出
输出 N 行,如果本次爆炸后 Baby 高兴,输出一行“HAHA”,否则输出一行“DAJIA”。
样例输入1
复制
2 2 1 1 1 2 1 1 2 1 1 2 2 2
样例输出1
HAHA DAJIA
提示
对于 40%的数据,R≤50。
对于 100%的数据,1≤R≤500,1≤N≤2R^2-2R。
对于 100%的数据,1≤x1,x2,x1’,x2’≤R,1≤y1,y2,y1’,y2’≤R。
对于所有对边的描述,要么 x1=x2 且|y1-y2|=1,要么 y1=y2 且|x1-x2|=1。
保证所有边至多被删除一次。
均匀地,对于 50%的数据,x1=x1’,y1=y1’,x2=x2’,y2=y2’。
请注意输入输出规模较大。
可参考活腻的西红柿博客。。。感谢大大
相关文章推荐
- $().each和$.each()的区别
- Android重打包
- AssetBundle系列——资源的加载、简易的资源管理器
- 7.11 noip2013提高组复赛day1
- wordpress幻灯图获取代码
- iOS二维码扫描 原生API 源码Demo 2016最新版本 简单易用
- react生命周期
- 与文字相关的标签
- AssetBundle系列——场景资源之解包(二)
- TMS320F28335之GPIO原理
- 有关于论文投稿的问题
- 大话设计模式----各种模式概括总结
- The import javax.servlet cannot be resolved
- 【浅墨Unity3D Shader编程】之六 暗黑城堡篇: 表面着色器(Surface Shader)的写法(一)
- opencv2.0移植到ARM
- 微信支付之解决如何在测试环境进行支付测试
- VMware之——You have configured this virtual machine to use a 64-bit guest operating system. However,
- WebCollector2.X 网络JAVA爬虫入门(抓取百度百科)
- poj1185 炮兵阵地 状压dp
- 微信公众平台java开发之接口url与token填写