首页 > 其他分享 >[Luogu] P7911 [CSP-J 2021] 网络连接

[Luogu] P7911 [CSP-J 2021] 网络连接

时间:2023-11-24 20:37:31浏览次数:52  
标签:sscanf string int Luogu P7911 .% 字符串 CSP 255

[CSP-J 2021] 网络连接 - 洛谷

距离CSP2023还有 \(**3**\) 天

题意及思路

恶臭大模拟,按照题意模拟即可。有几个代码上的难点:

  1. 当定义了一个scanf或者sscanf并且有一定的输入规则,那么如果读取到的字符串不符合定义的规则,那读入了几个变量就返回几个变量

    例如,如下代码定义了一个读取规则,但是字符串的最后一个数不符合该规则,因此读取失败,返回已经读取到的变量数量4:

    #include<bits/stdc++.h>
    using namespace std;
    int a,b,c,d,e;
    string s="1.1.1.1.1";
    int main()
    {
        cout<<(sscanf(s.c_str(),"%d.%d.%d.%d:%d",&a,&b,&c,&d,&e))<<endl;
        return 0;
    }
    

    而,只需要把sscanf(s.c_str(),"%d.%d.%d.%d:%d",&a,&b,&c,&d,&e)改为sscanf(s.c_str(),"%d.%d.%d.%d.%d",&a,&b,&c,&d,&e),输出就是5,因为所有数及字符串都符合该规则

  2. to_string(int x)返回一个字符串,可以将x转换为字符串

代码

所以最终的代码如下,其中f数组是判断该网址是否曾经出现过以及如果出现过,该网址对应的编号,便于查找与输出

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e7+10;
map<string,int>f;
bool check(string s)
{
    int n=s.size();
    int a,b,c,d,e;
    sscanf(s.c_str(),"%d.%d.%d.%d:%d",&a,&b,&c,&d,&e);
    string s1=to_string(a)+'.'+to_string(b)+'.'+to_string(c)+'.'+to_string(d)+':'+to_string(e);
    if(s!=s1) return 0;
    else if(a>255 || b>255 || c>255 || d>255 || e>65535 || a<0 || b<0 ||c<0 || d<0 || e<0 ) return 0;
    else return 1;
}
int main()
{
    int t;
    cin>>t;
    for(int i=1;i<=t;i++)
    {
        string s,s1;
        cin>>s1>>s;
        if(!check(s)) cout<<"ERR"<<endl;
        else if(s1=="Server")
        {
            if(!f[s])
            {
                cout<<"OK"<<endl;
                f[s]=i;
            }else cout<<"FAIL"<<endl;
        }else
        {
            if(f[s]) cout<<f[s]<<endl;
            else cout<<"FAIL"<<endl;
        }
    }
    return 0;
}

标签:sscanf,string,int,Luogu,P7911,.%,字符串,CSP,255
From: https://www.cnblogs.com/lyk2010/p/17854697.html

相关文章

  • [Luogu] P1164 小A点菜
    题目传送门一道动态规划,\(dp_{i, j}\)表示用前\(i\)个菜品花光\(j\)元的方法总数那么可以推出状态转移方程:\(if(j>a_i)\spacedp_{i,j}=dp_{i-1,j}+dp_{i-1,j-a_{i}}\)如果j比ai大,那么方案数就是不买\(dp_{i − 1, j}\)+买\(dp_{i − 1, j − a_i}\),其中如果买,那么......
  • [Luogu] P1114 “非常男女”计划
    https://www.luogu.com.cn/problem/P1114暴力,前缀和,稍加优化可以拿100,但是#1加强过后就AC不了了#include<bits/stdc++.h>usingnamespacestd;constintmaxn=2e6;inta[maxn],n,f[maxn],ans,boy;intmain(){ cin>>n; for(inti=1;i<=n;i++) { scanf("%d",a......
  • 2023CSP复赛/NOIP备战模拟赛复盘集合
    20231003CSP-J模拟赛复盘这次模拟赛考的特别差,只有160。T1:一上来,虽然不那么打卡,但也挺简单,然后五分钟写完,对了对样例,对了,走人。T2:需要在\(O(nlogn)\)或者\(O(n)\)的时间复杂度求出每一个区间被覆盖的区间,这要怎么求啊?我想了半天也只知道\(O(n^2)\)怎么做,然后发现一个小时......
  • 2023CSP初赛游祭
    2023CSP初赛游记今日运势不错大号小号:在考试的前几天才下载到准考证,这个中国计算机学会C(虚)C(虚)F(服)一上去炸了,还不是我爸凌晨下载的,不然都下载不了。上午八点多来到一所像商场一样的学校--深实。里面的结构乱七八糟,窗明几净,不是商场是啥?经过在迷宫里找了半......
  • 2023CSP复赛游寄
    CSP2023游记优先看https://www.luogu.com.cn/paste/xegs7srzCSP终于来了,本想着这次pj300+,tg2=。看来要AFO了……7:40到了耀华考场,没想到已经有很多人来了,@Frank08,@2020luke,@mayingdi520都来了。。他们好像二十分就来了。过了一会,@2023FJZ来了,在他的外套里面穿着耀华的衣......
  • 2023CSP初赛备战复盘合集
    NOIP2010提高组复盘整套卷子讲解:noip2010初赛提高组试题详解-Dijkstra·Liu-博客园_noip2010提高组初赛试题解析-豆丁网Docin原题:luogu本文部分内容参考来自以上链接。总结:这次的卷子比较难,考了67.5,全机房第2,cwzdalao拿到了68分%%%,他的运气逆天,蒙对了程序输出题。......
  • 【luogu题解】P9749 [CSP-J 2023] 公路
    \(Meaning\)\(Solution\)这道题我来讲一个不一样的解法:\(dp\)在写\(dp\)之前,我们需要明确以下几个东西:状态的表示,状态转移方程,边界条件和答案的表示。状态的表示\(dp[i]\)表示到达第\(i\)个站点所需要的最少钱数,\(w[i]\)表示在使用最少钱数到达第\(i\)个站点时多余......
  • CSP-S 2023 复赛游记
    以前的游记太魔怔了,重新写一下。Day-3打了一场模拟赛,感觉A题有点ad-hoc,但是很经典,B题也很简单,构造题,一眼秒了,C题是真的不会,虽然很明显是一个DP,但是没有想出来如何设计状态,D题是简单的,想了一个主席树+树剖的做法,比较复杂,不愿写了,开摆100+100+0+0Day-2又打了......
  • CSP 2023 游记
    注:只报了S组。初赛Day-1在初赛考前承诺初赛过了跑1600m。Day1都比去年这个时候强这么多了还是怕初赛啊。我第一次喝下了红牛。别不信,以前真没喝过,,红牛很甜。下了车然后见到了yts,zhy等一众巨佬。简单聊了一会儿后开始找xhgua。找了半天找不着。眼尖貌似看到了wz的人来了,......
  • CSP: Content-Security-Policy详解应对XSS攻击
    https://www.jianshu.com/p/74ea9f0860d2 CSP:Content-Security-Policy详解 前言跨域脚本攻击(XSS)是最常见、危害最大的网页安全漏洞。为了防止它,要采取很多编程措施(比如大多数人都知道的转义、过滤HTML)。很多人提出,能不能根本上解决问题,即浏览器自动禁止外部注入恶意脚......