【CF闯关练习】—— 900分段

🌏博客主页:PH_modest的博客主页
🚩当前专栏:cf闯关练习
💌其他专栏:
🔴每日一题
🟡 C++跬步积累
🟢 C语言跬步积累
🌈座右铭:广积粮,缓称王!

一.关卡1(00:11(+1))

👉传送门👈
在这里插入图片描述

题目大意:


给你一个大小为 n ∗ n n * n nn的棋盘( n n n 行, n n n 列)和两个大小为 n n n 的正整数数组 a a a b b b

你的任务是在棋盘上放置筹码,使每个单元格 ( i , j ) (i, j) (i,j) 都满足以下条件:

  • ( i , j ) (i, j) (i,j) 单元格在同一列或同一行中至少存在一个筹码。也就是说,存在这样一个单元格 ( x , y ) (x, y) (x,y) ,即该单元格中有一个筹码,并且 x = i x = i x=i y = j y = j y=j (或两者都有)。

( i , j ) (i, j) (i,j) 格中放入一个筹码的代价等于 a i + b j a_i + b _j ai+bj

例如, n = 3 n=3 n=3 a = [ 1 , 4 , 1 ] a=[1, 4, 1] a=[1,4,1] b = [ 3 , 2 , 2 ] b=[3, 2, 2] b=[3,2,2] 。其中一种可能的筹码放置方式如下:

白色方格是空的

该布局的总成本为 ( 1 + 3 ) + ( 1 + 2 ) + ( 1 + 2 ) = 10 (1+3) + (1+2) + (1+2) = 10 (1+3)+(1+2)+(1+2)=10

请根据上述规则计算可能的最小筹码放置总成本。


1.Tutorial

分两种情况,①从数组a中找一个最小的数,分别和b数组相加;②从数组b中找一个最小的数,分别和a数组相加。最后取较小者

2.Solution

//https://codeforces.com/problemset/problem/1879/B
//00:11(-1)
//分两种情况,①从数组a中找一个最小的数,分别和b数组相加;②从数组b中找一个最小的数,分别和a数组相加。最后取较小者
//注意数据范围
#include<iostream>
#include<algorithm>
#include<string>
#include<deque>
#include<map>
#include<set>
#include<queue>
#include<vector>
#include<cstring>
#define int long long
using namespace std;int a[300020];
int b[300020];void solve()
{int n;cin>>n;int mina=1e9;int minb=1e9;for(int i=0;i<n;i++){cin>>a[i];mina=min(mina,a[i]);}for(int i=0;i<n;i++){cin>>b[i];minb=min(minb,b[i]);}int ansa=0,ansb=0;for(int i=0;i<n;i++){ansa+=minb+a[i];ansb+=mina+b[i];}int ans=min(ansa,ansb);cout<<ans<<"\n";
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--){solve();}return 0;
}

3.Conclusion

注意数据范围,第一次写没注意范围以为是2e5结果TLE了,引以为戒


二.关卡2(00:09(+1))

👉传送门👈
在这里插入图片描述

题目大意:


Aca 和 Milovan 是两位同为竞技程序员的朋友,他们决定给 Vasilije 出一道难题来测试他的技能。

给 Vasilije 三个正整数: n n n k k k x x x ,他必须判断能否在 1 1 1 n n n 之间选择 k k k 个不同的整数,使它们的和等于 x x x

由于瓦西里耶现在在塞尔维亚最奇怪的城市卡察克,也就是阿卡和米洛万居住的地方,所以他觉得这个问题很奇怪。所以他需要你的帮助来解决这个问题。


1.Tutorial

求出k个数字相加的最小值和最大值,注意求取时不要循环,直接用公式

2.Solution

//https://codeforces.com/problemset/problem/1878/C
//00:09(-1)
//求出k个数字相加的最小值和最大值,注意求取时不要循环,直接用公式
#include<iostream>
#include<algorithm>
#include<string>
#include<deque>
#include<map>
#include<set>
#include<queue>
#include<vector>
#include<cstring>
#define int long long
using namespace std;void solve()
{int n,k,x;cin>>n>>k>>x;int minn=(1+k)*k/2;int maxx=(n+n-k+1)*k/2;if(x>=minn&&x<=maxx){cout<<"YES"<<"\n";}else{cout<<"NO"<<"\n";}
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--){solve();}return 0;
}

三.关卡3(00:20)

👉传送门👈
在这里插入图片描述

题目大意:


在中考期间,Reycloer 遇到了一个有趣的问题,但他无法立即想出解决办法。时间不多了!请帮助他。

最初,你得到一个由 n ≥ 2 n \ge 2 n2 个整数组成的数组 a a a ,你想将其中的所有元素都改为 0 0 0

在一次操作中,你选择两个索引 l l l r r r ( 1 ≤ l ≤ r ≤ n 1\le l\le r\le n 1lrn ),并执行以下操作:

  • KaTeX parse error: Expected 'EOF', got '&' at position 5: s=a &̲#95; l\oplus a … ,其中 ⊕ \oplus 表示 bitwise XOR 运算;
  • 然后,对于所有 l ≤ i ≤ r l\le i\le r lir ,用 s s s 替换 a i a _ i ai

上述操作以任何顺序进行,总共最多可以使用 8次。

找出一个运算序列,使得按顺序进行运算后,a中的所有元素都等于0。可以证明解总是存在的。


1.Tutorial

分两种情况:①n为偶数时,先将所有数从头到尾异或一遍,之后所有数都变成相同的数,再异或一遍所有数就变成0了,只需要2次;②n为奇数,方法和偶数一样,只不过多了几步,需要先将第一个数变为0,然后再将后面偶数个按照偶数的方法变为0,一共4次

2.Solution

//https://codeforces.com/problemset/problem/1869/A
//00:20
//分两种情况:①n为偶数时,先将所有数从头到尾异或一遍,之后所有数都变成相同的数,再异或一遍所有数就变成0了,只需要2次;②n为奇数,方法和偶数一样,只不过多了几步,需要先将第一个数变为0,然后再将后面偶数个按照偶数的方法变为0,一共4次
//
#include<iostream>
#include<algorithm>
#include<string>
#include<deque>
#include<map>
#include<set>
#include<queue>
#include<vector>
#include<cstring>
#define int long long
using namespace std;int s[200020];void solve()
{int n;cin>>n;for(int i=0;i<n;i++){cin>>s[i];}if(n%2==0){cout<<"2"<<"\n";cout<<"1 "<<n<<"\n";cout<<"1 "<<n<<"\n";}else{cout<<"4"<<"\n";cout<<"1 "<<n<<"\n";cout<<"1 2"<<"\n";cout<<"2 "<<n<<"\n";cout<<"2 "<<n<<"\n";}
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--){solve();}return 0;
}

四.关卡4(WA)

👉传送门👈

题目大意:


括号序列是由字符"(“和/或”)"组成的字符串。正则括号序列是指可以通过在括号序列的原始字符之间插入字符 "1 "和 "+"来转换成正确算术表达式的括号序列。例如

  • 括号序列"()() “和”(()) “是正则表达式(可分别转换为”(1)+(1) “和”((1+1)+1)");
  • 括号序列")(“、”(“和”) "则不规则。

给你一个括号序列 s s s ,我们把它的长度定义为 n n n 。你的任务是找出一个长度为 2 n 2n 2n 的正则括号序列 t t t ,使得 s s s 出现在括号序列 s s s 中。作为连续的子串出现在 t t t 中,或者报告没有这样的序列。


1.Tutorial

  • 如果有连续相同的就以()()的形式输出,如果没有就以(())的形式输出;
  • 字符串判断是否有字串:ans.find(s)==string::npos,如果为真说明s不是ans的字串

2.Solution

//https://codeforces.com/problemset/problem/1860/A
//WA
//如果有连续相同的就以()()的形式输出,如果没有就以(())的形式输出
//字符串判断是否有字串:ans.find(s)==string::npos,如果为真说明s不是ans的字串
#include<iostream>
#include<algorithm>
#include<string>
#include<deque>
#include<map>
#include<set>
#include<queue>
#include<vector>
#include<cstring>
#define int long long
using namespace std;void solve()
{string s;cin>>s;int flag=0;for(int i=0;i<s.size()-1;i++){if(s[i]==s[i+1]){flag=1;break;}}if(flag==1){string ans;for(int i=0;i<s.size();i++){ans+="()";}if(ans.find(s)==string::npos){cout<<"YES"<<"\n";cout<<ans<<"\n";}else{cout<<"NO"<<"\n";}}else{string ans;for(int i=0;i<s.size();i++){ans+="(";}for(int i=0;i<s.size();i++){ans+=")";}if(ans.find(s)==string::npos){cout<<"YES"<<"\n";cout<<ans<<"\n";}else{cout<<"NO"<<"\n";}}}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--){solve();}return 0;
}

3.Conclusion

多考虑考虑特殊情况


五.关卡5(00:39(+1))

👉传送门👈
在这里插入图片描述

题目大意:


鲍勃和卡罗尔和爱丽丝玩了一整天,现在该回家了。爱丽丝、鲍勃和卡罗尔分别住在一个无限大的二维网格中的 A A A B B B C C C 单元格里。现在,他们都在 A A A 单元格中。

如果鲍勃(或卡罗尔)在某个单元格中,他(她)可以移动到邻近的单元格中。如果两个单元格共用一条边,则称为相邻单元格。例如, ( 3 , 5 ) (3, 5) (3,5) 单元格有四个相邻单元格: ( 2 , 5 ) (2, 5) (2,5) ( 4 , 5 ) (4, 5) (4,5) ( 3 , 6 ) (3, 6) (3,6) ( 3 , 4 ) (3, 4) (3,4)

鲍勃想回到 B B B 单元格,卡罗尔想回到 C C C 单元格。他们都想沿着最短的路径走,也就是由尽可能少的单元格组成的路径。但是他们也想一起走。

如果鲍勃和卡罗尔各自走一条最短的路径回家,他们最多可以一起走多少个单元格?


1.Tutorial

主要思路就是判断B、C两个点关于A点的位置(A看成是原点,看B、C在第几象限),分情况讨论,讨论关于象限的位置,以及是否在同一坐标轴上

2.Solution

//https://codeforces.com/problemset/problem/1845/B
//00:39(+1)
//主要思路就是判断B、C两个点关于A点的位置(A看成是原点,看B、C在第几象限),分情况讨论,讨论关于象限的位置,以及是否在同一坐标轴上
#include<iostream>
#include<algorithm>
#include<string>
#include<deque>
#include<map>
#include<set>
#include<queue>
#include<vector>
#include<cstring>
#define int long long
using namespace std;void solve()
{int xa,ya,xb,yb,xc,yc;cin>>xa>>ya>>xb>>yb>>xc>>yc;int subb1=0,subb2=0,subc1=0,subc2=0;subb1=xb-xa;subb2=yb-ya;subc1=xc-xa;subc2=yc-ya;int ans=0;//同向无0if(subb1*subc1>0&&subb2*subc2>0){int minx=min(abs(subb1),abs(subc1));int miny=min(abs(subb2),abs(subc2));ans=minx+miny;cout<<ans+1<<"\n";}//有0else if(subb1*subc1>=0&&subb2*subc2>=0){if(subb1*subc1==0){ans=min(abs(subb2),abs(subc2));}else{ans=min(abs(subb1),abs(subc1));}cout<<ans+1<<"\n";}else if(subb1*subc1>0||subb2*subc2>0){if(subb1*subc1>0){ans=min(abs(subb1),abs(subc1));}else{ans=min(abs(subb2),abs(subc2));}cout<<ans+1<<"\n";}else{cout<<"1"<<"\n";}
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--){solve();}return 0;
}

最后:

每日一题系列旨在养成刷题的习惯,所以对代码的解释并不会特别详细,但足够引导大家写出来,选的题目都不会特别难,但也不是特别简单,比较考验大家的基础和应用能力,我希望能够将这个系列一直写下去,也希望大家能够和我一起坚持每天写代码。

之后每个星期都会不定期更新codeforces和atcoder上的题目,想要学习算法的友友们千万别错过了,有什么疑问欢迎大家在评论区留言或者私信博主!

在这里送大家一句话:广积粮,缓称王!

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

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

相关文章

java定义三套场景接口方案

一、背景 在前后端分离开发的背景下&#xff0c;后端java开发人员现在只需要编写接口接口。特别是使用微服务开发的接口。resful风格接口。那么一般后端接口被调用有下面三种场景。一、不需要用户登录的接口调用&#xff0c;第二、后端管理系统接口调用&#xff08;需要账号密…

loki-日志

一、loki Github ELK虽然功能丰富&#xff0c;但规模复杂&#xff0c;资源占用高&#xff0c;操作苦难&#xff0c;很多功能往往用不上&#xff0c;loki 受 prometheus 启发的水平可扩展、高可用、多租户日志聚合系统&#xff0c;它的设计非常经济高效且易于操作&#xff0c;…

使用【OpenI启智平台】进行模型训练

前言 启智平台OpenI是一个人工智能开源开放平台&#xff0c;提供免费GPU算力可以进行模型训练。模式是git进行项目管理&#xff0c;可以创建调试任务调试代码以及保存镜像&#xff0c;创建训练任务训练模型&#xff0c;也提供推理和评测&#xff0c;我没用过就不讲述了。后来我…

Sketch软件免费中文版在线使用教程及下载安装指南

什么是Sketch&#xff1f; Sketch是一款专为设计量身定制的矢量绘图软件&#xff0c;广泛应用于UI/UX设计和原型制作。 Sketch由荷兰Bohemiancoding公司开发&#xff0c;并于2010年首次发布。当时&#xff0c;AdobePhotoshop、AdobeIlustrator等主流设计工具虽然功能强大&…

MySQL-1

1 数据库基础概念 Data数据 对客观事物的符号表示&#xff0c;如图形符号、数字、字母等&#xff0c;数据是数据库中存储的基本对象。2. DB数据库数据库(Database,简称DB)的定义&#xff1a;“按照数据结构来组织、存储和管理数据的仓库” 3. DBMS数据库管理系统概念&#xff…

Qt WebAssembly开发环境配置

目录 前言1、下载Emscripten SDK2、 安装3、环境变量配置4、QtCreator配置5、运行示例程序总结 前言 本文主要介绍 Qt WebAssembly 开发环境的配置。Qt for Webassembly 可以使Qt应用程序在Web上运行。WebAssembly&#xff08;简称Wasm&#xff09;是一种能够在虚拟机中执行的…

FFmpeg 简单文档

一、播放器框架 常用音视频术语 容器&#xff0f;文件&#xff08;Conainer/File&#xff09;&#xff1a;即特定格式的多媒体文件&#xff0c;比如mp4、flv、mkv等。媒体流&#xff08;Stream&#xff09;&#xff1a;表示时间轴上的一段连续数据&#xff0c;如一段声音数据、…

【圣诞】极安云科赠书活动第①期:CTF实战:从入门到提升

【圣诞】极安云科赠书活动第①期&#xff1a;CTF实战:从入门到提升 9787111724834 9787121376955 9787302556275 ISBN编号&#xff1a;9787111724834 书名&#xff1a;CTF实战:从入门到提升 定&#xff1a;99.00元 开本&#xff1a;184&#xff4d;&#xff4d;260&#xff…

Stable-diffusion-webui本地部署和简要介绍

Stable Diffusion 是一款基于人工智能技术开发的绘画软件&#xff0c;它可以帮助艺术家和设计师快速创建高品质的数字艺术作品。是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像&#xff0c;同时也可以应用于其他任务&#xff0c;如内补绘制、…

提示“由于找不到mfc140u.dll,无法继续执行代码”如何解决?

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是找不到某个动态链接库文件&#xff0c;比如mfc140u.dll。这个问题可能会导致某些应用程序无法正常运行或打开。 一、关于找不到mfc140u.dll文件造成会的问题 mfc140u.dll是Visual C中的一个…

【Amazon 实验①】Amazon WAF功能增强之实验环境准备

文章目录 1. 实验介绍2. 实验环境准备 1. 实验介绍 在真实的网络空间中&#xff0c;攻击者会使用大量广泛分布的僵尸网络、肉机等发起对目标的攻击。 其来源分布一般比较分散&#xff0c;因此难以简单防范。 本实验联合使用有多种AWS服务&#xff1a;Cloudfront、 Lambdaedge…

VPN理论入门及GRE、L2TP、IPsec(HCIP)

一、VPN概述 IPsec-VPN&#xff1a; 1、应用范围&#xff1a;用于分公司和总部之间。 2、作用&#xff1a;机密性、证书&#xff08;身份认证&#xff09; VPN概述 VPN概述&#xff1a;VPN&#xff08;Virtual Private Network&#xff09;是指依靠Internet服务提供商ISP&a…

一文读懂Java中的设计模式——代理模式,以翻译场景举例,特别通俗易懂!

代理模式概念 在代理模式&#xff08;Proxy Pattern&#xff09;中&#xff0c;一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中&#xff0c;我们创建具有现有对象的对象&#xff0c;以便向外界提供功能接口。目的&#xff1a;为其他对象提供一种代…

01-基于粤嵌GEC6818实现屏幕的显示固定颜色进行自动切换

基于GEC6818实现屏幕颜色的切换 本文使用开发板GEC6818&#xff0c;实现屏幕显示特定颜色并且进行自动切换的功能。 文章目录 基于GEC6818实现屏幕颜色的切换一、 初始化开发板--&#xff08;开发板是新的则可以省略很多步骤&#xff09;1.1 **删除文件和文件夹**1.2 **查看磁盘…

【送书福利-第三十一期】《区块链安全理论与实践(安全技术经典译丛)》

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号&#xff1a;程序员洲洲。 &#x1f388; 本文专栏&#xff1a;本文…

手把手教你基于 FastGPT 搭建个人知识库

前言 大家好&#xff0c;我是潇潇雨声。我发现在使用 GPT 时&#xff0c;尽管它能够生成一些小红书文案和日志&#xff0c;但内容常常显得空洞缺乏深度。今天我想分享一个解决这个问题的方法&#xff0c;那就是基于开源项目 FastGPT[1]。 我们可以通过向 GPT 提供一些有针对性的…

Python---搭建Python自带静态Web服务器

1. 静态Web服务器是什么&#xff1f; 可以为发出请求的浏览器提供静态文档的程序。 平时我们浏览百度新闻数据的时候&#xff0c;每天的新闻数据都会发生变化&#xff0c;那访问的这个页面就是动态的&#xff0c;而我们开发的是静态的&#xff0c;页面的数据不会发生变化。 …

Floyd求最短路(Floyd算法)

参考&#xff1a;约会怎么走到目的地最近呢&#xff1f;一文讲清所有最短路算法问题-CSDN博客 有4个城市8条路&#xff0c;公路上的数字表示这条公路的长短&#xff0c;并且路是单向的&#xff0c;现在要求我们求出任意两个城市之间的最短路程&#xff0c;也就是求任意两个点之…

蓝桥杯2019年10月青少组Python程序设计省赛真题

1:有n个人围成一个圈,按顺序排好号然后从第一个人开始报数(从1到3报数),报到3的人退出圈子,然后继续从1到3报数,直到最后留下一个人游戏结束,问最后留下的是原来第几号输人描迹:输人一个正整数n 输出描迹:输出最后留下的是原来的第几号 [样例输人] [样例输出] 2: 3、 […

ACM32G1x3有那些优势?适用于那些产品上?

ACM32G1x3优势 • 320KB 程序Flash64KB SRAM&#xff0c;跑RTOS程序开发更加方便 • 从外挂Flash通过DMA搬运图片数据到PSRAM&#xff0c;无需打断程序运行 • 120MHz M33内核&#xff0c;处理性能佳 • 集成2路CAN接口&#xff0c;适合工控等需要CAN接口的场景 • QS…