一、题目报告:
题目: |
IP地址 |
是否同构 |
箱子 |
社恐的聚会 |
得分: |
100 |
30 |
0 |
10 |
二、赛中情况:
前两道题用了半个小时,第三道题以为是类似与石子合并,用了两个队列来做,但这道题本应该用优先队列做,而且还忘记考虑一种样例;第四题很难,要先建立一个二分图,然后用DP来求。
三、题目解析:
IP地址
【题目描述】
IP地址(Internet Protocol Address)是互联网上用于识别和定位设备的数字标识。它是一种由32位或128位二进制数字组成的地址,在IPv4和IPv6两个主要版本中使用。
IP地址的主要功能是标识和寻址设备,使其能够在互联网上进行通信。通过将IP地址分配给计算机、服务器、路由器和其他网络设备,数据包可以被正确地发送到目标设备。IP地址还用于确定网络中不同设备的位置,以便进行网络管理和故障排除。
总之,IP地址是互联网上用于标识和定位设备的数字标识,使设备能够在互联网上进行通信。IP地址的外观根据其版本而有所不同。以下是IPv4和IPv6两个主要版本的IP地址中IPv4地址示例:
192.168.0.1
172.16.254.1
10.0.0.1
208.75.57.100
接下来,我们有 N 个设备,每个设备都有它的名称和IPv4地址,现在我们有 Q 个问题,每次我们想知道给出的IPv4地址是哪一个设备?
【输入格式】
第一行,一个正整数 N ,表示有 N 个设备;
接下去 N 行,首先输入该设备的名称,数据保证该设备的名称只由英文大小写组成,其次再输入该设备的IPv4地址;
接下去一行,输入一个正整数 Q ,表示有 Q 次询问;
接下去 Q 行,每行一个IPv4地址。
【输出格式】
对于 Q 次询问,每次询问输出该IPv4地址对应的设备名称。
【输入样例 1】
4
Main 192.168.0.1
Google 8.8.8.8
some 123.13.34.45
other 23.32.45.54
3
192.168.0.1
23.32.45.54
8.8.8.8
【输出样例1】
Main
other
【数据范围】
对于30% 数据,1≤N,M≤100;
对于 100% 数据,1≤N,M≤1000,设备的名称是只由大小写字母组成的长度小于等于100的字符串,IPv4地址”a.b.c.d”满足0≤a,b,c,d≤255 。
AC代码:
#include<iostream>
#include<cstdio>
using namespace std;
struct Node{//结构体存储
string name,ip;
}arr[1010];
int main(){
int n;
cin >> n;
for(int i = 1;i <= n;i++){
cin >> arr[i].name >> arr[i].ip;
}
int m;
cin >> m;
for(int i = 1;i <= m;i++){
string s;
cin >> s;
for(int j = 1;j <= n;j++){//数据范围不大,直接查
if(arr[j].ip