洛谷 P3144 [USACO16OPEN]关闭农场Closing the Farm_Silver
题目大意:
n个谷仓 ,每次关闭一个谷仓,问剩下没被关闭的谷仓是
否联通。
题解:并查集+倒序处理
代码:
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #define N 3030
- using namespace std;
- int n,m,sumedge,cnt;
- int head[N],fa[N],q[N],ans[N],exit[N];
- struct Edge{
- int x,y,nxt;
- Edge(int x=,int y=,int nxt=):
- x(x),y(y),nxt(nxt){}
- }edge[N<<];
- void add(int x,int y){
- edge[++sumedge]=Edge(x,y,head[x]);
- head[x]=sumedge;
- }
- int f(int x){
- return fa[x]==x?x:fa[x]=f(fa[x]);
- }
- int main(){
- scanf("%d%d",&n,&m);
- for(int i=;i<=m;i++){
- int x,y;
- scanf("%d%d",&x,&y);
- add(x,y);add(y,x);
- }
- for(int i=;i<=n;i++)fa[i]=i;cnt=n;
- for(int i=;i<=n;i++)scanf("%d",&q[i]);
- for(int i=n;i>=;i--){
- int x=q[i];exit[x]=true;
- for(int h=head[x];h;h=edge[h].nxt){
- int v=edge[h].y;
- if(exit[v]==)continue;
- int fx=f(x),fy=f(v);
- if(fx!=fy){
- fa[fx]=fy;
- cnt--;
- }
- }
- if(cnt==i)ans[i]=true;
- }
- for(int i=;i<=n;i++)
- if(ans[i])puts("YES");
- else puts("NO");
- return ;
- }
并查集
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #define N 3009
- using namespace std;
- int n,m,cnt;
- int q[N],exit[N],ans[N],d[N][N];
- int main(){
- scanf("%d%d",&n,&m);
- for(int i=;i<=m;i++){
- int x,y;
- scanf("%d%d",&x,&y);
- d[x][y]=d[y][x]=true;
- }
- for(int i=;i<=n;i++)scanf("%d",&q[i]);
- for(int i=n;i>=;i--){
- bool flag=false;
- int now=q[i];
- exit[++cnt]=now;
- for(int k=;k<=cnt;k++){
- for(int j=;j<=cnt;j++){
- for(int p=;p<=cnt;p++){
- d[exit[j]][exit[p]]=d[exit[j]][exit[p]]||(d[exit[j]][exit[k]]&&d[exit[k]][exit[p]]);
- }
- }
- }
- for(int j=;j<=cnt;j++){
- for(int p=j+;p<=cnt;p++){
- if(d[exit[j]][exit[p]]==){
- ans[i]=;flag=true;
- break;
- }
- }
- }
- if(flag==false){
- ans[i]=;
- }
- }
- for(int i=;i<=n;i++)
- if(ans[i])printf("YES\n");
- else printf("NO\n");
- return ;
- }
50暴力
洛谷 P3144 [USACO16OPEN]关闭农场Closing the Farm_Silver的更多相关文章
- 洛谷P3144 [USACO16OPEN]关闭农场Closing the Farm_Silver
题目描述 Farmer John and his cows are planning to leave town for a long vacation, and so FJ wants to tem ...
- 洛谷P3144 [USACO16OPEN]关闭农场Closing the Farm
农夫约翰和他的奶牛准备去旅行,所以约翰想要把他的农场临时关闭. 农场有N个牛棚(牛棚从1到N编号),有M条路连接这些牛棚(1≤N,M≤3000). 约翰打算挨个关闭牛棚,在关牛棚的时候, 他突然想起一 ...
- [USACO16OPEN]关闭农场Closing the Farm_Silver
题目描述 FJ和他的奶牛们正在计划离开小镇做一次长的旅行,同时FJ想临时地关掉他的农场以节省一些金钱. 这个农场一共有被用M条双向道路连接的N个谷仓(1<=N,M<=3000).为了关闭整 ...
- [USACO16OPEN]关闭农场Closing the Farm(洛谷 3144)
题目描述 Farmer John and his cows are planning to leave town for a long vacation, and so FJ wants to tem ...
- P3144 [USACO16OPEN]关闭农场——离线,并查集
https://www.luogu.org/problem/P3144 每次关闭一个农场,农场之间有边相连,问每次关闭后开着的农场是否是一个连通块: 数据小,离线搞: 我们先记录删的顺序,然后倒着来, ...
- 一道并查集的(坑)题:关闭农场closing the farm
题目描述 in English: Farmer John and his cows are planning to leave town for a long vacation, and so FJ ...
- 洛谷 P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm
题目描述 每年,在威斯康星州,奶牛们都会穿上衣服,收集农夫约翰在N(1<=N<=100,000)个牛棚隔间中留下的糖果,以此来庆祝美国秋天的万圣节. 由于牛棚不太大,FJ通过指定奶牛必须遵 ...
- 洛谷 P3143 [USACO16OPEN]钻石收藏家Diamond Collector 解题报告
P3143 [USACO16OPEN]钻石收藏家Diamond Collector 题目描述 Bessie the cow, always a fan of shiny objects, has ta ...
- 洛谷 P3143 [USACO16OPEN]钻石收藏家Diamond Collector 题解
P3143 [USACO16OPEN]钻石收藏家Diamond Collector 题目描述 Bessie the cow, always a fan of shiny objects, has ta ...
随机推荐
- MapReduce:输入是两个文件,file1代表工厂表,包含工厂名列和地址编号列;file2代表地址表,包含地址名列和地址编号列。要求从输入数据中找出工厂名和地址名的对应关系,输出"工厂名----地址名"表
文件如下: file1: Beijing Red Star Shenzhen Thunder Guangzhou Honda Beijing Rising Guangzhou Development ...
- C++二阶构造函数
转自:http://blog.51cto.com/9291927/1896411 一.构造函数的问题 构造函数存在问题: A.构造函数只提供自动初始化成员变量的机会 B.不能保证初始化逻辑一定成功,如 ...
- Qt开发串口
首先,在工程文件里面, QT += serialport 在头文件里面, #include <QSerialPort> 1.配置打开串口 QSerialPort* myserial = n ...
- 无网络环境用pip安装python类包
1.现在有网络的电脑安装相应的包 pip install django 2.安装完成后 打包 1)新建一个文件夹(package),用来存放包: 2)执行 pip list #查看安装的包 pip f ...
- jquery中ajax回调函数使用this
今天在写ajax请求的的时候success中代码老是不能正常执行,找了半天的原因,代码如下: 1 $.ajax({type: 'GET', 2 url: url, 3 data: oData, 4 s ...
- Record and accumulation
最近有同学在准备校招的问题,问我几个问题,我觉得有必要把大家的问题汇总下: 1.在设计变量的while指挥时候,可以利用弹栈的特性以及Java传值 只是传递的副本 去控制 : https://www ...
- TNS-12541: TNS:no listener , TNS-12542: TNS:address already in use
查看数据库监听状态不对$ lsnrctl status LSNRCTL for IBM/AIX RISC System/6000: Version 10.2.0.5.0 - Production on ...
- elasticsearch 拼音搜索
现在很多公司都开始使用es来做搜索,我们公司目前也有好几个业务部门在用,我主要做商户搜索,为业务部门提供基础支持.上周把呼叫中心的搜索重新整理了下,在新增几个字段后,全量同步发现通过拼音首字母搜索无法 ...
- 多线程-模拟阻塞queue队列
前阵子学习了多线程,现在进行总结一下,模拟队列. 分析问题: (1)首先需要一个容器存放元素,这里用linkedList队列. (2)每次像容器中添加或删除元素的时候需要计数,所以这里需要一个计数器, ...
- 红米手机.驱动.XP安装
1.发现 官网上下载的 驱动在 XP下安装不上去... (Win7 记得 貌似 没有问题...) 1.1.网上搜到的 解决方案为:解决手机不能连电脑 XP系统无法安装MTP设备驱动的终极解决_小米No ...