química

Título: Química
Título Descripción: Aquí Insertar imagen Descripción
supuestos anteriormente, el grupo alcano tiene 6 átomos y 5 enlaces químicos, 6 átomos, respectivamente, las referencias numéricas 1 a 6, seguido de un par de números a, b representa un enlace químico entre los átomos A y el átomo b. Así, mediante la línea 5 a, b puede ser descrito como un alcanilo
Su trabajo es un grupo alcano cribado categoría.

Entrada: Entrada de datos sobre el comportamiento del primer número de grupos T (1≤T≤200000). 5 líneas de datos de cada uno de dos números enteros a, b (1≤a, b≤6, un ≤b)
garantía de los datos, alcanilo se introduce uno de cinco o más de

Salida: Los datos de cada línea de salida, el resto alcanilo nombre representativo Inglés ~

Esquema de la Solución: Se trata de un pequeño analógico, se encontró que la desintegración de los cinco grupos diferentes de alcanos, está determinada por estas diferencias. En primer lugar, los dos se puede determinar por el número máximo de otros átomos es un átomo de n-hexano, 2,2-dimethybutane, 2,3-dimethybutane, después de entonces juzgado de acuerdo con el número de conexiones a otros átomos que un átomo particular especies. Tal como 3-metilpentano y dos conexiones que conectan los dos átomos, y el otro sólo uno.

código:

#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<vector>
using namespace std;
int a[6];
int b[6];
int main()
{
    int n,x,y;
    cin>>n;
    while(n--)
    {
        vector<pair<int,int> > h;
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
        for(int i=0;i<5;i++)
        {
            cin>>x>>y;
            a[x-1]++;
            a[y-1]++;
            b[x-1]++;
            b[y-1]++;
            h.push_back(make_pair(x-1,y-1));
        }
        sort(a,a+6);
        if(a[5]==4)//先在这里判断3种 
        {
            cout<<"2,2-dimethylbutane"<<endl;
            continue;
        }else if(a[5]==2)
        {
            cout<<"n-hexane"<<endl;
            continue;
        }else if(a[5]==a[4])
        {
            cout<<"2,3-dimethylbutane"<<endl;
            continue;
        }else//这里判断两种
        {
            int flag=0;
            for(int i=0;i<5;i++)
            {
                if(b[h[i].first]==3)
                {
                    if(b[h[i].second]==1)
                    {
                        flag++;
                    }
                }
                if(b[h[i].second]==3)
                {
                    if(b[h[i].first]==1)
                    {
                        flag++;
                    }
                }
            }
            if(flag==2)
            {
                cout<<"2-methylpentane"<<endl;
                continue;
            }else
            {
                cout<<"3-methylpentane"<<endl;
            }
        }
    }
}
Publicado 15 artículos originales · ganado elogios 0 · Vistas 232

Supongo que te gusta

Origin blog.csdn.net/qq_43653717/article/details/104634719
Recomendado
Clasificación