给出图,求他的“仙人掌度”,即求包括他自身的生成子图有多少?

只能删去仙人掌上的叶子的一条边,然后根据乘法原理相乘;

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 无向仙人掌的更多相关文章

  1. HDU 6041.I Curse Myself 无向仙人掌图

    I Curse Myself Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  2. Gym - 101334C 3514 无向仙人掌

    http://codeforces.com/gym/101334/attachments 题意: 判断是否是仙人掌图并且连通,如果是的话则计算出它有多少个连通子图也是仙人掌. 思路:连通子图也就是我们 ...

  3. $dy$讲课总结

    字符串: 1.广义后缀自动机(大小为\(m\))上跑一个长度为\(n\)的串,所有匹配位置及在\(parent\)树上其祖先的数量的和为\(min(n^2,m)\),单次最劣是\(O(m)\). 但是 ...

  4. codeforces GYM 100114 J. Computer Network 无相图缩点+树的直径

    题目链接: http://codeforces.com/gym/100114 Description The computer network of “Plunder & Flee Inc.” ...

  5. Gym 100553B Burrito King 无脑背包

    题意就是你有n和m两个上限 吃一个东西会同时增加两个东西 m的值不能超过给定的m 问最后的n m值和每个东西吃了多少 贪心一下就好了 算一下性价比 从最大的开始吃 直到吃满了m n也一定是最大了 只是 ...

  6. 深度|OpenAI 首批研究成果聚焦无监督学习,生成模型如何高效的理解世界(附论文)

    本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载,原文. 选自 Open AI 作者:ANDREJ KARPATHY, PIETER ABBEEL, GREG BRO ...

  7. 【BZOJ-1952】城市规划 [坑题] 仙人掌DP + 最大点权独立集(改)

    1952: [Sdoi2010]城市规划 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 73  Solved: 23[Submit][Status][ ...

  8. 【BZOJ-4316】小C的独立集 仙人掌DP + 最大独立集

    4316: 小C的独立集 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 57  Solved: 41[Submit][Status][Discuss] ...

  9. (转)【重磅】无监督学习生成式对抗网络突破,OpenAI 5大项目落地

    [重磅]无监督学习生成式对抗网络突破,OpenAI 5大项目落地 [新智元导读]"生成对抗网络是切片面包发明以来最令人激动的事情!"LeCun前不久在Quroa答问时毫不加掩饰对生 ...

随机推荐

  1. vector与array之间转换,向量与数据之间转换

    一维数组: vector<int> a; int b[5] = {1,2,3,4,5}; a.push_back(b);   二维数组: b[5][6] = {1,2,3,4,5,6... ...

  2. vue组件传参

    一.父子组件的定义 负值组件的定义有两种,我称为常规父子组件和特殊父子组件. 1.1.常规父子组件 将其他组件以import引入用自定义标签接收,在当前组件中component里注册该标签,页面上可以 ...

  3. oracle基础知识(六)----spfile与pfile

    一, 认识参数文件      Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件.它们是在数据库实例启动时候加载的,决定了数据库的物理 结构.内存.数据库的限制及系统大量的默认值 ...

  4. C++ Memory System Part3 : 优化

    前面的系列我们讲了自定义new和delete操作,其中针对deleteArray的问题还有需要优化的地方.我们这次就针对POD类型进行一次优化. 下面的代码是针对POD类型的模板函数实现,分别为New ...

  5. laravel框架的rabbitmq使用示例[多队列封装]

    RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件).RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的.所有主要 ...

  6. 白话SpringCloud | 第九章:路由网关(Zuul)的使用

    前言 介绍完分布式配置中心,结合前面的文章.我们已经有了一个微服务的框架了,可以对外提供api接口服务了.但现在试想一下,在微服务框架中,每个对外服务都是独立部署的,对外的api或者服务地址都不是不尽 ...

  7. VS 连接数据库报错:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误

    VS报错:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider ...

  8. [转]ASP.NET MVC中的两个Action之间值的传递--TempData

    本文转自:ASP.NET MVC中的两个Action之间值的传递--TempData 一. ASP.NET MVC中的TempData 在ASP.NET MVC框架的ControllerBase中存在 ...

  9. OLEDB 参数化查询

    一般情况下,SQL查询是相对固定的,一条语句变化的可能只是条件值,比如之前要求查询二年级学生信息,而后面需要查询三年级的信息,这样的查询一般查询的列不变,后面的条件只有值在变化,针对这种查询可以使用参 ...

  10. SQLAlchemy的使用---外键ForeignKey数据增删改查

    # 添加数据 from sqlalchemy.orm import sessionmaker from create_table_ForeignKey import engine, Student, ...