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

上代码:

#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. MaterialDesignInXamlToolkit 5.0 发布

    5.0.0 发布 这是一个重大版本更新,又许多破坏性变化 升级到5.0.0版本,请参考:https://www.cnblogs.com/sesametech-dotnet/p/18028565 变化 ...

  2. Python 项目配置管理框架技术选型

    一.背景介绍 在实际生产项目中,不同环境(如开发.测试.生产环境)常有不同配置需求,如数据库链接等.我们期望一份代码无需改动,仅通过单一配置变量调整就能适配和使用多个环境,实现 "一份代码, ...

  3. Thinkphp原生验证码的使用

    Thinkphp原生验证码的使用 一. 获取验证码 public function verifyCode(){ $captcha = new \think\captcha\Captcha(); $ca ...

  4. 称骨算命免费api接口_json数据接口示例_八字称骨测算程序php接口

    称骨算命是算命方法的一种,和生辰八字算命.紫微斗数算命异曲同工,略有不同,虽然都是用出生的时间算命,但比较而言,称骨算命将命运分的比较粗略,只是把命运分为五十一种.故对命运的考察不细致,不太准确,可以 ...

  5. 2023年6月墨天轮中国图数据库排行榜:TGS 开新局,创邻和字节多点突破露锋芒

    鸿鹄不坠青云志,鲲鹏展翅九万里. 2023年 墨天轮中国图数据库流行度排行 已经火热出炉,本月中国图数据库排行榜共有31个数据库参与排名,相比今年1月新增3个数据库.本月图数据库榜单前十变动较大:Tu ...

  6. 2022年最新数据库调查报告:超八成DBA月薪过万,你拖后腿了吗?

    数据库管理员属于IT行业高薪职业的一种,近几年关于数据库管理员的薪资统计文章也层出不穷,那么当前,DBA们的薪资究竟到达了怎样的水平呢? 墨天轮数据社区发布最新<2022年墨天轮数据库大调查报告 ...

  7. 墨天轮国产数据库沙龙 | 张玮绚:TDengine,高性能、分布式、支持SQL的时序数据库

    分享嘉宾:张玮绚(Wade Zhang)北京涛思数据科技有限公司(TDengine)研发VP 整理:墨天轮 导读 TDengine 是一款高性能.分布式.支持 SQL 的时序数据库,让大量设备.数据采 ...

  8. 忽略某个已经托管给git的文件,防止二次提交

    # 执行命令将文件加入不提交队列 git update-index --assume-unchanged 你的文件路径 # 执行命令将文件取消加入不提交队列 git update-index --no ...

  9. 关于 apt 的一些命令

    apt update 用于 更新 包索引,包列表 apt install -y open-vm-tools-desktop fuse 安装 vm-tools 工具

  10. day04-常用DOS命令

    打开cmd的方式 开始-W-windows系统-命令提示符 win键+R键 鼠标在任意文件夹上, shift+鼠标右键 资源管理器的地址栏前面加cmd,然后回车 管理员方式运行:选择命令提示符右键以管 ...