1 条题解

  • 0
    @ 2025-10-10 19:32:48

    C++ :

    #include <stdlib.h>
    #include <stdio.h>
    #include <algorithm>
    #include <iostream>
    #include <string.h>
    #include <math.h>
    using namespace std;
    struct node//每个学生的信息 
    {
    	char name[20];
    	char id[10];
    	char sex;
    }stu[1000];
    int main()
    {
    	int n,i;
    	cin>>n;
    	for(i=0;i<n;i++)
    		cin>>stu[i].name>>stu[i].id>>stu[i].sex;
    	int m;
    	cin>>m;
    	char str1[20],str2[20];//姓名或者学号 
    	while(m--)
    	{
    		cin>>str1>>str2;
    		char ans1,ans2;//输入的姓名或者学号所对应的性别 
    		if(str1[0]>='0'&&str1[0]<='9')//是学号 
    			for(i=0;i<n;i++)
    			{
    				if(strcmp(str1,stu[i].id)==0)
    				{
    					ans1=stu[i].sex;//找到该学号对应的人的性别 
    					break;
    				}
    			}
    		else //是姓名 
    			for(i=0;i<n;i++)
    			{
    				if(strcmp(str1,stu[i].name)==0)
    				{
    					ans1=stu[i].sex;//找到该姓名对应的人的性别 
    					break;
    				}
    			}
    	if(str2[0]>='0'&&str2[0]<='9')//是学号 
    		for(i=0;i<n;i++)
    		{
    			if(strcmp(str2,stu[i].id)==0)
    			{
    				ans2=stu[i].sex;//找到该学号对应的人的性别 
    				break;
    			}
    		}
    	else //是姓名 
    		for(i=0;i<n;i++)
    		{
    			if(strcmp(str2,stu[i].name)==0)
    			{
    				ans2=stu[i].sex;//找到该姓名对应的人的性别 
    				break;
    			}
    		}
    		if(ans1==ans2)//性别相同,不能共舞 
    			cout<<"N"<<endl;
    		else
    			cout<<"Y"<<endl;
    	}
        return 0;
    }
    

    Java :

    import java.awt.List;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Main {
    
    	/**
    	 * @param args
    	 */
    	public static class Stu{
    		String name;
    		int id;
    		String gender;
    		
    	}
    	public static ArrayList<Stu> list=new ArrayList<Main.Stu>();
    	public static void main(String[] args) {
    		Scanner sc=new Scanner(System.in);
    		int n=sc.nextInt();
    		for (int i = 0; i <n; i++) {
    			Stu stu=new Stu();
    			stu.name=sc.next();
    			stu.id=sc.nextInt();
    			stu.gender=sc.next();
    			list.add(stu);
    		}
    		int m=sc.nextInt();
    		for (int i = 0; i <m; i++) {
    			String stu1=sc.next();
    			String stu2=sc.next();
    			String stu1_Gender="",stu2_Gender="";//性别
    			if (stu1.charAt(0)>='0' &&stu1.charAt(0)<='9') {//是id
    				stu1_Gender=GetGender_id(Integer.parseInt(stu1));
    			}else {//是name
    				stu1_Gender=GetGender_name(stu1);
    			}
    			if (stu2.charAt(0)>='0' &&stu2.charAt(0)<='9') {//是id
    				stu2_Gender=GetGender_id(Integer.parseInt(stu2));
    			}else {//是name
    				stu2_Gender=GetGender_name(stu2);
    			}
    			if (!stu1_Gender.equals(stu2_Gender)) {
    				System.out.println("Y");
    			}else {
    				System.out.println("N");
    			}
    		}
    	}
    	
    	//根据name获取性别
    	public static String GetGender_name(String name) {
    		for (Stu item : list) {
    			if (item.name.equals(name)) {
    				return item.gender;
    				
    			}
    		}
    		return "-1";//不会执行到这一步
    	}
    	
    	//根据id获取性别
    	public static String GetGender_id(int id) {
    		for (Stu item : list) {
    			if (item.id==id) {
    				return item.gender;
    				
    			}
    		}
    		return "-1";//不会执行到这一步
    	}
    	
    }
    
    

    Python :

    class dian:
        def _init_(self):
            self.xm=""
            self.xh=""
            self.xb=""
    a=[]
    n=int(input())
    for i in range(n):
        sr=input().split()
        a.append(dian())
        a[i].xm=sr[0]
        a[i].xh=sr[1]
        a[i].xb=sr[2]
    m=int(input())
    g1=""
    g2=""
    for i in range(m):
        sr=input().split()
        x1=sr[0]
        x2=sr[1]
        for j in range(n):
            if(x1==a[j].xm or x1==a[j].xh):
                g1=a[j].xb
            if(x2==a[j].xm or x2==a[j].xh):
                g2=a[j].xb
        if(g1!=g2):
            print("Y")
        else:
            print("N")
    
    • 1

    信息

    ID
    871
    时间
    1000ms
    内存
    512MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者