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栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...
随机推荐
- Spring Mvc中Jsp也页面怎么会获取不到Controller中的数据
----------Controller ------- package com.test.mvc; import org.springframework.stereotype.Controller; ...
- redhat 7.6 用户和组
用户 useradd user1 //新建用户user1 userdel user1 //删除用户user1 userdel -r user1 //删除用户并且删除h ...
- MySQL 之存储引擎与数据类型与数据约束
一.存储引擎场景 1.InnoDB 用于事务处理应用程序,支持外键和行级锁.如果应用对事物的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包括很多更新和删除操作,那 ...
- JavaScript图形实例:正弦曲线
正弦曲线的坐标方程为: Y=A*SIN(X) (A为振幅) 1.正弦曲线 在弧度为0~4π的正弦曲线上取360个点,将这些点用线连接起来,可以绘制出正弦曲线.编写如下的HTML代码. <! ...
- c++ 关键字this的用法简介
前言: 自己在程序的时候一般不用this,但是在后来发现越来越有必要好好整理一下该知识点了,如有不足之处以及缺漏之处还望各位读者指出. 概念&实例 this 是 C++ 中的一个关键字,也是一 ...
- Redis第一篇章 Hello Word!
1.找到redis目录 2.在新建一个文件夹(myredis) 3.将redis.conf 进行复制到myredis 文件夹里面 4.启动redis redis-server /home/dc2-us ...
- 吴裕雄--天生自然PYTHON爬虫:爬虫攻防战
我们在开发者模式下不仅可以找到URL.Form Data,还可以在Request headers 中构造浏览器的请求头,封装自己.服务器识别浏览器访问的方法就是判断keywor是否为Request h ...
- CH8 课后习题
8.1和8.2 #include <iostream> using namespace std; istream& f(istream& in) { int v; in & ...
- 《Netlogo多主体建模入门》笔记3
3- 用“生命游戏”认识Patch 代码: patches-own[living] to setup clear-all ask patches [ < 0.3[ set pcolo ...
- centos 下yum 安装nginx
centos 下yum 安装nginx 1. 直接yum install nginx不行,要先处理下源: rpm -ivh http://nginx.org/packages/centos/6/noa ...