首页 > 其他分享 >要不你还是把我删了吧

要不你还是把我删了吧

时间:2024-09-25 15:50:41浏览次数:6  
标签:q1 p2 q2 还是 -- std &&

A. 3 idots

http://222.180.160.110:61234/contest/5556/problem/1

你会发现有两种情况:多余字符在前 / 后。

你拿后面的去匹配前面的,再拿前面的去匹配后面的,如果匹配出来有多解就 NOT UNIQUE,无解就 NOT POSSIBLE,有解就输出。

#include <bits/stdc++.h>
int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    std::cout.tie(nullptr);
    freopen("string.in", "r", stdin);
    freopen("string.out", "w", stdout);
    int n;
    static char t[2000005];
    std::cin >> n >> (t + 1);
    if (n % 2 == 0)
        std::cout << "NOT POSSIBLE\n";
    else {
        int p1, q1, p2, q2, i;
        for (i = 0, p1 = n / 2; i < n / 2 && t[i + 1] == t[p1 + 1]; ++i, ++p1);
        for (i = n / 2 + 1, q1 = n + 1; i > 1 && t[i - 1] == t[q1 - 1]; --i, --q1);
        for (i = n / 2 + 1, p2 = 0; i < n && t[i + 1] == t[p2 + 1]; ++i, ++p2);
        for (i = n + 1, q2 = n / 2 + 2; i > n / 2 + 2 && t[i - 1] == t[q2 - 1]; --i, --q2);
        // printf("p1 = %d, q1 = %d; p2 = %d, q2 = %d\n", p1, q1, p2, q2);
        if (p1 >= q1 - 2 && p2 >= q2 - 2 && [&]() -> bool {
            for (int i = 1, j = n / 2 + 2; i <= n / 2; ++i, ++j) {
                if (t[i] != t[j])
                    return 1;
            }
            return 0;
        }())
            std::cout << "NOT UNIQUE\n";
        else if (p1 < q1 - 2 && p2 < q2 - 2)
            std::cout << "NOT POSSIBLE\n";
        else if (p1 >= q1 - 2) {
            for (i = 1; i <= n / 2; ++i)
                std::cout << t[i];
            std::cout << '\n';
        }
        else {
            for (int i = n / 2 + 2; i <= n; ++i)
                std::cout << t[i];
            std::cout << '\n';
        }
    }
    return 0;
}

标签:q1,p2,q2,还是,--,std,&&
From: https://www.cnblogs.com/XSC062/p/18431516

相关文章

  • 新手卖家做跨境电商,选择Shopee还是亚马逊?
    对于刚刚涉足跨境电商领域的新人来说,选择合适的电商平台是迈出成功第一步的关键。目前最主流的跨境平台一定是亚马逊,平台覆盖全球各个市场,利润高,但门槛也高。Shopee主要面向的是东南亚市场,商品一般更有性价比,平台门槛也相对较低。接下来,我们将通过各个维度进行对比,帮助卖家选择......
  • 全能还是专精?关于技术通才与技术专家的思考
    全能还是专精?关于技术通才与技术专家的思考 在日新月异的IT行业中,每隔数年乃至数月,便会涌现出革新性的技术或前沿框架,引领行业潮流。比如前端开发,我刚开始工作时,大部分都是静态页面+JavaScript,页面上只有一些简单的交互。后来出现了Ajax技术和JQuery库,现在想起当年第一次......
  • 在多态的方法调用中为什么会出现“左边编译左边运行”的现象?多态创建的对象到底是谁属
    目录“左边编译左边运行”的两个原因:什么是“编译看左边,运行看右边”?为什么会出现“左边编译左边运行”现象?1.子类没有重写父类的方法2.重载与重写的混淆(重难点)问题:编译器是怎么看一个方法是重写还是重载的呢?区分方式:查看方法的签名如何避免“左边编译左边运行”的......
  • pbootcms网站是使用sqlite数据库好还是使用mysql数据库好
    选择在PbootCMS网站上使用SQLite数据库还是MySQL数据库取决于几个因素,包括但不限于网站规模、预期的访问量、并发需求以及维护成本等。以下是两者的对比:SQLite架构:SQLite是一种嵌入式的关系型数据库管理系统,它不需要单独的服务器进程或系统。适用场景:适用于小型应用程序,访问量......
  • 智能驾驶:未来出行的守护者还是黑客的新战场?
    随着新能源车的普及,越来越多的车辆配备了智能驾驶控制系统。然而,这些系统可能存在的安全问题也引起了公众的广泛关注。近日,在长沙举办的一场主题为“信息物理系统安全技术”的沙龙活动上,众多行业专家和学者齐聚一堂,就智能驾驶系统的安全性进行了深入探讨。采访中,曹颖杰副院长提出了......
  • 数据中台至数据飞轮:必然的进化还是另辟蹊径?
    在当前大数据领域,数据中台已成为众多企业构建数据能力的核心枢纽。然而,随着“数据飞轮”概念的兴起,这一既定模式是否即将迎来其演进的新阶段?本文将探讨数据中台与数据飞轮的关系,以及企业如何有效“转动”其数据飞轮。首先,理解数据中台作为数据飞轮基础的重要性不容忽视。数据中台......
  • 想要转行到互联网行业,是应该选择软件工程还是网络安全?_网络工程和网络空间安全谁更适
    学习路线:这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄......
  • 自学黑客(网络安全),一般人我劝你还是算了吧_网络安全漏洞挖掘需要报课吗
    一、自学网络安全学习的误区和陷阱1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多一般人如果想要把编程学好再开始......
  • 如何选择是开发小程序还是开发APP?
    目录前言1.开发成本和周期2.用户体验3.推广方式4.功能实现5.技术实力6.业务需求综合考虑前言在选择是开发小程序还是开发APP时,需要综合考虑多个因素,包括开发成本、开发周期、用户体验、推广方式、功能实现、技术实力以及业务需求等。以下是对这些因......
  • JavaScript是前端语言还是后端语言?
    JavaScript主要被称为前端语言,但它也广泛应用于后端开发。以下是其在这两个领域的角色细分:前端开发客户端脚本:JavaScript主要用于在网站上创建交互式和动态元素。这包括表单验证、动画和处理用户交互等任务。框架和库:React、Angular和Vue.js等流行框架和库利用JavaSc......