【CF比赛记录】—— Good Bye 2023(A、B、C)

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

A. 2023

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

题目大意:


在一个乘积等于 2023 2023 2023 的序列 a a a 中,去掉了 k k k 个数字,剩下一个长度为 n n n 的序列 b b b 。给定所得到的序列 b b b ,找出任何合适的序列 a a a 并输出从中删除了哪些 k k k 元素,或者指出这样的序列不可能存在。
请注意,我们并不保证存在这样的序列。


1.Tutorial

2023的因子只有1、7、17、119、289 、2023,先求出给出元素之积,然后判断这个数是不是2023的因子,如果是就直接输出2023除以这个数的值,剩下的数直接输出1.

2.Solution(赛时写的屎山代码,将就着看吧)

//https://codeforces.com/contest/1916/problem/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 s[200020];void solve()
{int n,k;cin>>n>>k;int cj=1;int ans=2023;for(int i=0;i<n;i++){cin>>s[i];cj*=s[i];}if(cj==1||cj==7||cj==17||cj==119||cj==289||cj==2023){cout<<"YES"<<"\n";if(cj==1){cout<<"2023 ";for(int i=0;i<k-1;i++){cout<<"1 ";}cout<<"\n";return;}if(cj==7){cout<<"289 ";for(int i=0;i<k-1;i++){cout<<"1 ";}cout<<"\n";return;}if(cj==17){cout<<"119 ";for(int i=0;i<k-1;i++){cout<<"1 ";}cout<<"\n";return;}if(cj==119){cout<<"17 ";for(int i=0;i<k-1;i++){cout<<"1 ";}cout<<"\n";return;}if(cj==289){cout<<"7 ";for(int i=0;i<k-1;i++){cout<<"1 ";}cout<<"\n";return;}if(cj==2023){for(int i=0;i<k;i++){cout<<"1 ";}cout<<"\n";return;}}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;
}

B. Two Divisors

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

题目大意:


选择某个数字 1 ≤ x ≤ 1 0 9 1 \le x \le 10^9 1x109 。给你两个整数 a a a b b b ,它们是数 x x x 的两个最大除数。同时满足条件1 ≤ a < b < x 。

对于给定的数 a a a , b b b , 你需要求出 x x x 的值。

† ^{\dagger} 如果有整数 k k k 使得 x = y ⋅ k x = y \cdot k x=yk 是整数 x x x 的整除,那么数 y y y 是整数 x x x 的整除。


1.Tutorial

求最小公倍数再考虑这个最小公倍数是否等于b,如果等于就用b/a*这个最小公倍数

  1. 首先看到题目肯定先想到求a,b的最小公倍数,这样求完的结果不是最终的答案,当b是a的倍数时,最小公倍数是b但是题目中表示b < x的,所以还需要考虑当b是a的倍数时该怎么办
    在这里插入图片描述
  2. 由图可知当所求的最小公倍数等于b的时候,就用最小公倍数*b/a

2.Solution

//https://codeforces.com/contest/1916/problem/B
//求最小公倍数再考虑这个最小公倍数是否等于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;void solve()
{int a,b;cin>>a>>b;int c=a/__gcd(a,b)*b;if(c==b){cout<<b/a*c<<"\n";}else{cout<<c<<"\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


C. Training Before the Olympiad

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

1.Tutorial

  • 考虑奇数的个数,假设个数为x,有一个x/3,结果就需要-1,在判断x%3是否等于1,如果等于就还需要再减一
  • 这里需要知道奇数和偶数进行那个操作时结果会 -1,题目的意思就是让这个操作尽可能的
    在这里插入图片描述

2.Solution

//https://codeforces.com/contest/1916/problem/C
//考虑奇数的个数,假设个数为x,有一个x/3,结果就需要-1,在判断x%3是否等于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];
int odd[200020];//奇数的个数void solve()
{int n;cin>>n;for(int i=0;i<n;i++){cin>>s[i];}if(s[0]%2==1){odd[0]=1;}else{odd[0]=0;}for(int i=1;i<n;i++)//求前i个数有多少个奇数{if(s[i]%2==1){odd[i]=odd[i-1]+1;}else{odd[i]=odd[i-1];}}int sum=0;for(int i=0;i<n;i++){sum+=s[i];if(i==0){cout<<sum<<" ";continue;}int x=odd[i]%3;int y=odd[i]/3;if(x==1){cout<<sum-y-1<<" ";}else{cout<<sum-y<<" ";}}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


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

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

相关文章

Big-endian与Little-endian详尽说明

大端与小端存储详尽说明 大端与小端存储详尽说明 大端与小端存储详尽说明一. 什么是字节序二. 什么是大端存储模式三. 什么是小端存储模式四. 大小端各自的特点五. 为什么会有大小端模式之分六. 为什么要注意大小端问题六. 大小端判定程序七. 大端小端的转换1&#xff09;16位大…

详解Vue3中的鼠标事件mousedown、mouseup和contextmenu

本文主要介绍Vue3中的常见鼠标事件mousedown、mouseup和contextmenu。 目录 一、mousedown——鼠标按下事件二、mouseup——鼠标弹起事件三、contextmenu——页面菜单 下面是Vue 3中常用的鼠标事件mousedown、mouseup和contextmenu的详解。 一、mousedown——鼠标按下事件 mo…

当你的电脑在安装Windows更新后出现问题时怎么办,这里提供办法

Windows更新通常会为你的电脑带来错误修复、安全补丁和新功能,但它们也可能会带来性能下降甚至引发恐慌的数据丢失等问题,从而适得其反。如果你在安装更新后发现了一些奇怪之处,你可以将其回滚,尝试重新启动。 Windows更新主要有两种:质量更新和功能更新。高质量的更新包…

vmware安装openEuler 22.03 LTS操作系统

vmware安装openEuler 22.03 LTS操作系统 1、下载openEuler操作系统镜像文件2、安装openEuler操作系统3、配置openEuler操作系统3.1、配置静态IP地址 和 dns3.2、查看磁盘分区3.3、查看系统版本 1、下载openEuler操作系统镜像文件 官网下载链接 链接: https://www.openeuler.or…

【2023年终总结:轻舟已过万重山】

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff09;&#xff0c;发送【资料】可领取 深入理解 Redis 系列文章结合电商场景讲解 Redis 使用场景、中间件系列…

数据结构期末复习(fengkao课堂)

学习数据结构时&#xff0c;以下建议可能对您有所帮助&#xff1a; 理解基本概念&#xff1a;首先&#xff0c;确保您理解数据结构的基本概念&#xff0c;例如数组、链表、栈、队列、树、图等。了解它们的定义、特点和基本操作。 学习时间复杂度和空间复杂度&#xff1a;了解如…

Docker support for NVIDIA GPU Accelerated Computing on WSL 2

Docker support for NVIDIA GPU Accelerated Computing on WSL 2 0. 背景1. 安装 Docker Desktop2. 配置 Docker Desktop3. WLS Ubuntu 配置4. 安装 Docker-ce5. 安装 NVIDIA Container Toolkit6. 配置 Docker7. 运行一个 Sample Workload 0. 背景 今天尝试一下 NVIDIA GPU 在…

IoT 物联网常用协议

物联网协议是指在物联网环境中用于设备间通信和数据传输的协议。根据不同的作用&#xff0c;物联网协议可分为传输协议、通信协议和行业协议。 传输协议&#xff1a;一般负责子网内设备间的组网及通信。例如 Wi-Fi、Ethernet、NFC、 Zigbee、Bluetooth、GPRS、3G/4G/5G等。这些…

公司电脑文件防泄密|防止内部终端核心文件数据 \ 资料外泄

PC端访问地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 为了防止公司电脑文件泄密&#xff0c;可以采取以下措施&#xff1a; 文件加密&#xff1a;对重要文件进行加密是一种有效的防泄密方法。通过使用加密算法&#xff0c;…

Linux学习之系统编程1(关于读写系统函数)

写在前面&#xff1a; 我的Linux的学习之路非常坎坷。第一次学习Linux是在大一下的开学没多久&#xff0c;结果因为不会安装VMware就无疾而终了&#xff0c;可以说是没开始就失败了。第二次学习Linux是在大一下快放暑假&#xff08;那个时候刚刚过完考试周&#xff09;&#xf…

Pandas教程(四)—— 分层索引及数据联合

1.分层索引 分层索引就是在一个轴上拥有多个&#xff08;两个及以上&#xff09;索引级别&#xff0c;能以低维度形式处理高维度数据。 行索引有两层 1.1 分层索引的创建 1.1.1 方式一&#xff1a;直接设置 1&#xff09;在创建series、dataframe或读取文件时时&#xff0c;行…

[蓝桥杯基础题型] 图论题目

遍历 添加路障 首先答案只能是0 1 2 &#xff0c;原因&#xff1a;把出发点堵住只需要两个路障 路障为0&#xff1a;不能找到一条从出发点到终点的路 路障为1&#xff1a;能找到一条从出发点到终点的路&#xff0c;但是只有一条 路障为2&#xff1a;能找到一条从出发点到终…

Linux搭建我的世界Mohist1.20.2版服务器教程,MOD和插件服开服教程,MC开服教程

雨云游戏云VPS服务器用Linux搭建MCSM面板和Minecraft Mohist 1.20.2服务器教程&#xff0c;我的世界MOD和插件服开服教程。 本教程演示安装的MC服是Mohist 1.20.2版&#xff0c;其他版本也可以参考本教程&#xff0c;差别不大。 本教程使用Docker来运行mc服&#xff0c;可以方…

【网络面试(5)】收发数据及断开服务器(四次挥手)

前面了解到服务器和客户端在创建套接字&#xff0c;建立连接后&#xff0c;就可以进入到下一步&#xff0c;双发可以互相发送和接收数据&#xff0c;本篇博客就来学习一下这个过程。  我们印象里&#xff0c;发送数据应该是我们在浏览器输入网址&#xff0c;敲击回车的一瞬间&…

NGUI基础-三大基础组件之Panel组件

目录 Panel组件 Panel的作用&#xff1a; 注意&#xff1a; 相关关键参数讲解&#xff1a; Alpha&#xff08;透明度值&#xff09;&#xff1a; Depth&#xff08;深度&#xff09;&#xff1a; Clippinng&#xff08;裁剪&#xff09;&#xff1a; ​编辑 None Tex…

Redis(Linux版本7.2.3)

1、停止Redis服务器 [roottssvr1-c1 sysconfig]# ps -ef | grep redis root 322 1 0 10月30 ? 02:58:53 ./bin/redis-server 0.0.0.0:6379 root 32664 12498 0 14:45 pts/0 00:00:00 grep --colorauto redis [roottssvr1-c1 sysconfig]# [roottssvr…

VMware虚拟机和Centos7镜像安装

文章目录 安装VMware虚拟机1、下载2、激活 安装Centos7镜像启动虚拟机 安装VMware虚拟机 1、下载 建议还是安装16版本 VMware16下载 https://www.123pan.com/s/HQeA-aX1Sh VMware15 链接&#xff1a;https://pan.baidu.com/s/11UD1hb6IydbxNNPxmh-MqA?pwd0630 提取码&am…

PiflowX组件-JDBCRead

JDBCRead组件 组件说明 使用JDBC驱动向任意类型的关系型数据库读取数据。 计算引擎 flink 有界性 Scan Source: Bounded Lookup Source: Sync Mode 组件分组 Jdbc 端口 Inport&#xff1a;默认端口 outport&#xff1a;默认端口 组件属性 名称展示名称默认值允许…

simulink代码生成(五)——SCI接受模块;如何将串口发送的数据显示在matlab中

首先&#xff0c;实现DSP28335的自收自发&#xff1b; 添加串口收发模块&#xff1b; 设置参数&#xff0c;根据硬件选择串口模块&#xff1a; 配置中断触发&#xff1b;SCIB的接收中断的CPU中断号为9&#xff0c;PIE级中断为3&#xff1b; 因此如下配置&#xff1b; 代码生成…

Hive06_基础查询

HIVE 查询语句 1 查询语句语法&#xff1a; SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE where_condition] [GROUP BY col_list] [ORDER BY col_list] [CLUSTER BY col_list | [DISTRIBUTE BY col_list] [SORT BY col_list] ] [LIMI…