Codeforces Round #841 (Div. 2) (A--D)

news2024/10/5 21:24:30

@[TOC](Codeforces Round #841 (Div. 2)(A–D))

A、 Joey Takes Money

1、题目

在这里插入图片描述

2、思路

在这里插入图片描述

3、代码

    #include<iostream>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    typedef unsigned long long ll;
    int main()
    {
        ll t;
        cin>>t;
        while(t--)
        {
            int n;
            cin>>n;
            ll sum=1;
            for(int i=0;i<n;i++)
            {
                ll a;
                cin>>a;
                sum*=a;
            }
            ll ans=(sum+(n-1))*2022;
            cout<<ans<<endl;
        }
        return 0;
    }

B、Kill Demodogs

1、题目

在这里插入图片描述

2、思路(数列、费马小定理、快速幂)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、代码

    #include<iostream>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    const int mod=1e9+7;
    typedef unsigned long long ll;
    ll qmi(ll a,ll b,ll p)
    {
        ll res=1;
        while(b)
        {
            if(b%2)res=res*a%p;
            a=a*a%p;
            b/=2;
        }
        return res%p;
    }                                          
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {
            ll n;
            cin>>n;
            ll sum=0;
            sum=(ll)n*(n+1)%mod*(4*n-1)%mod*qmi(6,mod-2,mod)%mod*2022%mod;
            cout<<sum<<endl;
        }
        return 0;
    }

C、Even Subarrays

1、题目

在这里插入图片描述

2、思路(前缀异或和)

首先对于异或的性质我们要有个了解。如果A异或B等于C的话,那么必定满足B^C等于A,A异或C等于B。

涉及到区间问题,我们这里使用前缀异或和

这道题中所提到的因子个数是奇数,那么必定是一个完全平方数。所以我们只需要找到异或区间内所有数字异或的结果是完全平方数的即可。然后我们利用总的数目减去不符合条件的数目。
在这里插入图片描述

现在的问题有两个,我们如何计算总的数目?我们如何排除不符合条件的情况?
我们看下面的推导:
异或区间总数目:
在这里插入图片描述
平方数记作 t t t(不是题干中的t),下面推导这个平方数的所在范围。
在这里插入图片描述
知道了这个t的范围之后,我们只需要去枚举他的开方情况即可。这样可以降低时间复杂度。

那么总的思路如下图:
在这里插入图片描述枚举所有的S2,然后枚举平方数t,计算出S1,减去所有等于S1的情况。

那么总的时间复杂度就是 O ( n n ) O(n\sqrt{n}) O(nn )

3、代码

    #include<iostream>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int N=4e6+10;
    typedef long long ll;
    int a[N],cnt[N];
    int t,n;
    int main()
    {
        cin>>t;
        while(t--)
        {
            cin>>n;
            int ma=2*n;
            for(int i=1;i<=n;i++)
            {
                scanf("%d",a+i);
                a[i]^=a[i-1];
            }
            ll ans=0;
            cnt[a[0]]++;
            for(int i=1;i<=n;i++)
            {
                ans+=i;
                for(int j=0;j*j<=ma;j++)
                {
                    ans-=cnt[a[i]^(j*j)];
                }
                cnt[a[i]]++;
            }
            for(int i=1;i<=ma;i++)
                cnt[a[i]]=0;
            cout<<ans<<endl;        
        }
        return 0;
    }

D、Valiant’s New Map

1、题目

在这里插入图片描述

2、思路(二分、二维前缀和)

思路很简单,二分找答案,前缀和判断。
在这里插入图片描述

3、代码

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
const int N=1e6+10;
int n,m;
bool check(int x,vector<vector<int>>&a,vector<vector<int>>&g)
{
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            a[i][j]=a[i-1][j]+a[i][j-1]-a[i-1][j-1]+(int)(g[i][j]>=x);
    for(int i=x;i<=n;i++)
    {
        for(int j=x;j<=m;j++)
        {
            int res=a[i][j]-a[i-x][j]-a[i][j-x]+a[i-x][j-x];
            if(res==x*x)return true;
        }
    }
    return false;
}
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        cin>>n>>m;
        vector<vector<int>>a(n+1,vector<int>(m+1));
        vector<vector<int>>g(n+1,vector<int>(m+1));
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                scanf("%d",&g[i][j]);
        int l=1,r=n;
        while(l<r)
        {
            int mid=l+r+1>>1;
            if(check(mid,a,g))l=mid;
            else r=mid-1;
        }
        cout<<l<<endl;
    }
    return 0;
}

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

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

相关文章

新书赠送丨《中国金融科技发展概览:创新与应用前沿》

我国金融科技发展日新月异&#xff0c;人工智能、云计算、大数据等新兴数字技术与实体经济及金融业的深度融合&#xff0c;推动我国数字经济快速发展&#xff0c;也深刻改变着我国金融业的服务业态和经营模式。过去的一年&#xff0c;金融机构实现核心技术自主可控成为热点&…

影响因子14.65:16S全长测序+低丰度简化菌群,提供根腐病防控新视角

背景介绍当土壤中病原体入侵时&#xff0c;植物可以动态调节其根际微生物并适应这种生物胁迫。植物招募的保护性微生物群落中通常包含一些低丰度的类群&#xff0c;其作用尚不清楚。本研究首先分析了健康和患病黄芪之间根系微生物群落结构的差异&#xff0c;依据患病黄芪根部的…

增加模拟前端的动态范围

1、光电接收电路 下面两张图分别在sensor正偏置和负偏置时的接收电路&#xff0c;这里我们关注一下输出的波形特征为一个脉冲信号&#xff0c;脉冲信号的共模电压为5V分压得到&#xff0c;信号的摆幅为Iout*RT&#xff0c;Iout为光电流&#xff0c;在应用在雷达接收的中时&…

JVM调试命令与调试工具

一、JDK自带命令Sun JDK监控和故障处理命令如&#xff1a;1、jpsJVM Process Status Tool&#xff0c;显示指定系统内所有的HotSpot虚拟机进程。jsp命令格式&#xff1a;jps [ options ] [ hostid ] 扩展参数&#xff1a;jps -l&#xff1b;jps -mlv&#xff1b;各参数说明如下…

tkinter 实现倒计时(1小时)

使用python标准GUI库tkinter实现倒计一小时效果。 废话少说。 效果图&#xff1a; 要不然看个 动态效果 图&#xff1a; 代码&#xff1a; from tkinter import * from tkinter.messagebox import showerrorroot Tk() root.title("倒计时") root.geometry("3…

解析|当前企业OA系统面对的困难与解决方案

近年来&#xff0c;由于疫情爆发&#xff0c;线下的企业办公效率难以保证&#xff0c;不少企业逐渐转向远程办公。尝试过后&#xff0c;远程办公的优势凸显&#xff0c;使得有越来越多的企业开始逐渐深入了解在线办公软件、协同办公OA系统。据统计&#xff0c;2021年数字化办公…

监控docker

当前&#xff0c;容器的使用已经非常普及&#xff0c;将服务迁移到容器上正成为了越来越多公司的选择。而对于运维人员而言&#xff0c;熟悉容器的使用与监控&#xff0c;也已成为一项必不可少的专业技能。关于容器的开源产品&#xff0c;目前知名的有Docker、Containerd、Core…

P2580 于是他错误的点名开始了

题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人。 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次&#xff0c;然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉&#xff08;详情请见已结束比赛 CON900&#xff09;。 题目描述 这之后校长任命你为特派探员…

范数的意义与计算方法(使用NumPy)

1. 范数的意义 范数可以简单的理解为“距离”。由于向量是既有大小又有方向的量&#xff0c;所以向量是不能直接比较大小的&#xff0c;但是范数提供了一种方法&#xff0c;可以将所有的向量转化为一个实数&#xff0c;然后就可以比较向量的大小了。&#xff08;注&#xff1a…

前端Vue和Element-UI配合后端接口进行数据交互

前言 本次用element-ui的table组件&#xff0c;简单案例演示下前后端数据交互。 前提声明&#xff1a;如果不知道如何在vue中引入element-ui&#xff0c;可以先看下这篇文章:Vue引入并使用Element-UI组件库的两种方式 静态页面 首先先写一个静态页面吧&#xff0c;数据都是…

《Linux运维实战:Centos7.6基于ansible一键离线部署redis6.2.8容器版之cluster集群》

一、部署背景 由于业务系统的特殊性&#xff0c;我们需要针对不同的客户环境部署redis cluster集群&#xff0c;由于大都数用户都是专网环境&#xff0c;无法使用外网&#xff0c;为了更便捷&#xff0c;高效的部署&#xff0c;针对业务系统的特性&#xff0c;我这边编写了基于…

采用模块化设计的轮腿式六足机器人

原创作者&#xff1a;王菡琪1、前言 1.1 背景及意义 近两个世纪以来&#xff0c;人类生产技术水平不断飞跃&#xff0c;人口数量也大幅增长&#xff0c;这是人类史上不曾有的盛景&#xff0c;但是这也同时对我们提出了全新的挑战&#xff0c;于是我们研发了各类机器&#xff…

ECS简单介绍

ECS 云服务器ECS (Elastic Compute Service)是一种可弹性伸缩的计算服务&#xff0c;降低IT成本&#xff0c;提升运维效率&#xff0c;更专注于核心业务创新。 定位&#xff1a;最基础的计算服务&#xff0c;ECS及其上装载的操作系统&#xff0c;通常用作应用程序的运行环境。…

聚类--常见的K-MEANS聚类,DBSCAN聚类方法介绍

聚类 1. 什么是聚类⁉️ ➡️ 聚类就是把相似的物品分到一组。例如苹果&#xff0c;橙子属于水果类&#xff0c;猫&#xff0c;狗属于动物类&#xff0c;聚类把具有相似属性的物品分到同一组。 ☕常见的两种监督问题 有监督问题&#xff1a;有标签学习&#xff0c;通过已知…

过线检测判断方向

过线检测时需要判断目标是从哪个方向经过的 L1向量&#xff1a;&#xff08;-1&#xff0c;-7&#xff09; L2向量&#xff1a;&#xff08;-5&#xff0c;0&#xff09; 叉乘&#xff1a;L1 X L2 (-1x0 - (-5 x -7)) 0 - 35 -35 点乘&#xff1a;L1 L2 -1 x -5 -7 x 0…

管道设计软件:PIPEDATA-PRO

PIPEDATA-PROPipedata-Pro 提高了管道设计的效率&#xff0c;减轻了查找管道信息的负担。它可以直观、轻松地检索最新的管道和设计数据。尺寸和重量单位可以设置为公制或美国惯用单位。 Pipedata-Pro 于 1996 年由 Zeataline Projects 推出&#xff0c;现在已遍布全球&#xff…

靶机测试DomDom笔记

靶机描述Back to the TopHow well do you understand PHP programs? How familiar are you with Linux misconfigurations? This image will cover advanced Web attacks, out of the box thinking and the latest security vulnerabilities.Please note that this is captur…

阿里云中MindOpt优化器在python中如何安装

文章目录1 背景2 目的3 Bug4 安装教程6 小丑竟是我自己1 背景 我需要本地下载安装使用阿里元的MindOpt&#xff0c;安装教程可以看官网说明文档&#xff08;方方面面都有&#xff0c;不过细节部分有点欠缺&#xff0c;可能会踩一些坑&#xff0c;但总体问题不大&#xff09;。…

盘点 | CES2023落幕!新能源车、显示技术、AI/元宇宙、芯片…百花齐放百家争鸣中……

美国时间1月8日&#xff0c;全球规模最大、水平最高、影响力最广泛的国际消费电子展&#xff08;CES 2023&#xff09;在美国拉斯维加斯闭幕。这场堪比科技“春晚”的消费电子盛宴以“技术如何应对世界上最大的挑战”为主题&#xff0c;来自全球170多个国家与地区的3200余家科技…

OpenResty(Nginx+Redis+Lua)实现缓存限流

OpenResty介绍 OpenResty(又称&#xff1a;ngx_openresty) 是一个基于 nginx的可伸缩的 Web 平台&#xff0c;由中国人章亦春发起&#xff0c;提供了很多高质量的第三方模块。 OpenResty 是一个强大的 Web 应用服务器&#xff0c;Web 开发人员可以使用 Lua 脚本语言调动 Ngin…