普通的模拟题,数据很小,基本排除超时超空间的可能

上代码:

#include<bits/stdc++.h>
#define LL long long
using namespace std;
vector<pair<int,string>>sv;//用于存储Server,sv[i].first代表Server编号, sv[i].second代表Server地址
int turn(string str){//string转int
if(str.size()>5||str.size()==0)return -1;
if(str.size()>1&&str[0]=='0')return -1;
int v=1,sum=0;
stack<int>num;//存储每一位数
for(int c:str){//入栈
num.push(c-'0');
}
while(!num.empty()){//遍历
int w=num.top();
num.pop();
sum+=w*v;//当前数乘权值
v*=10;
}
return sum;
}
bool check(string str){
string s[10];
int cnt=1,cnt1=0,cnt2=0;//cnt为地址分段数(即将ip以'.'或':'为间隔分成cnt段) ,cnt1为'.'数量, cnt2为':'数量
for(int i=0;i<str.size();i++){
if(str[i]=='.'){
if(cnt2)return 0;//若前方出现过':' ,返回0
cnt1++;
cnt++;
}else if(str[i]==':'){
if(cnt1!=3)return 0;//若前方没有3个'.' ,返回0
cnt2++;
cnt++;
}else s[cnt]+=str[i]; }
if(cnt!=5)return 0;//若地址数量不等于五
if(cnt1!=3||cnt2!=1)return 0;//若'.'数量不为三或':'数量不为1
for(int i=1;i<cnt;i++){
int num=turn(s[i]);
if(!(0<=num&&num<=255))return 0;
if(num==-1)return 0;
}
if(!(0<=turn(s[5])&&turn(s[5])<=65535))return 0;
return 1;
}
int find(string str){//在Servers中寻找地址为str的Server
for(pair<int,string> w:sv){
if(w.second==str){//找到地址
return w.first;//返回下标
}
}
return 0;//不存在,返回特殊值0(地址从1开始)
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
string op,ad;
cin>>op>>ad;
if(!check(ad)){
cout<<"ERR"<<endl;
continue;
}
if(op=="Server"){
if(find(ad)){//巧妙利用整数转布尔值非0值为1的特性
cout<<"FAIL"<<endl;//服务器存在,连接失败
}else{
cout<<"OK"<<endl;
sv.push_back({i,ad});//服务器连接成功
}
}else{
int get=find(ad);//sv中地址为ad的Server的数量
if(get){//若该Server存在
cout<<get<<endl;
}else cout<<"FAIL"<<endl;//连接失败
}
} return 0;
}

原题链接

洛谷P7911 [CSP-J 2021] 网络连接题解的更多相关文章

  1. LuoguP7911 [CSP-J 2021] 网络连接 题解

    Content 题目过于难解释,请前往题面查看.以下直接给出本题做法. Solution 入门组 T3 在我印象中向来都不是很容易能做出来的题目,但是今年这个 T3 不得不说还是挺好做的. 我们先不妨 ...

  2. 洛谷P1484 种树&洛谷P3620 [APIO/CTSC 2007]数据备份 题解(堆+贪心)

    洛谷P1484 种树&洛谷P3620 [APIO/CTSC 2007]数据备份 题解(堆+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/132 ...

  3. 洛谷P3376【模板】网络最大流 ISAP

    这篇博客写得非常好呀. 传送门 于是我是DCOI这一届第一个网络流写ISAP的人了,之后不用再被YKK她们嘲笑我用Dinic了!就是这样! 感觉ISAP是会比Dinic快,只分一次层,然后不能增广了再 ...

  4. 洛谷P3387 【模板】缩点 题解

    背景 今天\(loj\)挂了,于是就有了闲情雅致来刷\(luogu\) 题面 洛谷P3387 [模板]缩点传送门 题意 给定一个\(n\)个点\(m\)条边有向图,每个点有一个权值,求一条路径,使路径 ...

  5. [NOI导刊2010提高&洛谷P1774]最接近神的人 题解(树状数组求逆序对)

    [NOI导刊2010提高&洛谷P1774]最接近神的人 Description 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某 ...

  6. BZOJ4943 & 洛谷3823 & UOJ315:[NOI2017]蚯蚓排队——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4943 http://uoj.ac/problem/315 https://www.luogu.or ...

  7. BZOJ1229 & 洛谷2917:[USACO2008 NOV]toy 玩具 & 洛谷4480:[BJWC2018]餐巾计划问题——题解

    标题很长emmm…… [USACO2008 NOV]toy 玩具 https://www.luogu.org/problemnew/show/P2917 https://www.lydsy.com/J ...

  8. BZOJ3675 & 洛谷3648 & UOJ104:[Apio2014]序列分割——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=3675 https://www.luogu.org/problemnew/show/P3648 ht ...

  9. 洛谷 P2253 好一个一中腰鼓! 题解

    P2253 好一个一中腰鼓! 题目背景 话说我大一中的运动会就要来了,据本班同学剧透(其实早就知道了),我萌萌的初二年将要表演腰鼓[喷],这个无厘头的题目便由此而来. Ivan乱入:"忽一人 ...

  10. 洛谷P5664 Emiya 家今天的饭 题解 动态规划

    首先来看一道题题: 安娜写宋词 题目背景 洛谷P5664 Emiya 家今天的饭[民间数据] 的简化版本. 题目描述 安娜准备去参加宋词大赛,她一共掌握 \(n\) 个 词牌名 ,并且她的宋词总共有 ...

随机推荐

  1. 选择:Qt Creator、Qt Designer、Qt Design Studio,三种开发工具,您选择哪一种?

    前言 本文介绍了三种QT开发工具的特点,以及各自的优点和缺点. QT三种工具对比 QT提供的工具 Qt Creator: 扮演的是QT Widgets和QT QML的IDE的角色. 优点: 可以编写C ...

  2. QT6窗口系统之QT底层窗口QWindow:QT框架中哪些常见窗口是基于QWindow的? 如何实现QT框架栅格窗口?如何实现QT框架OpenGL窗口?

    QT6窗口系统之QT底层窗口QWindow:QT框架中哪些常见窗口是基于QWindow的? 如何实现QT框架栅格窗口?如何实现QT框架OpenGL窗口? 简介 本文介绍了QT6窗口系统中的QT底层窗口 ...

  3. 个人Blog的第一篇博文

    个人Blog的第一篇博文 正式加入"博客园"大家庭了,希望以后可以一直坚持下去欸.

  4. [namespace hdk] 向量 direct_vector

    我忏悔我有罪我心情又不好了不知道干什么所以又不小心封了个东西啊啊啊啊啊啊啊啊 功能 已重载 [] 运算符(左值) 已重载 = 运算符(可使用向量或 std:::vector) 已重载 + += - - ...

  5. Java日期时间API系列33-----Jdk8中java.time包中的新的日期时间API类应用,格式化常用模板大全,新增Excel常用格式。

    从Java日期时间API系列10-----Jdk8中java.time包中的新的日期时间API类的DateTimeFormatter中可以知道常用字符有超过20几种,各种组合结果非常多.但常用的组合就 ...

  6. 2021年12月墨天轮国产数据库排行榜: openGauss节节攀升拿下榜眼,GaussDB与TDSQL你争我夺各进一位

    2021年12月的国产数据库流行度排行榜已在墨天轮发布,本月共有189家数据库参与排名.为使国产数据库排名更加专业与客观,本月起,排行榜加入了三方评测.生态.专利数.论文数等新的指标.其中三方测评方面 ...

  7. yarn 和 npm 不能混合使用

    当有 yarn.lock 的时候说明项目使用的yarn 创建的 则后面的都要使用 yarn 操作,比如下载 包 等 : 当项目没有 yarn.lock 而是 package.json.lock 说明项 ...

  8. 【小 w 的代数】(提供一种 n^2 log 的解法)

    前言: 卖点 记录 CTH 的发言 CTH:你这真是 n^3 的 CTH:我也不知道你线段树优化个啥,\(n^3 \log n\) CTH:你优化到哪了啊 CTH:······你从赛时打这个题到现在 ...

  9. 一文彻底搞透Redis的数据类型及具体的应用场景

    Redis 提供了丰富的数据类型,每种数据类型都有其独特的存储结构和操作方法,可以满足不同的业务场景需求.下面详细介绍 Redis 支持的主要数据类型及其底层实现,并结合具体的应用场景说明其使用. 1 ...

  10. ABC365(D,E)

    ABC365(D,E) D - AtCoder Janken 3 石头剪刀布,给出对手的出招,问在保证不败的情况下最多能赢多少回 记 \(f_i,{0/1/2}\) 表示第 \(i\) 局出石头/剪刀 ...