A - 化学

A-化学

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

假设如上图,这个烷烃基有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

是同一种,本质上就是一条链,编号其实是没有关系的,可以在纸上画画就懂了Input输入第一行为数据的组数T(1≤T≤200000)。每组数据有5行,每行是两个整数a, b(1≤a,b≤6,a ≤b)
数据保证,输入的烷烃基是以上5种之一Output每组数据,输出一行,代表烷烃基的英文名
Example

Input

2
1 2
2 3
3 4
4 5
5 6
1 4
2 3
3 4
4 5
5 6

Output

n-hexane
3-methylpentane
Example

解题思路:

这道题是一道关于图的题,需要注意点就是无向图点的出入度。2,3-dimethylbutane没有出入度为2的点,2,2-dimethylbutane有1个出入度为2的点,n-hexane有4个出入度为2的点。如果有2个出入度为2的点,并且与出入度为1的点相连的点的出入度为3的个数为2时,2-methylpentane。否则,3-methylpentane。



#include <iostream>

#include <stdio.h>

#include <algorithm> 

using namespace std;

 

int main()

{

  int a,b,n,num;

  scanf("%d",&n);

  

  for(int
i=0;i<n;i++)

  {

      int edg[6]={0},d[6]={0};

        int
x=0,y=0; num=0;

        for(int
i=0;i<5;i++)

        {

              scanf("%d
%d",&a,&b);

              edg[a-1]++;

              edg[b-1]++;

              d[a-1]=b-1;

              d[b-1]=a-1;

        }

        for(int
i=0;i<6;i++)

        {

              if(edg[i]==2)
num++;

        }

        if(num==0)

          printf("2,3-dimethylbutane\n");

        if(num==1)

          printf("2,2-dimethylbutane\n");

        if(num==4)

          printf("n-hexane\n");

        if(num==2)

        {

              for(int
i=0;i<6;i++)

                if(edg[i]==1)

                {

                   x=d[i];

                   if(edg[x]==3)
y++;

                }

              if(y==2)

                printf("2-methylpentane\n");

              else

                  printf("3-methylpentane\n");

        }

    }

    return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值