BZOJ 3332
题解:给边赋上权值,然后求最大生成树,如果不符合那就无解
证明:留坑
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxN=;
const int maxM=;
const int oo=; int TT;
int n,m;
int f[maxN][maxN];
struct Edge{
int u,v,ed;
}edges[maxM];
bool mycmp(const Edge &E1,const Edge &E2){
return E1.ed>E2.ed;
} int father[maxN];
int Getf(int x){
if(father[x]==x)return x;
return father[x]=Getf(father[x]);
}
void Unionn(int x,int y){
int fx=Getf(x);
int fy=Getf(y);
if(fx!=fy){
father[fx]=fy;
}
} int cntedge=;
int head[maxN]={};
int to[maxN<<],nex[maxN<<],dist[maxN<<];
void Addedge(int x,int y,int z){
nex[++cntedge]=head[x];
to[cntedge]=y;
dist[cntedge]=z;
head[x]=cntedge;
} int fdist[maxN];
void Dfs(int x,int fa){
for(int i=head[x];i;i=nex[i]){
if(to[i]==fa)continue;
fdist[to[i]]=min(fdist[x],dist[i]);
Dfs(to[i],x);
}
} void Myinit(){
cntedge=;
memset(head,,sizeof(head));
}
int rd(){
int r=,k=;
char c=getchar();
for(;c<''||c>'';c=getchar())if(c=='-')k=-;
for(;c>=''&&c<='';c=getchar())r=r*+c-'';
return r*k;
} int main(){
scanf("%d",&TT);
for(int t=;t<=TT;++t){
Myinit();
scanf("%d%d",&n,&m);
for(int i=;i<=m;++i)scanf("%d%d",&edges[i].u,&edges[i].v);
for(int i=;i<=n;++i){
for(int j=;j<=n;++j){
scanf("%d",&f[i][j]);
}
}
for(int i=;i<=m;++i){
int u=edges[i].u;
int v=edges[i].v;
edges[i].ed=f[u][v];
}
sort(edges+,edges++m,mycmp);
for(int i=;i<=n;++i)father[i]=i;
for(int i=;i<=m;++i){
int u=edges[i].u,v=edges[i].v,z=edges[i].ed;
if(Getf(u)==Getf(v))continue;
Unionn(u,v);
Addedge(u,v,z);
Addedge(v,u,z);
}
int fla=;
for(int u=;u<=n;++u){
fdist[u]=oo;
Dfs(u,);
for(int v=;v<=n;++v){
if(u==v)continue;
if(Getf(u)!=Getf(v)){
if(f[u][v]!=-){
fla=;break;
}
}else{
if(f[u][v]!=fdist[v]){
fla=;break;
}
}
}
if(!fla)break;
}
if(fla)printf("Case #%d: Yes\n",t);
else printf("Case #%d: No\n",t);
}
return ;
}
BZOJ 3332的更多相关文章
- [BZOJ 3332]旧试题
Description 圣诞节将至.一年一度的难题又摆在wyx面前——如何给妹纸送礼物. wyx的后宫有n人,这n人之间有着复杂的关系网,相互认识的人有m对.wyx想要量化后宫之间的亲密度,于是准备给 ...
- [BZOJ 3110] [luogu 3332] [ZJOI 2013]k大数查询(权值线段树套线段树)
[BZOJ 3110] [luogu 3332] [ZJOI 2013]k大数查询(权值线段树套线段树) 题面 原题面有点歧义,不过从样例可以看出来真正的意思 有n个位置,每个位置可以看做一个集合. ...
- BZOJ 2127: happiness [最小割]
2127: happiness Time Limit: 51 Sec Memory Limit: 259 MBSubmit: 1815 Solved: 878[Submit][Status][Di ...
- BZOJ 3275: Number
3275: Number Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 874 Solved: 371[Submit][Status][Discus ...
- BZOJ 2879: [Noi2012]美食节
2879: [Noi2012]美食节 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1834 Solved: 969[Submit][Status] ...
- bzoj 4610 Ceiling Functi
bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...
- BZOJ 题目整理
bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...
- 【sdoi2013】森林 BZOJ 3123
Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数.第三行包含N个非负整数 ...
- 【清华集训】楼房重建 BZOJ 2957
Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...
随机推荐
- 浏览器输入URL后HTTP请求返回的完整过程
图:
- Mybatis 条件判断单双引号解析问题
最近使用 Mybatis 遇到了一个奇怪的问题,前端传了一个数字字符串(type = "1") ,我做了如下判断: <if test=" type == '1' & ...
- 二 Mybatis架构&MybatisDao的两种开发方式(原始Dao,接口动态代理)
MyBatis架构图 三个对象: SqlSessionFactoryBuilder.SqlSessionFactory.SqlSession SqlSessionFactoryBuilder:主要用来 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表单:表单控件大小
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- docker-构建建tomcat镜像并启动容器
1.下载一个tomcat8,解压好改名为tomcat并配置端口为80,删除webapps下的默认的应用,修改tomcat/bin目录下脚本的权限,chmod +x *.sh 2.路径一般放在/usr/ ...
- 二、多线程基础-乐观锁_悲观锁_重入锁_读写锁_CAS无锁机制_自旋锁
1.10乐观锁_悲观锁_重入锁_读写锁_CAS无锁机制_自旋锁1)乐观锁:就像它的名字一样,对于并发间操作产生的线程安全问题持乐观状态,乐观锁认为竞争不总是会发生,因此它不需要持有锁,将 比较-设置 ...
- Java中Compareable和Comparator两种比较器的区别
Java中Compareable和Comparator两种比较器的区别 参考原文链接:https://www.cnblogs.com/ldy-blogs/p/8488138.html 1.引言 在ja ...
- 「Luogu1402」酒店之王
传送门 Luogu 解题思路 网络流板子题. 建图细节见代码,也可以参考这道差不多的题 细节注意事项 咕咕咕. 参考代码 #include <algorithm> #include < ...
- 「牛客CSP-S2019赛前集训营2」服务器需求
传送门 NowCoder 解题思路 考虑一种贪心选择方法:每次选出最大的 \(m\) 个 \(a_i\) 进行覆盖. 那么就会出现一种特殊情况,最高的那个 \(a_i\) 需要多次选择,而且不得不每次 ...
- windowsService 程序
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...