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

国外网站做营销推广价格一般多少

国外网站做营销,推广价格一般多少,自建网上商城,东莞网站建设多少钱P3469 [POI 2008] BLO-Blockade 题目描述 B 城有 n n n 个城镇(从 1 1 1 到 n n n 标号)和 m m m 条双向道路。 每条道路连结两个不同的城镇,没有重复的道路,所有城镇连通。 把城镇看作节点,把道路看作边&…

P3469 [POI 2008] BLO-Blockade

题目描述

B 城有 n n n 个城镇(从 1 1 1 n n n 标号)和 m m m 条双向道路。

每条道路连结两个不同的城镇,没有重复的道路,所有城镇连通。

把城镇看作节点,把道路看作边,容易发现,整个城市构成了一个无向图。

请你对于每个节点 i i i 求出,把与节点 i i i 关联的所有边去掉以后(不去掉节点 i i i 本身),无向图有多少个有序点 ( x , y ) (x,y) (x,y),满足 x x x y y y 不连通。

输入格式

第一行包含两个整数 n n n m m m

接下来 m m m 行,每行包含两个整数 a a a b b b,表示城镇 a a a b b b 之间存在一条道路。

输出格式

输出共 n n n 行,每行输出一个整数。

i i i 行输出的整数表示把与节点 i i i 关联的所有边去掉以后(不去掉节点 i i i 本身),无向图有多少个有序点 ( x , y ) (x,y) (x,y),满足 x x x y y y 不连通。

输入输出样例 #1

输入 #1

5 5
1 2
2 3
1 3
3 4
4 5

输出 #1

8
8
16
14
8

说明/提示

n ≤ 100000 n\le 100000 n100000 m ≤ 500000 m\le500000 m500000

思路:

这题分析题意就是两个点 x , y x,y x,y 不在一个连通分量里面的数量有几对
设割点是 u u u 两棵子树 i , j i, j i,j 连着 u u u ,这两颗子树的去掉的不是割点的时候有序对应该是 s i × ( n − s i ) s_i × (n - s_i) si×(nsi) 。如果去掉割点的时候单独计算,割点去了之后就分出来了 m m m 个连通块,除了每棵子树(现在是连通块), s i × ( n − s i ) s_i × (n - s_i) si×(nsi)还要单独判断割点被分离出来的(不在任何子树中的节点),也就是 (所有点 - 所有子树的和 - 割点) * 所有子树的和 ( n − ∑ i = 1 k s i − 1 ) × ∑ i = 1 k s i (n-\sum_{i = 1}^{k}s_{i}-1)×\sum_{i = 1}^{k}s_{i} (ni=1ksi1)×i=1ksi n − ∑ i = 1 k s i − 1 n-\sum_{i = 1}^{k}s_{i}-1 ni=1ksi1这一部分求得是不在任何子树中的节点,也就是孤点。然后就是割点与这些孤点也能形成有序对,与子树形成的 s i × ( n − s i ) s_i × (n - s_i) si×(nsi) 这里计算过了,剩下的就是与孤点的,也就是 1 × ( n − ∑ i = 1 k s i − 1 ) 1 × (n-\sum_{i = 1}^{k}s_{i}-1) 1×(ni=1ksi1)。然后就是把这两部分加起来就是割点额外产生的结果 ( n − ∑ i = 1 k s i − 1 ) × ∑ i = 1 k s i + ( n − ∑ i = 1 k s i − 1 ) (n-\sum_{i = 1}^{k}s_{i}-1)×\sum_{i = 1}^{k}s_{i}+(n-\sum_{i = 1}^{k}s_{i}-1) (ni=1ksi1)×i=1ksi+(ni=1ksi1), 变形 ( n − ∑ i = 1 k s i − 1 ) × ( ∑ i = 1 k s i + 1 ) (n-\sum_{i = 1}^{k}s_{i}-1)×(\sum_{i = 1}^{k}s_{i}+1) (ni=1ksi1)×(i=1ksi+1)

在这里插入图片描述
举个例子:

初始图:A --- B --- C --- E|D --- F|G以割点B为例去掉边后的情况:A(孤点)C --- E(子树)D --- F(子树)|G以割点D为例去掉边后的情况:A --- B --- C --- E(子树)F(孤点)G(孤点)

总结一下:

删除的不是割点: 2 × ( n − 1 ) 2 × (n - 1) 2×(n1)
删除的是割点: ∑ i = 1 k s i × ( n − s i ) + ( n − ∑ i = 1 k s i − 1 ) × ( ∑ i = 1 k s i + 1 ) \sum_{i = 1}^{k} s_i × (n - s_i)+(n-\sum_{i = 1}^{k}s_{i}-1)×(\sum_{i = 1}^{k}s_{i}+1) i=1ksi×(nsi)+(ni=1ksi1)×(i=1ksi+1)

Tarjan AC code:

#include <iostream>
#include <climits>
#include <limits>
#include <vector>
#include <stack>typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;
typedef std::pair<int, int> PII;#define rep(i, n) for(int i = 0; i < n; i++)
#define Rep(i, len, n) for(int i = len; i < n; i++)
#define MAX_INT 0x7fffffff
#define MIN_INT 0x80000000const int INF = std::numeric_limits<int>::max();int n, m, tot = 0, root;
std::vector<std::vector<int>> e;
std::vector<int> low, dfn, cut;
std::vector<ll> size;  // 存储每个子树的大小
std::vector<ll> ans;   // 存储每个节点的答案inline void Tarjan(int u, int father) {low[u] = dfn[u] = ++tot;size[u] = 1;  // 初始化子树大小int child = 0;ll sum = 0;   // 用于累加所有子树的大小for(const int& v : e[u]) {if(v == father) continue;if(!dfn[v]) {Tarjan(v, u);low[u] = std::min(low[u], low[v]);size[u] += size[v];  // 更新当前节点的子树大小child++;if(low[v] >= dfn[u]) {if(u != root || child > 1) cut[u] = true; // 计算该子树贡献的不连通点对数ans[u] += size[v] * (n - size[v]);sum += size[v];}} else {low[u] = std::min(low[u], dfn[v]);}}// 计算剩余部分的贡献if(cut[u]) {ans[u] += (n - 1 - sum) * (sum + 1);// 加上根节点本身的贡献ans[u] += (n - 1);}
}int main(void) {std::ios::sync_with_stdio(false);std::cin.tie(nullptr), std::cout.tie(nullptr);std::cin >> n >> m;low.resize(n + 1);dfn.resize(n + 1);cut.resize(n + 1);e.resize(n + 1);size.resize(n + 1, 0);  // 初始化子树大小数组ans.resize(n + 1, 0);   // 初始化答案数组rep(i, m) {int a, b;std::cin >> a >> b;e[a].push_back(b);e[b].push_back(a);}root = 1;Tarjan(1, -1);Rep(i, 1, n + 1) {if(cut[i]) {std::cout << ans[i] << '\n';} else {// 非割点的答案是2*(n-1)std::cout << 2LL * (n - 1) << '\n';}}return 0;
}

文章转载自:

http://w3nWVklw.dthyq.cn
http://q9PRBXxY.dthyq.cn
http://X9UCVeBB.dthyq.cn
http://4iSPq76Z.dthyq.cn
http://jgaqAd1M.dthyq.cn
http://buhMhMYa.dthyq.cn
http://DVJLKlOa.dthyq.cn
http://jpK0lzUW.dthyq.cn
http://x11y6eYz.dthyq.cn
http://p6flPkhO.dthyq.cn
http://KvpGKbDE.dthyq.cn
http://flZkQVRN.dthyq.cn
http://OkRIQX1O.dthyq.cn
http://UzoWtSoz.dthyq.cn
http://d9OtlU7I.dthyq.cn
http://sozniem6.dthyq.cn
http://yRbPyKg9.dthyq.cn
http://dfyAE8e8.dthyq.cn
http://mtBt5tbi.dthyq.cn
http://nhTGfi4z.dthyq.cn
http://9L41xELu.dthyq.cn
http://7sfIzb4D.dthyq.cn
http://fCDrKeSj.dthyq.cn
http://Wkin1M3i.dthyq.cn
http://CJtKYYHc.dthyq.cn
http://kmGQWk2T.dthyq.cn
http://p4Og6b57.dthyq.cn
http://d2Bfmnvc.dthyq.cn
http://fLlea1NI.dthyq.cn
http://Vxyjo59B.dthyq.cn
http://www.dtcms.com/wzjs/650002.html

相关文章:

  • wordpress 边框大小seo排名快速刷
  • 免费微网站模板网站备案是什么意思
  • 视频广告网站网站建设的模板
  • 关于做无机化学实验的网站淘宝指数查询
  • 什么叫网站索引做你的爱人3在线观看
  • 公司网站制作需要什么步骤go网站做富集分析
  • 网站空间换了 使用原有域名wordpress增加首页菜单
  • 网站制作源码版权开网站需要钱吗
  • 住房城乡建设厅官方网站网站js修改头像代码
  • 涟源网站设计seo搜索优化 指数
  • 养殖业网站模板wordpress自动采集翻译
  • 河北网站建设备案价格中天建设集团有限公司总部在哪里
  • 上海营销型网站建设公司适合穷人的18个创业项目
  • 用织梦搭建网站北京制作网站主页
  • 威海市住房和城乡建设局网站给你一个网站你怎么做的吗
  • 建立公司网站需要注意什么兼职做网站这样的网站
  • 石家庄好用的招聘网站网站建设厘金手指排名二二
  • wordpress怎样做单页网站h5做的公司网站
  • 后端开发技术seo领导屋
  • 哪家建设公司网站湖北省建设用地预审网站
  • 如何申请免费的网站涨粉 wordpress
  • 大学做网站有哪些成都网站建设科技公司
  • 百度收录网站之后又怎么做品牌设计公司宣传画册
  • 网站开发硬件工程师待遇软件人员外包
  • 企业做网站需要提供什么资料做盗版电影网站后果
  • 什么视频直播网站做挣钱外贸公司有哪些职位
  • 慢慢来 网站建设html编辑器的程序怎么设置
  • 网站开发分析成都哪里可以做网站
  • 完整网站开发需要多久软文广告成功案例
  • 深圳哪家网站公司好单页网站seo如何优化