Codeforces Round 918 (Div. 4)(A~F)

news2024/11/25 5:01:28

目录

A. Odd One Out

B. Not Quite Latin Square

C. Can I Square?

D. Unnatural Language Processing

E. Romantic Glasses

F. Greetings


A. Odd One Out

Problem - A - Codeforces

输出一个不同于其他两个数的数,用异或操作可以轻松解决。

void solve{
    int a,b,c;
    cin>>a>>b>>c;
    cout<<a^b^c<<"\n";
}

B. Not Quite Latin Square

Problem - B - Codeforces

找到?的位置,再分析它这行和列出现的元素。

char a[30][30];
void solve()
{
    int x, y;
    for (int i = 1; i <= 3; i++)
    {
        for (int j = 1; j <= 3; j++)
        {
            cin >> a[i][j];
            if (a[i][j] == '?')
            {
                x = i, y = j;
            }
        }
    }
    int f[200];
    memset(f, 0, sizeof(f));
    for (int i = 1; i <= 3; i++)
    {
        f[a[x][i]]++;
        f[a[i][y]]++;
    }
    for (int i = 'A'; i <= 'C'; i++)
    {
        if (!f[i])
        {
            cout << (char)i << "\n";
        }
    }

}

C. Can I Square?

Problem - C - Codeforces

数组所有元素的和是否为完全平方数。

void solve()
{
    int n;
    cin >> n;
    ll sum = 0;
    for (int i = 1; i <= n; i++)
    {
        ll x;
        cin >> x;
        sum += x;
    }
    if ((double)sqrt(sum) == (int)sqrt(sum))
    {
        cout << "YES\n";
    }
    else cout << "NO\n";

}

D. Unnatural Language Processing

Problem - D - Codeforces

规定一个规则。

当出现CC的子串,那么它们中间必定插入一个'.',再判断一些V后面是否插入'.',如果V后面是CC子串则不插入,或者V位于倒数第二个元素后面也不执行插入,反之都插入。

ll pos[N];
void solve()
{
    memset(pos, 0, sizeof(pos));
    int n;
    cin >> n;
    string s,t,ans;
    t.resize(n + 1);
    cin >> s;
    for (int i = 0; i < s.size(); i++)
    {
        if (s[i] == 'a' || s[i] == 'e') t[i] = 'V';
        else t[i] = 'C';
    }
    
    for (int i = 0; i < s.size() - 1; i++)
    {
        if (t[i] == 'C' && t[i + 1] == 'C')
        {
            pos[i] = 1;
        }
    }
    for (int i = 0; i < s.size(); i++)
    {
        if (i >= s.size() - 2)
        {
            ans += s[i];
            continue;
        }
        if (pos[i])
        {
            ans += s[i];
            ans += '.';
            continue;
        }
        if (t[i] == 'V'&&!pos[i+1])
        {
            ans += s[i];
            ans += '.';
            continue;
        }
        ans += s[i];
    }
    
    cout << ans << "\n";
}

E. Romantic Glasses

Problem - E - Codeforces

其实就是找到一个连续子数组的奇位与偶位的元素和相同,那我们不妨将所有偶位元素ai设置为-ai,在遍历数组用前缀和记录,当当前前缀和的数字为0或者出现第二次,那么则出现了目标的连续子数组。

ll f[N];
void solve()
{
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) cin >> f[i];
    ll sum = 0;
    map<ll,ll>v;
    for (int i = 1; i <= n; i++)
    {
        f[i] *= ((i % 2) ? 1 : -1);
        sum += f[i];
        if (v[sum]||!sum)
        {
            cout << "YES\n";
            return;
        }
        v[sum]++;
    }
    cout << "NO\n";
}

F. Greetings

Problem - F - Codeforces

其实就是排序+离散化+树状数组,利用树状数组求逆序对。

当我们对元素按照终点的编号大小按照从小到大排序后,单独将他们的起点编号设置为一个数组,我们发现这个数组的逆序对就是我们要的答案,但是n^2的求解肯定会超时,我们可以用分治或者树状数组去快速求解逆序对,由于本人对树状数组熟悉一些,下面演示的是树状数组求解的代码。

struct Node
{
    ll s,e,id;
}e[N];
ll n;
ll a[N], rak[N];
ll lowbit(ll x)
{
    return x & (-x);
}
bool cmp(Node a, Node b)
{
    return a.e < b.e;
}
bool cmp1(Node a, Node b)
{
    return a.s < b.s;
}
void add(ll pos)
{
    for (int i = pos; i <= n; i += lowbit(i)) a[i] += 1;
}
ll ask(ll pos)
{
    ll ans = 0;
    for (int i = pos; i >= 1; i -= lowbit(i)) ans += a[i];
    return ans;
}
void solve()
{
    memset(a, 0, sizeof(a));
    memset(rak, 0, sizeof(rak));
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        cin >> e[i].s >> e[i].e;
    }
    sort(e + 1, e + 1 + n, cmp);
    for (int i = 1; i <= n; i++)
    {
        e[i].id = i;
    }
    sort(e + 1, e + 1 + n,cmp1);
    for (int i = 1; i <= n; i++)
    {
        
        rak[e[i].id] = i;
    }
    ll ans = 0;
    for (int i = 1; i <= n; i++)
    {
        ll pos = rak[i];
        ans += ask(n) - ask(pos);
        add(pos);
    }
    cout << ans << "\n";
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1904202.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ompl.app的demo_OpenDEPlanning例子

编译了下OMPL和OMPL.app, 其中有个example 是用刚体动力学库ODE搭建的小车运动场景&#xff0c;找出小车到目标的路径&#xff0c;牵引小车跑到目标位置。 ompl小车路径运动模拟

https 自签证书相关生成csr文件、p12文件、crt文件、jks文件、key文件、pem文件

文章目录 前言https 自签证书相关生成csr文件、p12文件、crt文件、jks文件、key文件、pem文件1, 检查openssl的版本2. 生成私钥和证书签署请求 (CSR)3. 生成自签名证书4. 将证书和私钥转换为 PKCS12 格式的密钥库5. 创建信任库 (Truststore)6. 将 PKCS12 文件转换为 JKS 文件7.…

详解Python递归解决汉诺塔问题

Python递归解决汉诺塔问题 递归解决汉诺塔问题是经典的计算机科学问题&#xff0c;它涉及到如何将一堆盘子从一个柱子上移动到另一个柱子上&#xff0c;每次只能移动一个盘子&#xff0c;并且大盘子不能放在小盘子上面。 例如我们需要将a柱盘子全部移动到b柱&#xff0c;接下来…

程序员熬夜看欧洲杯被“冻住”,呼吸困难……

2024欧洲杯接近尾声&#xff0c;更是激发球迷兴趣。由于时差关系&#xff0c;很多球迷熬夜看球&#xff0c;啤酒、宵夜成了标配。然而&#xff0c;在这份欢乐背后&#xff0c;也隐藏着健康风险。 日前&#xff0c;浙江杭州29岁的程序员单先生熬夜与朋友看完球赛后开车回家&…

室内定位可视化:精准导航与实时位置展示

通过图扑室内定位可视化技术&#xff0c;提供精准的导航服务和实时位置展示&#xff0c;帮助用户高效找到目标地点&#xff0c;提升空间管理和资源配置的效率与体验。

Spring学习05-[AOP学习-AOP原理和事务]

AOP原理和事务 AOPAOP底层原理比如下面的代码案例手动模拟AOP 动态代理详解JDK动态代理 AOP AOP底层原理 当实现了AOP,Spring会根据当前的bean创建动态代理(运行时生成一个代理类) 面试题&#xff1a;为什么执行方法的时候&#xff0c;会执行切面里的通知方法&#xff1f; 比…

51单片机嵌入式开发:1、STC89C52环境配置到点亮LED

STC89C52环境配置到点亮LED 1 环境配置1.1 硬件环境1.2 编译环境1.3 烧录环境 2 工程配置2.1 工程框架2.2 工程创建2.3 参数配置 3 点亮一个LED3.1 原理图解读3.2 代码配置3.3 演示 4 总结 1 环境配置 1.1 硬件环境 硬件环境采用“华晴电子”的MINIEL-89C开发板&#xff0c;这…

YOLOv8 | 代码逐行解析(五) | YOLOv8中损失函数计算的详解包含Cls和Bbox计算的解析,小白必看(下)

一、本文介绍 本文给大家带来的是YOLOv8中的损失函数计算的完整解析&#xff0c;内容包括v8DetectionLoss的解析&#xff0c;以及BboxLoss的解析&#xff0c;如果你相对损失函数的计算原理&#xff0c;本文内容绝对会对你有所帮助&#xff0c;全文内容包含1万两千字&#xff0…

【鸿蒙学习笔记】MVVM模式

官方文档&#xff1a;MVVM模式 [Q&A] 什么是MVVM ArkUI采取MVVM Model View ViewModel模式。 Model层&#xff1a;存储数据和相关逻辑的模型。View层&#xff1a;在ArkUI中通常是Component装饰组件渲染的UI。ViewModel层&#xff1a;在ArkUI中&#xff0c;ViewModel是…

四大常见的排序算法JAVA

1. 冒泡排序 相邻的元素两两比较&#xff0c;大的放右边&#xff0c;小的放左边 第一轮比较完毕之后&#xff0c;最大值就已经确定&#xff0c;第二轮可以少循环一次&#xff0c;后面以此类推 如果数组中有n个数据&#xff0c;总共我们只要执行n-1轮的代码就可以 package Bu…

转盘输入法-键盘加鼠标版本

序 转盘输入法&#xff0c;给你的聊天加点新意。它不用常见的九宫格或全键盘&#xff0c;而是把字母摆在圆盘上&#xff0c;一滑一滑&#xff0c;字就出来了&#xff0c;新鲜又直接。 键盘加鼠标版本GIF演示 演示软件下载 转盘输入法PC演示版本EXE下载https://download.csdn…

一招解决找不到d3dcompiler43.dll,无法继续执行代码问题

当您的电脑遇到d3dcompiler43.dll缺失问题时&#xff0c;首先需要了解d3dcompiler43.dll文件及其可能导致问题的原因&#xff0c;之后便可以选择合适的解决方案。在此&#xff0c;我们将会为您提供寻找d3dcompiler43.dll文件的多种处理方法。 一、d3dcompiler43.dll文件分析 d…

virtualbox安装unbuntu22.04

准备 virtualbox https://www.virtualbox.org/ ubuntu ios https://ubuntu.com/ 安装 等待安装结束即可&#xff0c;输入账号密码登录系统 远程连接发现失败&#xff0c;不过ping 外网可以访问 关闭虚拟机&#xff0c;选择工具&#xff0c;网络查看ip 选择虚拟机&#…

【初中数学选讲】绝对值的几何意义例题(20240503-01)

初中数学选讲&#xff1a;绝对值的几何意义例题&#xff08;20240503-01&#xff09; 1. 练习题目1.1 题目描述1.2 分析 2 答题2.1 定义2.2 分段讨论2.2.1 情况1&#xff1a; x x x点在 a a a点左侧&#xff08; x < a , m ∣ x − a ∣ x<a,\ \ m\left|x-a\right| x<…

数字时代的影像奇迹:专业照片处理软件的创新功能与视觉盛宴

大家好&#xff01;随着时间的流逝&#xff0c;一些珍贵的照片可能会因各种原因而变得模糊不清&#xff0c;但幸运的是&#xff0c;现代科技的发展为我们提供了一种解决方案——专业的照片处理软件。这类软件具备强大的功能&#xff0c;能够将照片高清修复并赋予特效变化&#…

Elasticsearch:Runtime fields - 运行时字段(二)

这是继上一篇文章 “Elasticsearch&#xff1a;Runtime fields - 运行时字段&#xff08;一&#xff09;” 的续篇。 目录 在查询时覆盖字段值 检索运行时字段 定义运行时字段以计算星期几 提取一些数据 搜索计算出的星期几 从相关索引中检索字段 索引运行时字段 使用运…

在门店里造绿色氧吧!康养行业也这么卷了?

拼啥不如拼健康&#xff0c;现在的人算是活明白了&#xff0c;不但中老年人这样想&#xff0c;年轻人也这样干。你可能不知道&#xff0c;现在众多健康养生门店&#xff0c;逐渐成了年轻人“组团养生”的好去处&#xff0c;也是他们吃喝玩乐之外的新兴消费趋势。 而在看得见的…

L04_MySQL知识图谱

这些知识点你都掌握了吗&#xff1f;大家可以对着问题看下自己掌握程度如何&#xff1f;对于没掌握的知识点&#xff0c;大家自行网上搜索&#xff0c;都会有对应答案&#xff0c;本文不做知识点详细说明&#xff0c;只做简要文字或图示引导。 1 基础 1.1内部组件结构 1.2 数据…

自注意力机制和多头注意力机制区别

Ref&#xff1a;小白看得懂的 Transformer (图解) Ref&#xff1a;一文彻底搞懂 Transformer&#xff08;图解手撕&#xff09; 多头注意力机制&#xff08;Multi-Head Attention&#xff09;和自注意力机制&#xff08;Self-Attention&#xff09;是现代深度学习模型&#x…

刷题之买股票的最佳时机(leetcode)

买股票的最佳时机 动态规划入门题。 最简单的模拟式解法&#xff1a; class Solution { public:int maxProfit(vector<int>& prices) {//也可以换一种思路&#xff0c;因为只交易一次&#xff0c;那么找出股票最便宜的时候买入&#xff0c;最贵的时候卖出&#xff…