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 是可用于从托管代码访问非托管库中的结构、回调和函数的一种技术。 托管代码与非托管的区别 托管代码和非托管代码的主要区别是内存管理方式和对计算机资源的访问方式。托管代码通常运行在托管环境中,如 mono 或 java 虚拟机等…...
新版Android Studio搜索不到Lombok以及无法安装Lombok插件的问题
前言 在最近新版本的Android Studio中,使用插件时,在插件市场无法找到Lombox Plugin,具体表现如下图所示: 1、操作步骤: (1)打开Android Studio->Settings->Plugins,搜索Lom…...
BST二叉搜索树
文章目录 概述实现创建节点查找节点增加节点查找后驱值根据关键词删除找到树中所有小于key的节点的value 概述 二叉搜索树,它具有以下的特性,树节点具有一个key属性,不同节点之间key是不能重复的,对于任意一个节点,它…...
【Leetcode】211. 添加与搜索单词 - 数据结构设计
一、题目 1、题目描述 请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。 实现词典类 WordDictionary : WordDictionary() 初始化词典对象void addWord(word) 将 word 添加到数据结构中,之后可以对它…...
Discuz户外旅游|旅行游记模板/Discuz!旅行社、旅游行业门户网站模板
价值328的discuz户外旅游|旅行游记模板,本模板需要配套【仁天际-PC模板管理】插件使用。 模板说明 1、模板页面宽度1200px,简洁大气,较适合户外旅行、骑行、游记、摩旅、旅游、活动等类型的论坛、频道网站; 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技术专家成长体系教程
课程围绕安全,网络,存储,云原生4个维度去讲解核心技术点。 6个专栏组成:dpdk网络专栏、存储技术专栏、安全与网关开发专栏、虚拟化与云原生专栏、测试工具专栏、性能测试专栏 一、dpdk网络 dpdk基础知识 多队列网卡࿰…...
树莓派玩转openwrt软路由:5.OpenWrt防火墙配置及SSH连接
1、SSH配置 打开System -> Administration,打开SSH Access将Interface配置成unspecified。 如果选中其他的接口表示仅在给定接口上侦听,如果未指定,则在所有接口上侦听。在未指定下,所有的接口均可通过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…...
缓存降级代码结构设计
缓存降级设计思想 接前文缺陷点 本地探针应该增加计数器,多次异常再设置,避免网络波动造成误判。耦合度过高,远端缓存和本地缓存应该平行关系被设计为上下游关系了。公用的远端缓存的操作方法应该私有化,避免集成方代码误操作&…...
一文深入理解高并发服务器性能优化
我们现在已经搞定了 C10K并发连接问题 ,升级一下,如何支持千万级的并发连接?你可能说,这不可能。你说错了,现在的系统可以支持千万级的并发连接,只不过所使用的那些激进的技术,并不为人所熟悉。…...
pytorch中的归一化函数
在 PyTorch 的 nn 模块中,有一些常见的归一化函数,用于在深度学习模型中进行数据的标准化和归一化。以下是一些常见的归一化函数: nn.BatchNorm1d, nn.BatchNorm2d, nn.BatchNorm3d: 这些函数用于批量归一化 (Batch Normalization…...
【管理运筹学】第 10 章 | 排队论(1,排队论的基本概念)
文章目录 引言一、基本概念1.1 排队过程1.2 排队系统的组成和特征1.3 排队模型的分类1.4 系统指标1.5 系统状态 引言 开一点排队论的内容吧,方便做题。 排队论(Queuing Theory)也称随机服务系统理论,是为解决一系列排队问题&…...
【Express】服务端渲染(模板引擎 EJS)
EJS(Embedded JavaScript)是一款流行的模板引擎,可以用于在Express中创建动态的HTML页面。它允许在HTML模板中嵌入JavaScript代码,并且能够生成基于数据的动态内容。 下面是一个详细的讲解和示例,演示如何在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一些反序列化链的细节,但是没有公开poc,并且网上关于cakephp的反序列化链比较少,于是自己跟一下 ,构造pop链。 CakePHP简介 CakePHP是一个运用了诸如ActiveRecord、Association Data Mapping、Front Contr…...
练习之C++[3]
文章目录 1.模板类2.模板声明3.string类 1.模板类 模板可以具有非类型参数,用于指定大小,可以根据指定的大小创建动态结构所以可用来创建动态增长和减小的数据结构模板运行时不检查数据类型,也不保证类型安全,相当于类型的宏替换…...
[MT8766][Android12] 修改WIFI热点默认名称、密码、IP地址以及默认开启热点
文章目录 开发平台基本信息问题描述解决方法 开发平台基本信息 芯片: MTK8766 版本: Android 12 kernel: msm-4.19 问题描述 最近做了一款没有屏幕显示的智能盒子,要想操控这款设备就只能通过adb投屏,如果默认不允许有线连接,那么要怎么实…...
DuClaw智能体:使用手册
学习并使用技能DuClaw 在创建时已为您预置部分常用技能,可根据任务需求自动匹配调用。查看已有技能1.进入对话界面,单击“技能平台”按钮,并在弹窗中单击“查看我的技能”。2.DuClaw会回复您当前已安装的技能以及相应的技能信息。安装并使用技…...
Contextcore:轻量高性能的框架无关状态管理核心
1. 项目概述:一个为现代前端应用量身定制的状态管理核心 如果你正在开发一个中大型的React、Vue或任何现代前端应用,并且对现有状态管理库的复杂性、样板代码量或者性能优化感到头疼,那么 lucifer-ux/Contextcore 这个项目很可能就是你一直…...
猫抓Cat-Catch:浏览器媒体资源捕获终极指南
猫抓Cat-Catch:浏览器媒体资源捕获终极指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾遇到过想下载网页视频却找不到下载…...
快速上手Highlighter:终极网页高亮工具完整指南
快速上手Highlighter:终极网页高亮工具完整指南 【免费下载链接】highlighter A Chrome extension to highlight text and keep it all saved 项目地址: https://gitcode.com/gh_mirrors/hig/highlighter 作为一名经常浏览网页的用户,你是否曾为无…...
云原生技能图谱:构建开发者能力模型与学习路径
1. 项目概述:一个面向云原生时代的技能图谱仓库最近在整理团队内部的技术分享材料时,我偶然发现了一个在开发者社区里讨论度颇高的开源项目:prevu-cloud/skills。乍一看这个名字,你可能会觉得它只是一个普通的“技能列表”或者“学…...
AI技能实战指南:从提示工程到RAG与LoRA微调全流程解析
1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的仓库,叫tqviet1978/ai-skills。光看名字,你可能会觉得这又是一个关于“AI技能”的泛泛而谈的教程合集。但点进去仔细研究后,我发现它的定位非常精准,更像是一个为开发者、技…...
后端架构师转型AI智能体落地:收藏这份3个月进阶指南,轻松玩转不确定性系统
本文为后端/全栈/架构师提供了一条从零到一掌握AI智能体落地的技术路径。文章首先分析了架构师在AI智能体落地中的核心优势,如分布式系统设计、数据库设计、API封装等;接着,提出了一个分四阶段的三个月进阶计划,包括掌握核心范式、…...
打破平台壁垒:Windows上安装APK文件的完整解决方案
打破平台壁垒:Windows上安装APK文件的完整解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾想过在Windows电脑上直接运行安卓应用ÿ…...
mnestra:基于ESBuild的极简前端构建工具,速度与体验的完美平衡
1. 项目概述:一个被低估的现代前端构建工具如果你在前端开发领域摸爬滚打超过五年,大概率经历过从 Grunt、Gulp 到 Webpack 的构建工具变迁史。每次工具的迭代,都伴随着配置文件的日益复杂和构建速度的微妙下降。当 Vite 携 ES Module 原生支…...
3个维度深度解析:UABEA如何重塑Unity资源处理生态
3个维度深度解析:UABEA如何重塑Unity资源处理生态 【免费下载链接】UABEA c# uabe for newer versions of unity 项目地址: https://gitcode.com/gh_mirrors/ua/UABEA 在Unity游戏开发和资源处理的复杂生态中,开发者常常面临一个核心挑战…...
