Light OJ 1009
题意: 给你一个二分图, (可能不连通) 求可能多的子集元素个数;
思路: 直接DFS 给二分图染色就有了, 统计联通块中个数, 去最大值相加即可。
#include<bits/stdc++.h>
using namespace std;
const int maxn = 20000 + 131;
struct Node {
int One, Zre;
}N[maxn / 2];
vector<int> E[maxn];
bool Vis[maxn];
int Cnt void DFS(int e, int k)
{
for(int i = 0; i < E[e].size(); ++i)
{
if(Vis[E[e][i]] == false)
{
//cout << "This is E : " << E[e][i] << endl;
Vis[E[e][i]] = true;
if(k == 0) N[Cnt].Zre ++;
else N[Cnt].One ++;
DFS(E[e][i], !k);
}
}
} int Solve()
{
Cnt = 0;
for(int i = 0; i < maxn; ++i)
{
if(Vis[i] == false && E[i].size())
{
Cnt ++;
N[Cnt].One = 1;
Vis[i] = true;
DFS(i, 0);
}
}
/*for(int i = 1; i <= Cnt; ++i)
{
cout << N[i].Zre << " " << N[i].One << endl;
}*/
int Ans = 0;
for(int i = 1; i <= Cnt; ++i)
Ans += max(N[i].Zre, N[i].One);
return Ans;
} void INIT()
{
memset(N,0,sizeof(N));
memset(Vis,0,sizeof(Vis));
for(int i = 0; i < maxn; ++i)
E[i].clear();
} int main()
{
int t, n, u ,v;
scanf("%d", &t);
for(int kase = 1; kase <= t; ++ kase)
{
INIT();
scanf("%d", &n);
for(int i = 0; i < n; ++i)
{
scanf("%d %d", &u, &v);
E[u].push_back(v);
E[v].push_back(u);
}
int ret = Solve();
printf("Case %d: %d\n", kase, ret);
}
};
Light OJ 1009的更多相关文章
- Light OJ 1114 Easily Readable 字典树
题目来源:Light OJ 1114 Easily Readable 题意:求一个句子有多少种组成方案 仅仅要满足每一个单词的首尾字符一样 中间顺序能够变化 思路:每一个单词除了首尾 中间的字符排序 ...
- Light OJ 1429 Assassin`s Creed (II) BFS+缩点+最小路径覆盖
题目来源:Light OJ 1429 Assassin`s Creed (II) 题意:最少几个人走全然图 能够反复走 有向图 思路:假设是DAG图而且每一个点不能反复走 那么就是裸的最小路径覆盖 如 ...
- Light OJ 1406 Assassin`s Creed 减少国家DP+支撑点甚至通缩+最小路径覆盖
标题来源:problem=1406">Light OJ 1406 Assassin`s Creed 意甲冠军:向图 派出最少的人经过全部的城市 而且每一个人不能走别人走过的地方 思路: ...
- Light OJ 1316 A Wedding Party 最短路+状态压缩DP
题目来源:Light OJ 1316 1316 - A Wedding Party 题意:和HDU 4284 差点儿相同 有一些商店 从起点到终点在走过尽量多商店的情况下求最短路 思路:首先预处理每两 ...
- light oj 1007 Mathematically Hard (欧拉函数)
题目地址:light oj 1007 第一发欧拉函数. 欧拉函数重要性质: 设a为N的质因数.若(N % a == 0 && (N / a) % a == 0) 则有E(N)=E(N ...
- Light OJ 1406 Assassin`s Creed 状态压缩DP+强连通缩点+最小路径覆盖
题目来源:Light OJ 1406 Assassin`s Creed 题意:有向图 派出最少的人经过全部的城市 而且每一个人不能走别人走过的地方 思路:最少的的人能够走全然图 明显是最小路径覆盖问题 ...
- Light OJ 1288 Subsets Forming Perfect Squares 高斯消元求矩阵的秩
题目来源:Light OJ 1288 Subsets Forming Perfect Squares 题意:给你n个数 选出一些数 他们的乘积是全然平方数 求有多少种方案 思路:每一个数分解因子 每隔 ...
- Jan's light oj 01--二分搜索篇
碰到的一般题型:1.准确值二分查找,或者三分查找(类似二次函数的模型). 2.与计算几何相结合答案精度要求比较高的二分查找,有时与圆有关系时需要用到反三角函数利用 角度解题. 3.不好直接求解的一类计 ...
- Light OJ 1272 Maximum Subset Sum 高斯消元 最大XOR值
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u011686226/article/details/32337735 题目来源:problem=12 ...
随机推荐
- Nginx 学习笔记(八)http和https跨域问题解决
今天在做网易云信的时候,修改了一下源码,使用自己的服务端进行登陆, 注意:这里是使用http域名访问https域名 1.下载源码,配置了IM的域名,im.tinywan.com 没有开启https,具 ...
- C#利用Guid实现真随机数
C#中的随机数可以利用Random类很简单地生成随机数,代码如下: Random rdmNum=new Random();//生成随机数对象 int ans=rdmNum.Next(a,b);//生成 ...
- 局域网内ping [局域网内ip地址]命令详解
一.工作过程 主机A向主机B发送一个ICMP请求报文[类型字段为8,代码字段为0],若收到ICMP回复报 文[类型字段为0,代码字段为0]则说明主机B处于活动状态:若超时未收到回复,则可能是 因为(1 ...
- springboot12-zuul
Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门,提供动态路由,监控,弹性,安全等的边缘服务 所有请求都经过网关(API Gateway)zuul,然后转发到各个子服 ...
- 2017CCPC秦皇岛 H题Prime Set&&ZOJ3988
题意: 定义一种集合,只有两个数,两个数不同且加起来为素数.要从n个数里抽出数字组成该集合(数字也可以是1~n,这个好懵圈啊),要求你选择最多k个该种集合组成一个有最多元素的集合,求出元素的数量. 思 ...
- js对象数组去重
<script> var array = [{ greeting: "Hello", nickName: "Aziz" }, { greeting: ...
- 前端下载excel打不开求助+解法
解法: //axios return request({ url: "/saleUnit/exportSaleUnit", headers: { "biz-sourc ...
- Python基础3(2017-07-20)
1.文件操作 现有文件如下: We were both young when I first saw you 当我第一次看见你的时候,我们都还年轻 I close my eyes and the fl ...
- maven的pom.xml文件的标签详解
该博文引至:https://www.cnblogs.com/hafiz/p/5360195.html <project xmlns="http://maven.apache.org/P ...
- sonar的安装以及使用
SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,下面将会介绍一下这个工具的安装.配置以及使用. 1. 简介 1. sonar是什么 Sonar是一个用于代码质 ...