前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【第24题】我最讨厌的一道题:[CSP-J 2021] 网络连接

【第24题】我最讨厌的一道题:[CSP-J 2021] 网络连接

作者头像
小码匠
发布2023-08-31 14:22:48
1550
发布2023-08-31 14:22:48
举报
文章被收录于专栏:小码匠和老码农

【第24题】[CSP-J 2021] 网络连接

碎碎念

  • 这是一道字符串读取被卡的死死的题;
  • 这是一道搞到接近深夜12点才AC的题;
  • 这是一道看了题解代码,接近照抄才搞定的题;(之前都是看懂题解,自己写代码)
  • 这是一道欠了很多债的题,至今尚未还清;
  • 这是一道让我被老码农训的题;(因为一直在自己捣鼓,浪费了大把时间,老码农很不满意)
  • 这是一道第二天让我特别困的题。

技术债:列举3点

  • 字符串读取
  • scanf和cin读取字符串的区别
  • 调式技巧

题目:[CSP-J 2021] 网络连接

题目原文请移步下面的链接

  • https://www.luogu.com.cn/problem/P7911
    • 参考题解:https://www.luogu.com.cn/problem/solution/P7911
  • 标签:模拟枚举
  • 难度:普及/提高-

题解

思路
  • 思路不难,主要是挂在读数据。
  • 题解大家可移步看这里,很多童鞋写了各种解法
    • https://www.luogu.com.cn/problem/solution/P7911
代码
代码语言:javascript
复制

        cin >> tp >> addr;
        //scanf("%s%s", &tp, &addr);
  • AC代码
代码语言:javascript
复制
#include <bits/stdc++.h>

using namespace std;

bool check(string s) {
    long long a, b, c, d, e;
    if (sscanf(s.c_str(), "%lld.%lld.%lld.%lld:%lld", &a, &b, &c, &d, &e) != 5) {
        return false;
    }
    if (a < 0 || a > 255 || b < 0 || b > 255 || c < 0 || c > 255 || d < 0 || d > 255 || e < 0 || e > 65535) {
        return false;
    }
    stringstream t;
    t << a << '.' << b << '.' << c << '.' << d << ':' << e;
    return t.str() == s;
}

void coder() {

}

void best() {
    unordered_map<string, int> m;
    string tp, addr;
    int n;
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        cin >> tp >> addr;
        //scanf("%s%s", &tp, &addr);
        if (!check(addr)) {
            cout << "ERR" << endl;
            continue;
        }
        if (tp == "Server") {
            if (m[addr]) {
                cout << "FAIL" << endl;
            } else {
                m[addr] = i;
                cout << "OK" << endl;
            }
        } else {
            if (!m.count(addr)) {
                cout << "FAIL" << endl;
            } else {
                cout << m[addr] << endl;
            }
        }
    }
}

int main() {
//	freopen("network.in", "r", stdin);
//	freopen("network.out", "w", stdout);
    best();

//    fclose(stdin);
//    fclose(stdout);
    return 0;
}

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小码匠和老码农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【第24题】[CSP-J 2021] 网络连接
    • 碎碎念
      • 技术债:列举3点
        • 题目:[CSP-J 2021] 网络连接
          • 题解
            • 思路
            • 代码
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档