简单模拟——化学烷烃基 Gym - 270437A

题意:

化学很神奇,以下是烷烃基。
在这里插入图片描述

假设如上图,这个烷烃基有6个原子和5个化学键,6个原子分别标号1~6,然后用一对数字 a,b 表示原子a和原子b间有一个化学键。这样通过5行a,b可以描述一个烷烃基

你的任务是甄别烷烃基的类别。

原子没有编号方法,比如
1 2
2 3
3 4
4 5
5 6

1 3
2 3
2 4
4 5
5 6
是同一种,本质上就是一条链,编号其实是没有关系的,可以在纸上画画就懂了


思路:

如图所示,可以观察到五种烷烃基的表现形式是简单的图,通过输入两个数字表示两个点之间存在边。由于五种烷烃基本身的差异,可以很容易找出判断的方法:

n-hexane: 所有点度数最高为二

2-methylpentane: 存在一个三度顶点,并且与这个三度顶点相连的三个点中只有一个二度顶点,剩下两个为一度顶点

3-methylpentane: 存在一个三度顶点,并且与这个三度顶点相连的三个点中只有一个一度顶点,剩下两个为二度顶点

2,3-dimethylbutane: 存在两个三度顶点

2,2-dimethylbutane: 存在一个四度顶点

为了记录每个点的度数,设立一个一维数组int a[7]来记录1~6号顶点的度数,例如当输入“1, 6”时,a[1]++,a[6]++,1号顶点和6号顶点的度数加一,另外设立一个二维数组int b[5][2]来记录下输入的边,用来得到与与三度顶点相连的点来判断“2-methylpentane”和“3-methylpentane”。


总结:

本题的重点是仔细观察找出差别,能够总结出每个烷烃基各自的特点,针对差别就能进行解题。


代码:

#include<iostream>
#include<cstring>
using namespace std;

int main()
{
   
	int order = 0;
	cin >> order;
	for (int i = 0; i < order; i++
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值