A-化学

2023-05-16

题目概述在这里插入图片描述

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

输入输出

Input

输入第一行为数据的组数T(1≤T≤200000)。每组数据有5行,每行是两个整数a, b(1≤a,b≤6,a ≤b)
数据保证,输入的烷烃基是以上5种之一。

Output

每组数据,输出一行,代表烷烃基的英文名

Sample Input

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

Sample Output

n-hexane
3-methylpentane

解题思路

1.定义几个数组,记录每个编号的点出现的次数,按照点度为1,2,3,4分别不同点度的点出现的次数。

2.按照不同点度的点出现的次数可以区分三类,剩余两类按照2度点是否相连(即是否在同一组输入)加以区别。

3.具体看代码的注释部分。

代码

#include<iostream>
using namespace std;

const int arr[]={1,2,3,4};//标注点度 
int num[7];//记录每个编号出现的次数 
int sum[7];//记录不同点度的原子出现的次数 
int a1[5];//a1和b1分别每组记录输入的两个编号 
int b1[5];
int main()
{
 int t,a,b;//组数,相互连接的两个碳原子 
 cin>>t;
 for(int i=0;i<t;i++)
 {
  for(int m=0;m<7;m++)
  {//数组初始化 
   num[m]=0;
   sum[m]=0;
  }
    for(int j=0;j<5;j++)
  {
   cin>>a>>b;
   a1[j]=a;
   b1[j]=b;
   num[a]++; //记录每个标号出现的次数 
   num[b]++; 
  }
    for(int m=1;m<=6;m++)
  {
   for(int j=0;j<4;j++)
   {
    if(num[m]==arr[j])
    {
     sum[j+1]++;//记录几键碳原子出现的次数; 
    }
   }
  } 
    //点度为1的点有2个,点度为2的点4个 
  if(sum[1]==2&&sum[2]==4)
   cout<<"n-hexane"<<endl;
  //点度为1的点4个,点度为2的点1个,点度为4的点1个 
  else if(sum[1]==4&&sum[2]==1&&sum[4]==1)
   cout<<"2,2-dimethylbutane"<<endl;
  //点度为1的点4个,点度为3的点2个 
  else if(sum[1]==4&&sum[3]==2)
   cout<<"2,3-dimethylbutane"<<endl;
  //点度为1的点3个,点度为2的点2个,点度为3的点1个 
  else if(sum[1]==3&&sum[2]==2&&sum[3]==1)
    {/*两种情况,两个点度为2的点连在一起或不连在一起,
     若连在一起,一定是在某一行同时输入的数据 */ 
   int a2[2]={0,0};
   int flag=0,n=0; 
   for(int m=1;m<=6;m++)
   {
    if(num[m]==2)
    {//如果编号为m的点的点度为2,将其存到数组a2[]中 
     a2[n]=m;
     n++;
    }
   }
      for(int j=0;j<5;j++){
    //点度为2的两个点在同一组输入,分前后情况 
    if((a1[j]==a2[0]&&b1[j]==a2[1])||(a1[j]==a2[1]&&b1[j]==a2[0]))
     flag=1; 
   }
   if(flag==1)
    cout<<"2-methylpentane"<<endl;
   else
    cout<<"3-methylpentane"<<endl;   
  }
 }
 return 0;
} 

总结反思

本道题目是比较简单的一道题,但是我用暴力解决了,上周五写的代码今天重看有点看不懂了hhh,于是又重新详细地加了注释。
以后一定每写完一道题就在博客上总结反思。加油加油!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

A-化学 的相关文章

随机推荐

  • CDN和Akamai

    最近在看分布式相关的东西 xff0c 在看到HTTP Caching的时候 xff0c 提到CDN和Akamai 以前对这些东西都是一无所知啊 记录一下吧 http zh wikipedia org wiki E5 85 A7 E5 AE
  • 在Centos7环境安装GitLab

    https about gitlab com install centos 7 1 Install and configure the necessary dependencies On CentOS 7 and RedHat Oracle
  • 免费的天气api

    这是最近网上查询到关于天气的api xff0c 大部分的接口都是收费 xff0c 有部分接口虽然免费 xff0c 但查询到的信息量特别不全 但好在有几个免费接口倒是不错 xff0c 倒是可以使用 免费的天气api 高德地图 天气查询免费ap
  • Enlightenment官网介绍

    Enlightenment和EFL的官方网站 xff1a http www enlightenment org Enlightenment xff1a Enlightenment 是一个旗舰项目 它曾经是一个不起眼的 X11 窗口管理器 W
  • Enlightenment 是窗口管理器,Enlightenment 是桌面外壳,Enlightenment是创建漂亮应用程序的材料

    Enlightenment 是窗口管理器 xff0c Enlightenment 是桌面外壳 xff0c Enlightenment是创建漂亮应用程序的材料 xff0c Enlightenment xff0c 或者简单的一个 e xff0c
  • ubuntu安装nvidia显卡驱动报错:”The CC version check failed”

    参考过不少博主回答的问题 xff0c 但都存在很多问题 xff0c 或者比较麻烦 xff0c 给大家推荐一下我自己尝试解决后比较好的一个方案 xff1a 出现这个问题的原因是因为驱动可能比较新 xff0c 系统内核的gcc版本和编译器的默认
  • codeforces1169C 二分答案+思维

    1169C 1700的题 xff0c 然而比赛的时候没有做出来 题意 xff1a 给你一个n表示序列长度为n xff0c 还有一个m表示这个序列的最大值小于m 然后对这个数组进行多次操作 xff0c 一次操作为 对ai xff0c aj x
  • python用pip装第三方库numpy时报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 7: ordi

    python用pip装第三方库numpy时一直报错 xff1a UnicodeDecodeError 39 ascii 39 codec can 39 t decode byte 0xc3 in position 7 ordinal not
  • debian8 jessie 更换为国内源

    编辑 etc apt sources list文件 xff1a 用 注释掉老的源 添加新的源 xff0c deb http mirrors 163 com debian jessie main non free contrib deb ht
  • 09、Flutter FFI Dart Native API

    Flutter FFI 学习笔记系列 Flutter FFI 最简示例 Flutter FFI 基础数据类型 Flutter FFI 函数 Flutter FFI 字符串 Flutter FFI 结构体 Flutter FFI 类 Flut
  • Copilot 自动编程AI工具

    OpenAI与GitHub联合构建的AI自动编程工具Copilot xff0c Copilot基于自然语言处理模型GPT 3搭建而成 xff0c Copilot预览版已经正式上线Visual Studio Code平台 OpenAI的GPT
  • SQLite的SQL语法

    SQLite库可以解析大部分标准SQL语言 但它也省去了一些特性 并且加入了一些自己的新特性 这篇文档就是试图描述那些SQLite支持 不支持的SQL语法的 查看关键字列表 如下语法表格中 xff0c 纯文本用蓝色粗体显示 非终极符号为斜体
  • 动态链接库dll(Windows/C++)

    1 概念 xff08 1 xff09 动态链接库广泛用于Windows系统及应用程序 xff0c 不能单独被执行 xff0c 在应用程序运行期间被动态调用的模块文件 区别于静态链接库 xff0c 均属于独立的代码编译模块 xff0c 但静态
  • 【Java】反射时获取父类属性并赋值

    1 反射获取父类 在反射获取类里的所有属性的时候 xff0c 会遇到无法访问父类extends里面的值 这时候需要访问父类需要调用Class的方法getSuperclass 对父类进行遍历field 同时如果不想遍历到Object或者某个类
  • linux软件包安装命令——apt-get

    apt get是linux中APT软件包的管理工具 采用shell命令行的方式完成软件的安装 更新 卸载等操作 1 语法 apt get xff08 选项 xff09 xff08 参数 xff09 选项 xff1a c 指定配置文件 o 直
  • 浅谈路由器的wan、lan、wlan口和vlan/trunk口

    背景 另一篇博文分析了一个实际的路由问题 xff0c 为方便问题分析 xff0c 在此列出常用概念 vlan中的trunk口 VLAN Trunk以及三层交换 可以把switch某一端口设为trunk 端口 问题 IP地址分类 xff1a
  • bzoj4864 [BeiJing 2017 Wc]神秘物质

    http www elijahqi win 2018 01 26 bzoj4864 beijing 2017 wc E7 A5 9E E7 A7 98 E7 89 A9 E8 B4 A8 20 E2 80 8E Description 21
  • mysql8设置远程连接详细教程

    这是转载StackOverFlow上的回答 xff0c 原回答点此这里 Remote Access in MySQL 8 Allow access from any host sudo nano etc mysql mysql conf d
  • 倒水问题(bfs)

    题意概述 34 fill A 34 表示倒满A杯 xff0c 34 empty A 34 表示倒空A杯 xff0c 34 pour A B 34 表示把A的水倒到B杯并且把B杯倒满或A倒空 Input 输入包含多组数据 每组数据输入 A B
  • A-化学

    题目概述 假设如上图 xff0c 这个烷烃基有6个原子和5个化学键 xff0c 6个原子分别标号1 6 xff0c 然后用一对数字 a b 表示原子a和原子b间有一个化学键 这样通过5行a b可以描述一个烷烃基 你的任务是甄别烷烃基的类别