当前位置: 首页 > wzjs >正文

长沙网络公司大全长沙seo优化公司

长沙网络公司大全,长沙seo优化公司,现代通信技术专业学什么,哪些网站可以做微商【题目链接】 洛谷 P1330 封锁阳光大学 【题目考点】 1. 图论:二分图判定 【解题思路】 放河蟹可以抽象为选择顶点。 “当两只河蟹封锁了相邻的两个点时,他们会发生冲突”,也就是说不能选择一条边连接的两个顶点。 河蟹准备封锁所有道路…

【题目链接】

洛谷 P1330 封锁阳光大学

【题目考点】

1. 图论:二分图判定

【解题思路】

放河蟹可以抽象为选择顶点。
“当两只河蟹封锁了相邻的两个点时,他们会发生冲突”,也就是说不能选择一条边连接的两个顶点。
河蟹准备封锁所有道路,也就是说每条边两端的顶点至少有一个是被选择的顶点。不存在某条边两端都是未选择顶点。
对于一个图的连通分量,所有选择的顶点构成一个集合,未选择的顶点构成一个集合。图中每条边都连接了一个已选择顶点和未选择顶点,显然该图是二分图。
对每个连通分量进行二分图染色,染色的同时统计每个颜色顶点集合的顶点数量。染色后得到两种颜色的顶点集合。由于要选择最少的顶点,那么看哪一个集合的顶点数量更少,就选择哪个集合中的所有顶点。
将每个连通分量中顶点数更少的集合的顶点数加和,即为该题结果。如果某个连通分量在进行二分图判定后发现并不是二分图,那么输出Impossible。

【题解代码】

解法1:二分图判定
  • 写法1:深搜二分染色
#include<bits/stdc++.h>
using namespace std;
#define N 10005
int n, m, color[N], ct[3], ans;//ct[1]、ct[2]颜色1的数量和颜色2的数量 
vector<int> edge[N];
bool dfs(int u)
{for(int v : edge[u]){if(color[v] == 0){color[v] = 3-color[u];ct[color[v]]++;if(!dfs(v))return false;}else if(color[v] == color[u])return false;}return true;
} 
int main()
{int f, t;cin >> n >> m;for(int i = 1; i <= m; ++i){cin >> f >> t;edge[f].push_back(t);edge[t].push_back(f);}for(int i = 1; i <= n; ++i) if(color[i] == 0){color[i] = 1;ct[1] = 1, ct[2] = 0;if(!dfs(i)){cout << "Impossible" << endl;return 0;}ans += min(ct[1], ct[2]);}cout << ans;return 0;
}
  • 写法2:广搜二分染色
#include<bits/stdc++.h>
using namespace std;
#define N 10005
int n, m, color[N], ct[3], ans;//ct[1]、ct[2]颜色1的数量和颜色2的数量 
vector<int> edge[N];
bool bfs(int sv)
{queue<int> que;que.push(sv);while(!que.empty()){int u = que.front();que.pop();for(int v : edge[u]){if(color[v] == 0){color[v] = 3-color[u];ct[color[v]]++;que.push(v); }else if(color[v] == color[u])return false;}}return true;
}
int main()
{int f, t;cin >> n >> m;for(int i = 1; i <= m; ++i){cin >> f >> t;edge[f].push_back(t);edge[t].push_back(f);}for(int i = 1; i <= n; ++i) if(color[i] == 0){color[i] = 1;ct[1] = 1, ct[2] = 0;if(!bfs(i)){cout << "Impossible" << endl;return 0;}ans += min(ct[1], ct[2]);}cout << ans;return 0;
}
http://www.dtcms.com/wzjs/307225.html

相关文章:

  • 网上商城 网站建设 解决方案seo网站优化软件
  • 四川网站建设 旋风百度助手
  • 做游戏课程网站什么是企业营销型网站
  • 西安做网站朋朋网络网站创建公司
  • 网站建设图片怎么切合肥网站推广优化
  • 网站开发维护多少钱东营网站推广公司
  • 妇科在线医生免费咨询重庆网站seo技术
  • 网站站点查询百度明星人气榜入口
  • 网络营销课程视频哈尔滨seo公司
  • wordpress做文学网自己怎么优化关键词
  • 宝塔一键部署wordpress最新版seo排名影响因素主要有
  • 怎样制作网站站点二级域名免费分发
  • 企业网站栏目设计360优化大师安卓下载
  • 做网站提升公司形象友链网
  • 杭seo网站建设排名被逆冬seo课程欺骗了
  • 群晖wordpress建站教程河南seo推广
  • 做淘宝优惠劵网站服务器配置公司网络搭建
  • 厦门帮忙建设网站360推广和百度推广哪个好
  • 网站banner的设计要素seo优化师
  • 做网站价格表互联网营销外包推广
  • wap网站生成微信小程序惠州百度推广排名
  • 深圳网站建设网站制作地推拉新app推广怎么做
  • 淘宝网站怎么做视频教程谷歌搜索广告优化
  • 空壳网站查询关键词挖掘站长
  • 南京cms建站发软文
  • 怎样给网站做图标网店推广策略
  • 网站设计网站项目流程图百度引擎入口官网
  • wordpress 大型网站百度标注平台怎么加入
  • 贵州网推传媒有限公司株洲seo优化哪家好
  • 找设计网站公司360优化大师