当前位置: 首页 > news >正文

Codeforces Round 903 (Div. 3)ABCDE

Codeforces Round 903 (Div. 3)ABCDE

目录

  • A. Don't Try to Count
    • 题目大意
    • 思路
    • 核心代码
  • B. Three Threadlets
    • 题目大意
    • 思路
    • 核心代码
  • C. Perfect Square
    • 题目大意
    • 思路
    • 核心代码
  • D. Divide and Equalize
    • 题目大意
    • 思路
    • 核心代码
  • E. Block Sequence
    • 题目大意
    • 思路
    • 核心代码

A. Don’t Try to Count

在这里插入图片描述

题目大意

分别给你两个字符串 s s s x x x,可以对 x x x进行复制操作, x = x + x x=x+x x=x+x,如果可以通过这样的操作使得 s s s字符串成为字符串 x x x的子串,询问操作的次数

思路

首先, s s s想要成为 x x x的子串,首先 x x x的长度要大于等于 s s s的长度。
其次,如果 x x x已经大于或等于 s s s的长度了,有可能会出现“abcdefg”和“gabcdef”的情况,此时我们需要再操作一次,后面无论再如何操作都无法达成题意

核心代码

void solve()
{int n,m;cin>>n>>m;string s,p;cin>>s>>p;int cnt=0;while(n<m){s=s+s;n<<=1;cnt++;}for(int i=0;i<n;++i){bool pd=1;for(int j=i;j<i+m;++j){if(s[j]!=p[j-i]){pd=0;break;}}if(pd){cout<<cnt<<endl;return ;}}s=s+s;n<<=1;cnt++;for(int i=0;i<n;++i){bool pd=1;for(int j=i;j<i+m;++j){if(s[j]!=p[j-i]){pd=0;break;}}if(pd){cout<<cnt<<endl;return ;}}cout<<-1<<endl;
}

B. Three Threadlets

在这里插入图片描述

题目大意

给你三个绳子长度,均为整数,每一次可以把一个绳子剪断成两个整数长度,最多减三次,询问这三个长度的绳子最后能否剪成所有的绳子长度相同

思路

最后长度相同,假设都为1,反过来进行两两相加操作可以得到能实现的比例,情况不多直接全部枚举就好,能实现的比例如下:
在这里插入图片描述

核心代码

void solve()
{long long a,b,c;cin>>a>>b>>c;if(a>b)swap(a,b);if(a>c)swap(a,c);if(b>c)swap(b,c);if(a*1==b*1&&b*4==c*1)cout<<"YES\n";else if(a*2==b*1&&b*3==c*2)cout<<"YES\n";else if(a*1==b*1&&b*1==c*1)cout<<"YES\n";else if(a*1==b*1&&b*3==c*1)cout<<"YES\n";else if(a*2==b*1&&b*1==c*1)cout<<"YES\n";else if(a*1==b*1&&b*2==c*1)cout<<"YES\n";else cout<<"NO\n";
}

C. Perfect Square

在这里插入图片描述

题目大意

有一个边长为偶数n的正方形字母矩阵,每一次操作可以使得一个字母向后加一,“z”之后再加就不变了,现在想要把这个方阵变成顺时针旋转90°也能和原来一样的方阵,询问最少需要操作多少次

思路

旋转之后和原来一样,假设一个字母在左上角,则可以找到右上角、左下角、右下角都会有一个对应的点,这四个点的值应该是一样的,也就是我们需要把这对应的四个点都操作为原本这四个点中的最大值,对于左上角的所有点都这样找对应关系、求操作次数即可

核心代码

void solve()
{int n;cin>>n;string s[1010];{for(int i=0;i<n;++i)cin>>s[i];}long long ans=0;for(int i=0;i<n/2;++i){for(int j=0;j<n/2;++j){int maxzhi=max(s[i][j],max(s[j][n-i-1],max(s[n-j-1][i],s[n-i-1][n-j-1])));ans+=maxzhi*4-s[i][j]-s[n-1-i][j]-s[i][n-1-j]-s[n-1-i][n-1-j];}}cout<<ans<<endl;
}

D. Divide and Equalize

在这里插入图片描述

题目大意

给你一个长度为 n n n的数组,每一次选取两个不同位置的数,可以把其中一个数除以它的因数,再把这个因数乘给另一个数,换句话说转化前后这两个数的乘积不变,询问最后这一个数组是否能转化为每一个数都一样

思路

最后每一个数都一样,说明所有的数的乘积后分解质因数,每一个质因数的个数都是 n n n的倍数,所以对于每一个数分解质因数最后统计每一个质因数的个数最后判断是否是 n n n的倍数即可得出答案

核心代码

int primes[N], cnt;
bool st[N];void init(int n)
{memset(st, 0, sizeof st);cnt = 0;for (int i = 2; i <= n; i ++ ){if (!st[i]) primes[cnt ++ ] = i;for (int j = 0; primes[j] * i < n; j ++ ){st[i * primes[j]] = true;if (i % primes[j] == 0) break;}}
}int zhuanghua(int a)
{int left=0,right=cnt;while(left<right){int mid=left+((right-left)/2);if(primes[mid]>a)right=mid;else if(primes[mid]==a)return mid;else left=mid+1;//debug(mid);}return left;
}
int arr[1000000];
void solve()
{int n;cin>>n;memset(arr, 0, 1000000);for(int i=0;i<n;++i){int x;scanf("%d",&x);for (int i = 2; i <= x / i; i ++ )if (x % i == 0){int s = 0;while (x % i == 0) x /= i, s ++ ;arr[zhuanghua(i)]+=s;}if (x > 1) arr[zhuanghua(x)]++;}for(int i=0;i<cnt;++i){if(arr[i]%n!=0) {cout << "NO\n";return;}}cout<<"YES\n";return ;
}int main()
{int t=1;cin>>t;init(1000000);//cout<<zhuanghua(2);while(t--){solve();}return 0;
}

E. Block Sequence

在这里插入图片描述

题目大意

给定一个长度n整数序列,如果一个序列具有一系列块的形式,则称为美丽,每个块都从其长度开始,即首先是块的长度,然后是其元素。在一个操作中,可以从序列中删除任何元素。使给定序列美观所需的最小操作数是多少?

思路

使用动态规划的思想,假设dp[i]为第i的位置前面所有的数字想要成为美丽序列需要几次操作
一共有两种操作,第一种是移除第i位来实现,此时需要操作的次数为dp[i-1]+1
第二种是前面有一个完整的美丽块来实现,这种只能通过前面来推出后面,假设选中第i位为开头,那么后面第 i + a i + 1 i+ai+1 i+ai+1位以前想要成为美丽序列所需要的操作就是 d p [ i + a i + 1 ] = d p [ i ] dp[i+ai+1]=dp[i] dp[i+ai+1]=dp[i]
以上两种情况保留最小值

核心代码

void solve()
{int n;cin>>n;int arr[200005]{};int dp[200005]{};for(int i=1;i<=n;++i){scanf("%d",&arr[i]);dp[i]=INT_MAX;}dp[n+1]=INT_MAX;dp[0]=-1;for(int i=1;i<=n+1;++i){dp[i]=min(dp[i-1]+1,dp[i]);if(i+arr[i]+1<=n+1)dp[i+arr[i]+1]=min(dp[i],dp[i+arr[i]+1]);}cout<<dp[n+1]<<endl;
}

相关文章:

Codeforces Round 903 (Div. 3)ABCDE

Codeforces Round 903 (Div. 3)ABCDE 目录 A. Dont Try to Count题目大意思路核心代码 B. Three Threadlets题目大意思路核心代码 C. Perfect Square题目大意思路核心代码 D. Divide and Equalize题目大意思路核心代码 E. Block Sequence题目大意思路核心代码 A. Don’t Try t…...

C# 与 C/C++ 的交互

什么是平台调用 (P/Invoke) P/Invoke 是可用于从托管代码访问非托管库中的结构、回调和函数的一种技术。 托管代码与非托管的区别 托管代码和非托管代码的主要区别是内存管理方式和对计算机资源的访问方式。托管代码通常运行在托管环境中&#xff0c;如 mono 或 java 虚拟机等…...

新版Android Studio搜索不到Lombok以及无法安装Lombok插件的问题

前言 在最近新版本的Android Studio中&#xff0c;使用插件时&#xff0c;在插件市场无法找到Lombox Plugin&#xff0c;具体表现如下图所示&#xff1a; 1、操作步骤&#xff1a; &#xff08;1&#xff09;打开Android Studio->Settings->Plugins&#xff0c;搜索Lom…...

BST二叉搜索树

文章目录 概述实现创建节点查找节点增加节点查找后驱值根据关键词删除找到树中所有小于key的节点的value 概述 二叉搜索树&#xff0c;它具有以下的特性&#xff0c;树节点具有一个key属性&#xff0c;不同节点之间key是不能重复的&#xff0c;对于任意一个节点&#xff0c;它…...

【Leetcode】211. 添加与搜索单词 - 数据结构设计

一、题目 1、题目描述 请你设计一个数据结构&#xff0c;支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。 实现词典类 WordDictionary &#xff1a; WordDictionary() 初始化词典对象void addWord(word) 将 word 添加到数据结构中&#xff0c;之后可以对它…...

Discuz户外旅游|旅行游记模板/Discuz!旅行社、旅游行业门户网站模板

价值328的discuz户外旅游|旅行游记模板&#xff0c;本模板需要配套【仁天际-PC模板管理】插件使用。 模板说明 1、模板页面宽度1200px&#xff0c;简洁大气&#xff0c;较适合户外旅行、骑行、游记、摩旅、旅游、活动等类型的论坛、频道网站&#xff1b; 2、所优化的页面有&…...

【重拾C语言】十一、外部数据组织——文件

目录 前言 十一、外部数据组织——文件 11.1 重新考虑户籍管理问题——文件 11.2 文件概述 11.2.1 文件分类 11.2.2 文件指针、标记及文件操作 11.3 打开、关闭文件 11.4 I/O操作 11.4.1 字符读写 11.4.2 字符串读写 11.4.3 格式化读写 11.4.4 数据块读写 11.4.5 …...

dpdk/spdk/网络协议栈/存储/网关开发/网络安全/虚拟化/ 0vS/TRex/dpvs技术专家成长体系教程

课程围绕安全&#xff0c;网络&#xff0c;存储&#xff0c;云原生4个维度去讲解核心技术点。 6个专栏组成&#xff1a;dpdk网络专栏、存储技术专栏、安全与网关开发专栏、虚拟化与云原生专栏、测试工具专栏、性能测试专栏 一、dpdk网络 dpdk基础知识 多队列网卡&#xff0…...

树莓派玩转openwrt软路由:5.OpenWrt防火墙配置及SSH连接

1、SSH配置 打开System -> Administration&#xff0c;打开SSH Access将Interface配置成unspecified。 如果选中其他的接口表示仅在给定接口上侦听&#xff0c;如果未指定&#xff0c;则在所有接口上侦听。在未指定下&#xff0c;所有的接口均可通过SSH访问认证。 2、防火…...

Gin:获取本机IP,获取访问IP

获取本机IP func GetLocalIP() []string {var ipStr []stringnetInterfaces, err : net.Interfaces()if err ! nil {fmt.Println("net.Interfaces error:", err.Error())return ipStr}for i : 0; i < len(netInterfaces); i {if (netInterfaces[i].Flags & ne…...

缓存降级代码结构设计

缓存降级设计思想 接前文缺陷点 本地探针应该增加计数器&#xff0c;多次异常再设置&#xff0c;避免网络波动造成误判。耦合度过高&#xff0c;远端缓存和本地缓存应该平行关系被设计为上下游关系了。公用的远端缓存的操作方法应该私有化&#xff0c;避免集成方代码误操作&…...

一文深入理解高并发服务器性能优化

我们现在已经搞定了 C10K并发连接问题 &#xff0c;升级一下&#xff0c;如何支持千万级的并发连接&#xff1f;你可能说&#xff0c;这不可能。你说错了&#xff0c;现在的系统可以支持千万级的并发连接&#xff0c;只不过所使用的那些激进的技术&#xff0c;并不为人所熟悉。…...

pytorch中的归一化函数

在 PyTorch 的 nn 模块中&#xff0c;有一些常见的归一化函数&#xff0c;用于在深度学习模型中进行数据的标准化和归一化。以下是一些常见的归一化函数&#xff1a; nn.BatchNorm1d, nn.BatchNorm2d, nn.BatchNorm3d&#xff1a; 这些函数用于批量归一化 (Batch Normalization…...

【管理运筹学】第 10 章 | 排队论(1,排队论的基本概念)

文章目录 引言一、基本概念1.1 排队过程1.2 排队系统的组成和特征1.3 排队模型的分类1.4 系统指标1.5 系统状态 引言 开一点排队论的内容吧&#xff0c;方便做题。 排队论&#xff08;Queuing Theory&#xff09;也称随机服务系统理论&#xff0c;是为解决一系列排队问题&…...

【Express】服务端渲染(模板引擎 EJS)

EJS&#xff08;Embedded JavaScript&#xff09;是一款流行的模板引擎&#xff0c;可以用于在Express中创建动态的HTML页面。它允许在HTML模板中嵌入JavaScript代码&#xff0c;并且能够生成基于数据的动态内容。 下面是一个详细的讲解和示例&#xff0c;演示如何在Express中…...

Linux CentOS8安装gitlab_ce步骤

1 下载安装包 wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/8/gitlab-ce-15.0.2-ce.0.el8.x86_64.rpm/download.rpm2 安装gitlab yum install policycoreutils-python-utilsrpm -Uvh gitlab-ce-15.0.2-ce.0.el8.x86_64.rpm3 更新配…...

RabbitMq启用TLS

Windows环境 查看配置文件的位置 选择使用的节点 查看当前节点配置文件的配置 配置TLS 将证书放到同配置相同目录中 编辑配置文件添加TLS相关配置 [{ssl, [{versions, [tlsv1.2]}]},{rabbit, [{ssl_listeners, [5671]},{ssl_options, [{cacertfile,"C:/Users/17126…...

CakePHP 3.x/4.x反序列化RCE链

最近网上公开了cakephp一些反序列化链的细节&#xff0c;但是没有公开poc&#xff0c;并且网上关于cakephp的反序列化链比较少&#xff0c;于是自己跟一下 &#xff0c;构造pop链。 CakePHP简介 CakePHP是一个运用了诸如ActiveRecord、Association Data Mapping、Front Contr…...

练习之C++[3]

文章目录 1.模板类2.模板声明3.string类 1.模板类 模板可以具有非类型参数&#xff0c;用于指定大小&#xff0c;可以根据指定的大小创建动态结构所以可用来创建动态增长和减小的数据结构模板运行时不检查数据类型&#xff0c;也不保证类型安全&#xff0c;相当于类型的宏替换…...

[MT8766][Android12] 修改WIFI热点默认名称、密码、IP地址以及默认开启热点

文章目录 开发平台基本信息问题描述解决方法 开发平台基本信息 芯片: MTK8766 版本: Android 12 kernel: msm-4.19 问题描述 最近做了一款没有屏幕显示的智能盒子&#xff0c;要想操控这款设备就只能通过adb投屏&#xff0c;如果默认不允许有线连接&#xff0c;那么要怎么实…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...