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

知名网站建设商家做竞价的网站

知名网站建设商家,做竞价的网站,长沙网络公司哪个最好,wordpress 3.9.2 下载基环树其实并不是树,是指有n个点n条边的图,我们知道n个点n-1条边的连通图是树,再加一条边就会形成一个环,所以基环树中一定有一个环,长下面这样: 由基环树可以引申出基环内向树和基环外向树 基环内向树如…

基环树其实并不是树,是指有n个点n条边的图,我们知道n个点n-1条边的连通图是树,再加一条边就会形成一个环,所以基环树中一定有一个环,长下面这样:
在这里插入图片描述
由基环树可以引申出基环内向树基环外向树

基环内向树如下,特点是每个点的出度为1
在这里插入图片描述
基环外向树如下,特点是每个点的入度为1
在这里插入图片描述
下面放点题,做到相关题目随时更新

基环树+组合数学

CF 1454E Number of Simple Paths

先记录环上的点,每个环上的点引出去的子树中,两点之间都只有一条路径,然后子树和其他点之间都有两条路径(因为有个环),可以循环计算每个子树,答案累加即可

#include <bits/stdc++.h>using namespace std;typedef pair<int, int> PII;#define int long longvoid solve()
{int n;cin >> n;vector<vector<int>> g(n + 1);vector<int> in(n + 1);for (int i = 0 ;i < n; i ++ ){int a, b;cin >> a >> b;g[a].push_back(b);g[b].push_back(a);in[a] ++ , in[b] ++ ;}queue<int> q;for (int i = 1; i <= n; i ++ ) {if (in[i] == 1) q.push(i);}while (q.size()){auto t = q.front();q.pop();for (int i = 0; i < g[t].size(); i ++ ){int j = g[t][i];in[j] -- ;if (in[j] == 1) q.push(j);}}vector<int> huan;vector<int> st(n + 1);for (int i = 1; i <= n; i ++ ){if (in[i] > 1){huan.push_back(i);st[i] = true;}}int ans = 0, sumtmp, sum = 0;vector<bool> visited(n + 1);function<void(int, int)> dfs = [&](int u, int fa){sumtmp ++ ;if (visited[u]) return;visited[u] = true;for (int i = 0; i < g[u].size(); i ++ ){int j = g[u][i];if (j == fa || visited[j] || st[j]) continue;dfs(j, u);}return;};for (auto i : huan){sumtmp = 0;dfs(i, -1);ans += sumtmp * (sumtmp - 1) / 2;ans += (sumtmp - 1) * (n - sumtmp - sum) * 2;sum += sumtmp - 1;}ans += huan.size() * (huan.size() - 1);cout << ans << '\n';
}signed main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);int t = 1;cin >> t;while (t -- ){solve();}
}

基环内向树+dfs

牛客 寒假集训1K 牛镇公务员考试

基环内向树(准确的说应该是森林)

编号 i 向 a[i] 连边,表示对其限制,我们可以发现环之外的链对答案没什么影响,因为确定了环上一点,可以倒推出链上的所有答案(原因就是约束关系),所以我们在环上任取一点,枚举这个点的五种答案,然后遍历一下环看这个答案是否合法

因为不保证联通,所以需要遍历每一个点

#include <bits/stdc++.h>using namespace std;#define int long long
using i64 = long long;typedef pair<int, int> PII;
typedef pair<double, double> PDD;
typedef pair<int, PII> PIII;const int N = 1000010;
const int maxn = 1e6 + 1;
const int mod = 998244353;void solve()
{int n;cin >> n;vector<int> a(n + 1);vector<string> s(n + 1);for (int i = 1; i <= n; i ++ ) cin >> a[i] >> s[i];vector<bool> st(n + 1);int ans = 1;for (int i = 1; i <= n; i ++ ){if (st[i]) continue;int j = i;vector<int> huan;for (; !st[j]; j = a[j]){huan.push_back(j);st[j] = true;}auto iter = find(huan.begin(), huan.end(), j);if (iter == huan.end()) continue;huan = {iter, huan.end()};int tmp = 0;for (int k = 0; k < 5; k ++ ){int h = k;for (auto t : huan) h = (int)(s[t][h] - 'A');tmp += h == k;}ans = ans * tmp % mod;}cout << ans << '\n';
}signed main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);int t = 1;// cin >> t;while (t -- ){solve();}
}
http://www.yayakq.cn/news/446803/

相关文章:

  • 网站建设 合作协议怎么做无损mp3下载网站
  • 三亚谁做网站网页制作软件有哪些
  • 什么是网站程序云南公司建网站多少钱
  • 丰台网站开发公司怎么用源码做网站
  • 环境网站模板最新重大新闻
  • 重庆靓号网站建设宁德网
  • 贴吧广告投放如何优化wordpress
  • wordpress的语言文件在哪沧州网站排名优化
  • 京东商城网站开发平台哪个网站做长图免费转高清
  • 做一个电子商务网站数据库重置密码后WordPress出错
  • 制造业营销外贸网站建设重庆速代网络科技
  • 专做定制的网站如何兼职做网站
  • 做网站php语言用什么工具完整网页制作教程
  • 网站建设开发感想商务网站建设ppt
  • 搜讯网站开发深圳市西特塔网站建设工作室
  • 做网站怎么找客户哪里有学视频剪辑培训的
  • asp网站做安全南通高端网站建设公司
  • 广州 深圳 外贸网站建设网站设置怎么清除
  • 石家庄企业网站制作一键视频制作免费软件
  • 文登区做网站的公司制作简单门户网站步骤
  • 好用的h5网站模板下载网站备案网站名称怎么填
  • 杭州哪家网站建设公司好点一个中介平台网站的建设费
  • 网站设计制作开发seo免费诊断电话
  • 怎样做自己的个人网站深圳哪里有网络推广渠避
  • 网站开发杭州05网答案大全
  • 住房城乡建设部网站诚信全自动网站建设
  • 广州定制网站设专业网站排名优化
  • 什么网站可以做效果图开源cms框架
  • 公司做企业网站的哪家好常州网站建设公司排名
  • 织梦网站怎么重新安装教程wordpress数据大不行