【JZOJ 3809】设备塔
来源:互联网 发布:买家怎么取消淘宝介入 编辑:程序博客网 时间:2024/06/06 14:56
Description
为了封印辉之环,古代塞姆利亚大陆的人民在异空间中建造了一座设备塔。
简单的说,这座设备塔是一个漂浮在异空间中的圆柱体,圆柱体两头的圆是计算核心,而侧面则是
传输信息所用的数据通道,划分成N *m 个区块。
然而,随着工作的继续进行,他们希望把侧面的一部分区块也改造成其他模块。然而,任何时候都
必须保证存在一条数据通道,能从圆柱体的一端通向另一端。
由于无法使用辉之环掌控下的计算系统,他们寻求你的帮助来解决这个问题。他们将逐个输入想要
改造的区域,而你则执行所有可行的改造并忽略可能导致数据中断的改造。
Solution
先把原来的倍长一倍,
有一个已经放了的点,如果它附近(8个方向)还有点,则这两个点联通,
每次加上一个点,就看看加上它在图中的原位置和倍长后的位置,这两个点是否联通,是则不能放,
复杂度:
Code
#include <iostream>#include <cstdio>#include <cstdlib>#define fo(i,a,b) for(int i=a;i<=b;i++)#define min(q,w) ((q)<(w)?(q):(w))#define OK(q) ((q)>0&&(q)<=n)#define H(q,w) ((q)*m-m+(w)) using namespace std;const int N=5005;int read(int &n){ char ch=' ';int q=0,w=1; for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar()); if(ch=='-')w=-1,ch=getchar(); for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;}int n,m,Ti,ans,m1;int g[N*2*N];int fx[8][2]={{1,0},{-1,0},{0,1},{0,-1},{1,1},{1,-1},{-1,1},{-1,-1}};int y1[8],y[8];int z[N][N*2];int gf(int q){return g[q]==q?q:g[q]=gf(g[q]);}bool OK1(){ fo(i,0,7)fo(j,0,7)if(y[i]==y1[j]&&y[i])return 0; return 1;}int main(){ int q,w,e,q1,w1; read(n),read(m),read(m1); e=m;m*=2; fo(i,1,n)fo(j,1,m)g[H(i,j)]=H(i,j); if(m==2){printf("1\n");return 0;} fo(I,1,m1) { read(q),read(w); int x=gf(g[H(q,w)]); fo(k,0,7)if(OK(q+fx[k][0])) { q1=q+fx[k][0]; if(z[q1][w1=1+(w-1+fx[k][1]+m)%m])y[k]=gf(H(q1,w1)); else y[k]=0; }else y[k]=0; w+=e; int x1=gf(g[H(q,w)]); fo(k,0,7)if(OK(q+fx[k][0])) { q1=q+fx[k][0]; if(z[q1][w1=1+(w-1+fx[k][1]+m)%m])y1[k]=gf(H(q1,w1)); else y1[k]=0; }else y1[k]=0; if(OK1()) { fo(k,0,7)g[y[k]]=x; fo(k,0,7)g[y1[k]]=x1; g[0]=0; ans++; z[q][w]=1;z[q][w-e]=1; } } printf("%d\n",ans); return 0;}
0 0
- 【JZOJ 3809】 设备塔
- 【JZOJ 3809】设备塔
- JZOJ 3809 【NOIP2014模拟8.25】设备塔
- JZOJ 3809. 【NOIP2014模拟8.25】设备塔
- JZOJ 3809. 【NOIP2014模拟8.25】设备塔
- 【JZOJ 5497】 塔
- 【JZOJ 3083】塔(加强)
- 【JZOJ 3083】 塔(加强)
- JZOJ 3083. 塔(加强)
- JZOJ 4746 树塔狂想曲
- JZOJ 100023 【NOIP2016提高A组模拟7.6】塔
- [JZOJ 3424] 粉刷匠 && [JZOJ 4254] 集体照
- [JZOJ3809] 设备塔
- 【JZOJ3809】设备塔
- 设备
- 设备
- [JZOJ 1280]最大匹配
- [JZOJ 1281]旅行
- php操作mysql数据库
- Java IO流学习总结
- 没有导航栏进行push(压栈)
- 关于在windows下启动zkServer.cmd闪退的解决办法
- 奇异值分解(SVD)及其扩展详解
- 【JZOJ 3809】设备塔
- 检测点9.1
- String,创建对象问题
- 802.11ax前瞻3:上行随机接入(TF,TF-R)
- (转)mongoDB 禁用大内存页面 transparent_hugepage=never
- JVM 简单入门 简单结构介绍
- C# 管理远程桌面
- 【JZOJ3806】小X 的道路修建
- 【TaoTao】Nginx+FastDFS实现图片上传功能