hdu5438 dfs+并查集 长春网赛
先dfs对度小于2的删边,知道不能删为止。
然后通过并查集来计算每一个分量里面几个元素。
#include<iostream>
#include<cstring>
#include<vector>
#define maxn 10010
#define LL __int64
using namespace std;
int in[maxn],vis[maxn],p,pa[maxn],cou[maxn];
LL sum[maxn];
vector<int>mp[maxn];
void dfs(int u)
{
int i;
vis[u]=;
for(i=;i<mp[u].size();i++)
{
in[u]--;
in[mp[u][i]]--;
if(!vis[mp[u][i]]&&in[mp[u][i]]<)
dfs(mp[u][i]);
}
}
int Find(int x)
{
if(x!=pa[x])
pa[x]=Find(pa[x]);
return pa[x];
}
int main()
{
int i,j,t,q;
cin>>t;
while(t--)
{
cin>>p>>q;
for(i=;i<=p;i++)
{
mp[i].clear();
pa[i]=i;
cou[i]=;
vis[i]=;
in[i]=;
}
for(i=;i<=p;i++)
{
cin>>sum[i];
}
while(q--)
{
int x,y;
cin>>x>>y;
mp[x].push_back(y);
mp[y].push_back(x);
in[x]++;
in[y]++;
}
int flag;
while()
{
flag=;
for(i=;i<=p;i++)
{
if(!vis[i]&&in[i]<)
{
flag=;
break;
}
}
if(flag==)
break;
for(i=;i<=p;i++)
{
if(!vis[i]&&in[i]<)
{
dfs(i);
}
}
}
/*for(i=1;i<=p;i++)
{
printf("%d ",in[i]);
}
printf("\n");
for(i=0;i<mp[1].size();i++)
{
printf("%d ",mp[1][i]);
}
printf("\n");*/
for(i=;i<=p;i++)
{
if(vis[i])continue;
int fx=Find(i);
int num=mp[i].size();
//printf("%d ",fx);
for(j=;j<num;j++)
{
if(!vis[mp[i][j]]&&in[mp[i][j]]>=)
{
int fy=Find(mp[i][j]);
if(fx==fy)continue;
//printf("%d ",mp[i][j]);
pa[fy]=fx;
sum[fx]+=sum[fy];
cou[fx]+=cou[fy];
//printf("%d ",cou[fx]);
}
}
//printf("\n");
}
LL ans=;
for(i=;i<=p;i++)
{
if(pa[i]==i&&!vis[i]&&cou[i]%&&cou[i]!=)
{
//printf("%I64d ",sum[i]);
ans+=sum[i];
}
}
//puts("");
printf("%I64d\n",ans);
}
}
/*
9 9
1 2 3 4 5 6 7 8 9
1 2
2 3
3 4
1 4
2 5
5 6
7 8
8 9
7 9
*/
hdu5438 dfs+并查集 长春网赛的更多相关文章
- hdu5441 并查集 长春网赛
对于每次询问的大的值,都是从小的值开始的,那就从小到大处理,省去很多时间,并且秩序遍历一遍m; 这题cin容易超时,scanf明显快很多很多.G++又比C++快; //这代码scanf400+,cin ...
- ZOJ 3811 / 2014 牡丹江赛区网络赛 C. Untrusted Patrol bfs/dfs/并查集
Untrusted Patrol Time Limit: 3 Seconds Memory Limit: 65536 KB ...
- 并查集+拓扑排序 赛码 1009 Exploration
题目传送门 /* 题意:无向图和有向图的混合图判环: 官方题解:首先对于所有的无向边,我们使用并查集将两边的点并起来,若一条边未合并之前, 两端的点已经处于同一个集合了,那么说明必定存在可行的环(因为 ...
- 分珠(dfs+并查集)
1140 分珠 时间限制:500MS 内存限制:65536K提交次数:24 通过次数:18 题型: 编程题 语言: G++;GCC Description 如下图所示,有若干珠子,每颗珠子重量不 ...
- Codeforces 1027D Mouse Hunt (强连通缩点 || DFS+并查集)
<题目链接> 题目大意: 有n个房间,每个房间都会有一只老鼠.处于第i个房间的老鼠可以逃窜到第ai个房间中.现在要清理掉所有的老鼠,而在第i个房间中防止老鼠夹的花费是ci,问你消灭掉所有老 ...
- CodeForces - 455C Civilization (dfs+并查集)
http://codeforces.com/problemset/problem/455/C 题意 n个结点的森林,初始有m条边,现在有两种操作,1.查询x所在联通块的最长路径并输出:2.将结点x和y ...
- PAT甲题题解-1021. Deepest Root (25)-dfs+并查集
dfs求最大层数并查集求连通个数 #include <iostream> #include <cstdio> #include <algorithm> #inclu ...
- hdu 1198 Farm Irrigation(深搜dfs || 并查集)
转载请注明出处:viewmode=contents">http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://acm ...
- 1021. Deepest Root (25)——DFS+并查集
http://pat.zju.edu.cn/contests/pat-a-practise/1021 无环连通图也可以视为一棵树,选定图中任意一点作为根,如果这时候整个树的深度最大,则称其为 deep ...
随机推荐
- leetcode 847. Shortest Path Visiting All Nodes 无向连通图遍历最短路径
设计最短路径 用bfs 天然带最短路径 每一个状态是 当前的阶段 和已经访问过的节点 下面是正确但是超时的代码 class Solution: def shortestPathLength(self, ...
- CentOS 6.8 Linux系统U盘制作启动项
1.下载CentOS 6.8镜像文件: 2.下载地址:http://man.linuxde.net/download/CentOS_6_8 3.准备一个U盘,最好8G的: 4.下载UltraISO盘制 ...
- 2019.10.25 csp-s模拟测试87 反思总结
一次非常神奇的考试,考完试以后看着T2的0pts突然笑死我自己 太智障了这什么神奇的题意理解错误23333 T1一眼分类讨论,两眼二分,觉得分类讨论有点玄学但是出题人八成不会卡[何],然后本着对二分的 ...
- Simple implementation and results of genetic algorithm.
This experiment was done for the final assignment of my Professional English class. This part has be ...
- 部分树形DP的优化
ural1018. Binary Apple Tree 题目大意 有一棵n个节点的树,树上每个节点有一个值,选择m个节点使这些节点值的和最大 要求:如果选当前节点,则必须选它的父节点 解法: 我们设d ...
- 【python之路33】开发模式单例模式及简单的服务器请求框架原理
1.单例模式指的是创建单个实例,例如:数据库连接池中包含10个数据库连接,用户访问数据时随机从连接池中拿出一个进行连接,其他用户再次访问时不再创建对象进行连接 #!usr/bin/env python ...
- Django项目:CRM(客户关系管理系统)--20--12PerfectCRM实现King_admin分页上下页
{#table_data_list.html#} {## ————————08PerfectCRM实现King_admin显示注册表的字段表头————————#} {% extends 'king_m ...
- JavaScript内容回顾
<!DOCTYPE html> <!--JavaScript内容回顾--> <html lang="en"> <head> < ...
- bzoj 2662 [BeiJing wc2012]冻结——分层图
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2662 这种的都是分层图. #include<iostream> #include ...
- HTTP协议详解(经典)
转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...