题意:

给出一个无向图,表示一种有机物质的结构式,问你这个有机物质是列表中的哪个。

题解:

判断图同构需要枚举全排列以对应点,但是此题中几乎只需要将点度数排序后一个一个比较,对于甲基位置再加个特判即可。

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long uLL;
typedef long long ll;
typedef pair<int, LL>P;
const int M = 1e2 + ;
const LL mod = 1e9 + ;
const LL lINF = 0x3f3f3f3f3f3f3f3f;
#define ls (rt<<1)
#define rs (rt<<1|1)
vector<int>ve[M];
vector<int>ve2;
int a[][] = { {,,,,,},{,,,,,},{,,,,,},{,,,,,} };
int flag;
bool isv[M];
int ans;
void dfs(int x, int step)
{
isv[x] = ;
ans = max(ans, step);
for (int i = ; i < ve[x].size(); i++)
{
if (!isv[ve[x][i]])
{
dfs(ve[x][i], step + );
}
}
}
int main()
{
int _;
scanf("%d", &_);
while (_--)
{
for (int i = ; i <= ; i++)
{
ve[i].clear();
}
for (int i = ; i <= ; i++)
{
int l, r;
scanf("%d%d", &l, &r);
ve[l].push_back(r);
ve[r].push_back(l);
}
ve2.clear();
for (int i = ; i <= ; i++)
{
ve2.push_back(ve[i].size());
}
sort(ve2.begin(), ve2.end());
for (int i = ; i < ; i++)
{
flag = i;
for (int j = ; j < ; j++)
{
if (ve2[j] != a[i][j])
{
flag = ;
break;
}
}
if (flag != )
break;
}
if (flag == )
{
printf("n-hexane\n");
}
else if (flag == )
{
ans = ;
memset(isv, , sizeof isv);
for (int i = ; i <= ; i++)
{
if (ve[i].size() == )
{
dfs(i, );
}
}
if (ans == )
printf("2-methylpentane\n");
else
printf("3-methylpentane\n");
}
else if (flag == )
{
printf("2,3-dimethylbutane\n");
}
else if (flag == )
{
printf("2,2-dimethylbutane\n");
}
}
}

牛客多校第十场 H Stammering Chemists 判断图同构的更多相关文章

  1. 牛客多校第十场-D- Rikka with Prefix Sum

    链接:https://www.nowcoder.com/acm/contest/148/D来源:牛客网 Prefix Sum is a useful trick in data structure p ...

  2. 牛客多校第十场 A Rikka with Lowbit 线段树

    链接:https://www.nowcoder.com/acm/contest/148/A来源:牛客网 题目描述 Today, Rikka is going to learn how to use B ...

  3. 2018牛客多校第五场 H.subseq

    题意: 给出a数组的排列.求出字典序第k小的b数组的排列,满足1<=bi<=n,bi<bi+1,a[b[i]]<a[b[i+1]],m>0. 题解: 用树状数组倒着求出以 ...

  4. [题解]Magic Line-计算几何(2019牛客多校第三场H题)

    题目链接:https://ac.nowcoder.com/acm/contest/883/H 题意: 给你偶数个点的坐标,找出一条直线将这n个点分成数量相等的两部分 并在这条直线上取不同的两个点,表示 ...

  5. 2019牛客多校第七场H Pair 数位DP

    题意:给你一个3个数A, B, C问有多少对pair(i, j),1 <= i <= A, 1 <= j <= B, i AND j > C或 i XOR j < ...

  6. 2019牛客多校第五场H - subsequence 2 拓扑

    H - subsequence 2 题意 要你使用前\(m\)个小写字母构造一个长度为\(n\)的字符串 有\(m*(m-1)/2\)个限制条件: \(c_{1} .c_{2}. len\):表示除去 ...

  7. 牛客多校第十场 B Coffee Chicken 递归

    题意: 给你一个“斐波那契”字符串数列,第n项由第n-1项和第n-2项拼接而成,输出某项的某位及其后10位. 题解: 递归求解即可. #include<bits/stdc++.h> usi ...

  8. 牛客多校第十场 D Han Xin and His Troops 中国剩余定理

    题意: 韩信有若干个兵,给定你若干个模数和余数,再给你一个1e18以内的范围限制,求解同余方程组,如果无解,输出“他一定在撒谎”,如果最小解超出范围限制,输出“他可能在撒谎”,否则输出最小解 注意:不 ...

  9. 2019 牛客多校第三场 H Magic Line

    题目链接:https://ac.nowcoder.com/acm/contest/883/H 题目大意 给定 N 个不同的整数点,N 为偶数,求一条直线,这条直线能把这 N 个点对半分开,输出这条直线 ...

随机推荐

  1. CacheException: java.io.OptionalDataException

    CacheException: java.io.OptionalDataException iro.authc.AbstractAuthenticator] - Authentication fail ...

  2. C循环

    C 循环 有的时候,可能需要多次执行同一块代码.一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推. 编程语言提供了允许更为复杂的执行路径的多种控制结构. 循环语句允许 ...

  3. RestHighLevelClient客户端相关CURD操作

    客户端连接 public void start() { try { restHighLevelClient = new RestHighLevelClient( RestClient.builder( ...

  4. Springboot Excle导入导出

    Springboot Excle导入导出 导入操作:Excle批量导入 导出操作:下载模版 开发笔记 pom.xml <!-- Excle相关jar --> <dependency& ...

  5. mysql|tomcat|nginx|redis在docker中的部署

    MySQL部署 拉取MySQL镜像 docker pull mysql 查看镜像 创建MySQL容器 docker run -di --name pinyougou_mysql -p 33306:33 ...

  6. PHP中关于Phar的学习

    什么是phar 一个PHP程序往往是由多个文件组成的,如果能够集中为一个文件来分发和运行是很方便的.phar便应运而生.大概跟java的jar文件是差不多类似的.但是php的phar文件是可以由php ...

  7. eclipse中svn的各种图标详解

    参考:http://blog.sina.com.cn/s/blog_637810b101018xw0.html - 已忽略版本控制的文件.可以通过Window → Preferences → Team ...

  8. 用 Flask 来写个轻博客 (1) — 创建项目

    目录 目录 前言 扩展阅读 部署开发环境 创建 Github 项目 前言 一步一步的实现一个 Flask 轻博客项目启动,最新的代码会上传到 Github. 扩展阅读 欢迎使用 Flask - vir ...

  9. Jeecg 3.8修改lhgDialog弹窗的样式

    位置:F:\jeecg-bpm-3.8\eecg-bpm-3.8-master\jeecg-bpm-3.8\src\main\java\org\jeecgframework\core\util pub ...

  10. Java类初始化顺序,大神3个示例带你躺坑。。

    最近发现微信群里面有些群友在讨论类的初始化顺序,如类的静态变量.成员变量.静态代码块.非静态代码块.构造器,及继承父类时,它们的初始化顺序都是怎样的,下面我通过例子来说明这个情况,以免被人误导. 示例 ...