Gym 101334C 无向仙人掌
给出图,求他的“仙人掌度”,即求包括他自身的生成子图有多少?
只能删去仙人掌上的叶子的一条边,然后根据乘法原理相乘;
1、怎么求一个仙人掌叶子上有多少边? 可以利用点,边双连通的时间戳这个概念,但是绝对时间是不对的,只能用相对的时间戳。
2、怎么把第二种情况剔除掉? 就是记录每一个点加入环中的次数;
3、第三种情况,就是判连通了;
#include <bits/stdc++.h> using namespace std; const int maxn = + ; struct Sol {
vector<int> G[maxn];
int cyclecnt;
int cycle[maxn];
int dfn[maxn];
int c[maxn];
int n;
int num[maxn]; void init(int n) {
this->n = n;
for(int i=; i<=n; i++)
G[i].clear();
memset(dfn,,sizeof(dfn));
memset(cycle,,sizeof(cycle));
memset(num,,sizeof(num));
cyclecnt = ;
dfn[] = ;
} void AddEdge (int from,int to) {
G[from].push_back(to);
G[to].push_back(from);
} void dfs(int u,int fa) {
for(int i=; i<G[u].size(); i++) {
int v = G[u][i];
if(v==fa) continue; if(!dfn[v]) {
dfn[v] = dfn[u] + ;
dfs(v,u);
c[u]+=c[v];
} else if(dfn[v]<dfn[u]) {
cycle[cyclecnt++] = dfn[u] - dfn[v] + ;
c[u]++;
c[v]--;
}
}
} void ans() {
for(int i=; i<=n; i++)
if(c[i]>||dfn[i]==) {
puts("");
return;
}
//int res = 1;
//for(int i=0;i<cyclecnt;i++)
// res = res * cycle[i];
//return res; int len = ;
num[] = ; for(int i=; i<cyclecnt; i++) { for(int j=; j<=len; j++)
num[j] = num[j]*cycle[i]; for(int j=; j<=len; j++) {
num[j+] += num[j]/;
num[j] = num[j]%;
}
while(num[len+]) {
num[len+]+=num[len+]/;
num[++len]%=;
}
} for(int i=len; i>=; i--)
printf("%d",num[i]);
puts("");
} } sol; int main() {
freopen("cactus.in","r",stdin);
freopen("cactus.out","w",stdout);
int n,m;
scanf("%d%d",&n,&m); sol.init(n); for(int i=; i<m; i++) {
int k,u;
scanf("%d%d",&k,&u);
for(int i=; i<k-; i++) {
int v;
scanf("%d",&v);
sol.AddEdge(u,v);
u = v;
}
} sol.dfs(,-); sol.ans(); //printf("%d\n",sol.ans()); return ;
}
Gym 101334C 无向仙人掌的更多相关文章
- HDU 6041.I Curse Myself 无向仙人掌图
I Curse Myself Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- Gym - 101334C 3514 无向仙人掌
http://codeforces.com/gym/101334/attachments 题意: 判断是否是仙人掌图并且连通,如果是的话则计算出它有多少个连通子图也是仙人掌. 思路:连通子图也就是我们 ...
- $dy$讲课总结
字符串: 1.广义后缀自动机(大小为\(m\))上跑一个长度为\(n\)的串,所有匹配位置及在\(parent\)树上其祖先的数量的和为\(min(n^2,m)\),单次最劣是\(O(m)\). 但是 ...
- codeforces GYM 100114 J. Computer Network 无相图缩点+树的直径
题目链接: http://codeforces.com/gym/100114 Description The computer network of “Plunder & Flee Inc.” ...
- Gym 100553B Burrito King 无脑背包
题意就是你有n和m两个上限 吃一个东西会同时增加两个东西 m的值不能超过给定的m 问最后的n m值和每个东西吃了多少 贪心一下就好了 算一下性价比 从最大的开始吃 直到吃满了m n也一定是最大了 只是 ...
- 深度|OpenAI 首批研究成果聚焦无监督学习,生成模型如何高效的理解世界(附论文)
本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载,原文. 选自 Open AI 作者:ANDREJ KARPATHY, PIETER ABBEEL, GREG BRO ...
- 【BZOJ-1952】城市规划 [坑题] 仙人掌DP + 最大点权独立集(改)
1952: [Sdoi2010]城市规划 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 73 Solved: 23[Submit][Status][ ...
- 【BZOJ-4316】小C的独立集 仙人掌DP + 最大独立集
4316: 小C的独立集 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 57 Solved: 41[Submit][Status][Discuss] ...
- (转)【重磅】无监督学习生成式对抗网络突破,OpenAI 5大项目落地
[重磅]无监督学习生成式对抗网络突破,OpenAI 5大项目落地 [新智元导读]"生成对抗网络是切片面包发明以来最令人激动的事情!"LeCun前不久在Quroa答问时毫不加掩饰对生 ...
随机推荐
- 修改TrustedInstaller权限文件
我们在删除文件的时候有可能出现无法删除,并且需要TrustedInstaller提供的权限,所以我们主要修改该文件的拥有者(修改为本机用户)即可.下文举例哦,方法如下: 总结起来:修改文件的所有着为本 ...
- Web 前端 中高难度问题(希望看完之后的你可以拿到Offer^v^)
1. 解释 event loop Javascript是单线程的,所有的同步任务都会在主线程中执行. 主线程之外,还有一个任务队列.每当一个异步任务有结果了,就往任务队列里塞一个事件. 当主线程中的任 ...
- Thinkphp基于规则的Auth权限认证类
PS:onethink是基于该权限认证类实现,Auth类作为官方类库,在Library\Think里面. 其实Auth类也是基于角色访问控制RBAC扩展的,具体到节点的权限校验方式还是需要根据业务 ...
- C#DataTable与Model互转
/// <summary> /// 实体转换辅助类 /// </summary> public class ModelConvertHelper<T> where ...
- Ubuntu系统里如何正确卸载oracle-j2sdk1.6(图文详解)
问题来源 因为,我在安装clouder manager5.X的时候,默认是需要oracle-j2sdk1.7. 它4.X时,才是1.6的. 若你还是在用clouder manager4.X版本的话,需 ...
- hibernate离线查询DetachedCriteria清除上次的查询条件
1 原例概述 别名重复问题之后,我们还需要解决的问题就是: 如何清除hibernate的上次查询条件,如果不清除,将会导致上次的查询条件和下次的查询条件合并到了一起. 上次的查询条件和本次的查询条件合 ...
- BJFU 1549 ——Candy——————【想法题】
Candy 时间限制(C/C++):1000MS/3000MS 运行内存限制:65536KByte总提交:40 测试通过:20 描述 There are N c ...
- mc:Ignorable="d"什么意思?
有两个命名空间我们要注意一下的:xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc=" ...
- (四) HTML之表单元素
HTML中的表单元素,是构成动态网页的重要组成部分,因此,熟知表单元素是十分重要的.下面将根据表单中的一些常用标签进行介绍 1.单选按钮 <input type="radio" ...
- 【学习笔记】实用类String的基本应用即常用方法
一.String类概述 在Java中,字符串被作为String类型的对象来处理. String类位于java.lang包中,默认情况下会自动导入到所有的程序中. 创建String对象的方法如下: St ...