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

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

一.关卡1(00:11)

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

题目大意:


单果有一个整数 n n n

他想把这个数表示为三个不同的正整数 x x x y y y z z z 的和。此外,Monocarp 希望 x x x y y y z z z 中没有一个能被 3 3 3 整除。

你的任务是帮助 Monocarp 找到由不同的正整数 x x x y y y z z z 组成的有效三元组,或者报告说这样的三元组不存在。


1.Tutorial

a固定是1,b从2开始递增,c从n-b开始递减,然后维护b和c,判断他们是否是3的倍数,如果不满足条件就b++,c–,直到b>=c就结束

2.Solution

//https://codeforces.com/problemset/problem/1886/A
//00:11
//a固定是1,b从2开始递增,c从n-b开始递减,然后维护b和c,判断他们是否是3的倍数,如果不满足条件就b++,c--,直到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 n;
	cin>>n;
	int a,b,c;
	a=1;
	n-=1;
	b=2;
	c=n-b;
	while(b<c)
	{
		if(b%3==0||c%3==0)
		{
			b+=1;
			c-=1;
			continue;
		}
		else
		{
			cout<<"Yes"<<"\n"<<a<<" "<<b<<" "<<c<<"\n";
			return;
		}
	}
	if(b>=c)
	{
		cout<<"NO"<<"\n";
	}
	else
	{
		cout<<"Yes"<<"\n"<<a<<" "<<b<<" "<<c<<"\n";
	}
}
signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int t;
	cin>>t;
	while(t--)
	{
		solve();
	}
	return 0;
}


二.关卡2(00:14(-1))

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

题目大意:


Monocarp 组织了一次举重比赛。有 n n n 个运动员参加比赛, i i i 个运动员有 s i s_i si 个力量和 e i e_i ei 个耐力。第 1 1 1 名运动员是莫诺卡普的朋友波利卡普,莫诺卡普非常希望波利卡普能够获胜。

比赛将按以下方式进行。评委将选择一个正**(大于零)整数 w w w ,表示比赛中使用的杠铃的重量。每位运动员的目标是尽可能多地举起杠铃。举起杠铃次数最多的运动员将被宣布为获胜者(如果有多个这样的运动员–则没有获胜者)**。

如果杠铃的重量 w w w 严格**大于 i i i (第3名)运动员的力量 s i s_i si ,那么 i i i (第3名)运动员将一次也举不起杠铃。否则, i i i th运动员就能举起杠铃,而且他举起杠铃的次数将等于他的耐力 e i e_i ei

例如,假设有 4 4 4 个运动员,参数分别为 s 1 = 7 , e 1 = 4 s_1 = 7, e_1 = 4 s1=7,e1=4 s 2 = 9 , e 2 = 3 s_2 = 9, e_2 = 3 s2=9,e2=3 s 3 = 4 , e 3 = 6 s_3 = 4, e_3 = 6 s3=4,e3=6 s 4 = 2 , e 4 = 2 s_4 = 2, e_4 = 2 s4=2,e4=2 。如果杠铃的重量是 5 5 5 ,那么:

  • 第一名运动员能够举起杠铃 4 4 4 次;
  • 第二名运动员能够举起杠铃 3 3 3 次;
  • 第三名运动员将无法举起杠铃;
  • 第四名运动员将无法举起杠铃。

莫诺卡普想选择 w w w ,让波利卡普( 1 1 1 (st)运动员)赢得比赛。请帮助他选择 w w w 的值,或者报告说这是不可能的。


1.Tutorial

从第二个人开始遍历,先看耐力值,如果大于等于第一个人再看力量,如果力量也大于等于那么就说明没有w满足条件

2.Solution

//https://codeforces.com/problemset/problem/1879/A
//00:14(-1)
//没输入完不能直接结束
//从第二个人开始遍历,先看耐力值,如果大于等于第一个人再看力量,如果力量也大于等于那么就说明没有w满足条件
#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;
	cin>>n;
	int s=0,e=0;
	cin>>s>>e;
	int ans=s;
	for(int i=0;i<n-1;i++)
	{
		int a,b;
		cin>>a>>b;
		if(b<e)
		{
			continue;
		}
		else
		{
			if(a>=s)
			{
				ans=-1;
			}
		}
	}
	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

写的时候WA了一发,检查的时候发现当程序中有数据不满足时我就直接结束程序了,导致后面还有数据没输入,这就是边输入边检查最容易犯的一个错误


三.关卡3(00:19(-3))

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

题目大意:


塞尔维亚信息学奥林匹克竞赛结束后,阿莱克萨非常伤心,因为他没有获得奖牌(他不知道奖牌的数量),所以瓦西里耶来给他出了一道简单的题,让他的心情好起来。

瓦西里耶给了阿列克萨一个正整数 n n n ( n ≥ 3 n \ge 3 n3 ),让他构造一个大小为 n n n 的正整数严格递增数组,使得

  • 3 ⋅ a i + 2 3\cdot a_{i+2} 3ai+2 不能被 a i + a i + 1 a_i+a_{i+1} ai+ai+1 整除。( 1 ≤ i ≤ n − 2 1\le i \le n-2 1in2 ).

请注意,大小为 n的严格递增数组 a是一个每 i( 1≤i≤n−1) 都有 a i a_i ai< a i + 1 a_{i+1} ai+1的数组。

由于 Aleksa 认为自己现在是个糟糕的程序员,所以他请你帮他找到这样一个数组。


1.Tutorial

通过选择第一个 n,奇正整数 1,3,5,…,2n-1,我们发现 3*ai+2也是奇数,而数字 ai+ai+1是偶数,奇数永远不能被偶数整除,所以构造是正确的。

2.Solution

//https://codeforces.com/problemset/problem/1878/B
//00:19,-3
//通过选择第一个 n,奇正整数 1,3,5,…,2n-1,我们发现 3*ai+2也是奇数,而数字 ai+ai+1是偶数,奇数永远不能被偶数整除,所以构造是正确的。
//
#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;
	s[0]=1,s[1]=3,s[2]=5;
	for(int i=3;i<n;i++)
	{
		s[i]=s[i-1]+2;
	}
	for(int i=0;i<n;i++)
	{
		cout<<s[i]<<" ";
	}
	cout<<"\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

这道题我写的稀烂,数字没构造好导致WA了三发(数字太大直接越界了),写这类题目应该优先考虑特殊情况


四.关卡4(00:06)

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

题目大意:

1.Tutorial

所有队伍的效率和为0

2.Solution

//https://codeforces.com/problemset/problem/1877/A
//00:06
//所有队伍的效率和为0
#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;
	cin>>n;
	int sum=0;
	for(int i=0;i<n-1;i++)
	{
		int a;
		cin>>a;
		sum+=a;
	}

	cout<<0-sum<<"\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:09)

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

题目大意:


给你一张长 s s s 格的纸条。每个单元格要么是黑色,要么是白色。在一次操作中,你可以取任意 k k k 个连续的单元格,并将它们全部变为白色。

请计算去除所有黑色单元格所需的最少操作次数。


1.Tutorial

直接找B,找到之后将指针往后移动k个单位

2.Solution

//https://codeforces.com/problemset/problem/1873/D
//00:09
//直接找B,找到之后将指针往后移动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;
    cin>>n>>k;
    string s;
    cin>>s;
    int ans=0;
    for(int i=0;i<n;i++)
    {
    	if(s[i]=='B')
    	{
			ans++;
			i+=k;
			i--;
		}
	}
	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;
}




最后:

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于西门子博途电机运行时间的先起先停控制

这是我同事在2019年做的一个功能&#xff0c;基于这个功能&#xff0c;可以形成类似的其他更多的功能&#xff0c;这些功能在一些项目上的实用性还是比较强&#xff01; 1&#xff0c;控制目标博途工控人平时在哪里技术交流博途工控人社群 根据需要启动电机的数量&#xff0c…

PhysX——源码编译

从git下载源码 git主页 https://github.com/NVIDIA-Omniverse/PhysXclone地址 https://github.com/NVIDIA-Omniverse/PhysX.git源码编译 运行PhysX需要两个编译器的支持&#xff0c;CMake 3.12 或以上版本以及Python 2.7.6 版本 进入工程的 physx 目录&#xff0c;运行generate…

案例109:基于微信小程序的高校寻物平台

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

KubePi JWT 默认密钥权限绕过漏洞复现(CVE-2023-22463)

0x01 产品简介 KubePi 是一款简单易用的开源 Kubernetes 可视化管理面板。 0x02 漏洞概述 KubePi 存在权限绕过漏洞,攻击者可通过默认 JWT 密钥获取管理员权限控制整个平台,使用管理员权限操作核心的功能。 0x03 影响范围 KubePi <= 1.6.2 0x04 复现环境 FOFA: ti…

CUMT--Java复习--泛型与集合

目录 一、泛型 1、概述 2、通配符 3、有界类型 二、集合 1、概述 2、迭代器接口 三、集合类 1、Collection接口 2、List接口 3、Set接口 4、Queue接口 5、Map接口 四、集合转换 五、集合工具类 一、泛型 1、概述 从JDK5.0开始&#xff0c;Java引入泛型类型&…

微服务之服务注册与发现

服务注册发现 服务注册就是维护一个登记簿&#xff0c;它管理系统内所有的服务地址。当新的服务启动后&#xff0c;它会向登记簿交待自己的地址信息。服务的依赖方直接向登记簿要 Service Provider 地址就行了。当下用于服务注册的工具非常多 ZooKeeper&#xff0c;Consul&…

谁能更好地检测深度伪造?人还是机器?

本文将和您讨论深度伪造对社会构成的重大威胁&#xff0c;AI检测工具以及人类专家在不同方面的技术优势与劣势。 不知您是否听说过深度伪造&#xff08;Deepfakes&#xff09;这种欺诈应用&#xff1f;由它产生的各种虚假信息已威胁到了人类社会的方方面面。随着人工智能技术的…

全新揭秘:Java WebSocket全双工通信的实践与运用

全新揭秘&#xff1a;Java WebSocket全双工通信的实践与运用 一、简介何为全双工通信全双工&#xff1f;WebSocket的使用场景 二、如何使用Java实现WebSocket1&#xff0c;引用websocket相关starter2&#xff0c;启用websocket3&#xff0c;服务端代码开发4&#xff0c;群发测试…

【数字图像处理】实验四 图像分割

一、实验内容&#xff1a; 1&#xff0e; 熟悉和掌握利用Matlab工具进行数字图像的读、写、显示等数字图像处理基本步骤。 2&#xff0e; 熟练掌握各种图像分割的基本原理及方法。 3&#xff0e; 能够从深刻理解图像分割&#xff0c;并能够思考拓展到一定的应用领域。 二、实验…

GraphPad Prism 10 for Mac v10.0.0.3 安装教程

GraphPad Prism GraphPad Prism是一款非常专业强大的科研医学生物数据处理绘图软件&#xff0c;它可以将科学图形、综合曲线拟合&#xff08;非线性回归&#xff09;、可理解的统计数据、数据组织结合在一起&#xff0c;除了最基本的数据统计分析外&#xff0c;还能自动生成统…

ARM GIC(四) gicv3架构基础

GICv3架构是GICv2架构的升级版&#xff0c;增加了很多东西。变化在于以下&#xff1a; 使用属性层次&#xff08;affinity hierarchies&#xff09;&#xff0c;来对core进行标识&#xff0c;使gic支持更多的core 将cpu interface独立出来&#xff0c;用户可以将其设计在core…

安卓好用的python编辑器,安卓平台python编辑器

本篇文章给大家谈谈安卓上好用的python编辑软件有哪些&#xff0c;以及安卓上好用的python编辑软件推荐&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 1. 简介 Thonny是基于python内置图形库tkinter开发出来的支持多平台(windows,Mac,Linux)的python IDE&am…

Windows10操作系统上安装VMware虚拟机和CentOS7

最初使用Windows与CentOS双系统&#xff0c;发现在系统之间切换非常不方便&#xff0c;于是决定改用windows系统加虚拟机的方式。 我百度搜索下载的VMware Workstation 12 pro&#xff0c;下载地址&#xff1a;https://www.zdfans.com/html/23471.html&#xff0c;网页提供了序…

【Hadoop】YARN简介(YARN产生的技术需求/YARN的基本架构)

YARN产生的技术需求YARN的基本架构ResourceManagerNodeManagerApplicationMasterContainer HDFS与YARN YARN产生的技术需求 YARN是Hadoop v2.0 引入的核心组件。YARN 从某种那个意义上来说应该算做是一个云操作系统&#xff0c;它负责集群的资源管理和任务调度&#xff0c;在 …

机器学习:手撕 AlphaGo(一)

图 1-1: AphaGo 结构概览 1. 前言 AlphaGo 是一个非常经典的模型&#xff0c;不论从影响力还是模型设计上。它的技术迭代演进路径&#xff1a;AlphaGo&#xff0c;AlphaGoZero&#xff0c;AlphaZero&#xff0c;MuZero 更是十分精彩。相信有很多同学因为听了 AlphaGo 的故事对…

伽马校正:FPGA

参考资料&#xff1a; Tone Mapping 与 Gamma Correction - 知乎 (zhihu.com) Book_VIP: 《基于MATLAB与FPGA的图像处理教程》此书是业内第一本基于MATLAB与FPGA的图像处理教程&#xff0c;第一本真正结合理论及算法加速方案&#xff0c;在Matlab验证&#xff0c;以及在FPGA上…

CSS(五) -- 动效实现(立体盒子旋转-四方体+正六边)

一. 四面立体旋转 正方形旋转 小程序中 wxss中 <!-- 背景 --><view class"dragon"><!--旋转物体位置--><view class"dragon-position"><!--旋转 加透视 有立体的感觉--><view class"d-parent"><view …

【JVM】一、认识JVM

文章目录 1、虚拟机2、Java虚拟机3、JVM的整体结构4、Java代码的执行流程5、JVM的分类6、JVM的生命周期 1、虚拟机 虚拟机&#xff0c;Virtual Machine&#xff0c;一台虚拟的计算机&#xff0c;用来执行虚拟计算机指令。分为&#xff1a; 系统虚拟机&#xff1a;如VMware&am…

Bash 脚本学习

文章目录 1、脚本编程基础2. 变量2.1 参数变量的引用2.2 环境变量 3 条件判断语句3.1 if 语句3.1.1 语法3.1.2 案例 3.2 case 语句3.2.1 语法3.2.2 案例 3.3 判断参数说明 4 循环语句4.1 for 循环4.1.1 语法4.1.2 案例 4.2 while循环4.2.1 语法4.2.2 案例4. 3 循环总结 5. 函数…

7.串口通信uart编写思路及自定义协议

前言&#xff1a; 串口是很重要的&#xff0c;有许多模块通信接口就是串口&#xff0c;例如gps模块&#xff0c;蓝牙模块&#xff0c;wifi模块还有一些精度比较高的陀螺仪模块等等&#xff0c;所以学会了串口之后&#xff0c;这些听起来很牛批的模块都能够用起来了。此外&#…