Codeforces Round 951 (Div. 2) A - C题解

news2024/11/23 9:14:22

这是一篇提前写的博客,因为时间不够,花了四十分钟做了A-C,因为题目A - C比较简单,所以简单说一说吧。

A. Guess the Maximum

题意:给你n个数字,选择i和j满足(1<= i < j <= n),如果其中的最大值大于k,那么Bob赢,其他情况Alice赢,问Alice全部获胜的最大k是多少。
题解:很明显可以想到,数字区间越大,那么最大值是不会变小的,一定会越来越大,所以想要找到最大的k,直接枚举相邻两个数字,求出所有数字的最大值的最小值即可,当然最后要减一。
代码:
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int maxn = 2e6 + 7 ;
const int mod = 998244353 ;
inline ll read() {
	ll x = 0, f = 1 ;
	char c = getchar() ;
	while (c > '9' || c < '0') {
		if (c == '-')
			f = -1 ;
		c = getchar() ;
	}
	while (c >= '0' && c <= '9') {
		x = x * 10 + c - '0' ;
		c = getchar() ;
	}
	return x * f ;
}

ll a[maxn] , b[maxn] , n , m , t ;
ll sum[maxn] , Sum[maxn] , ssum[maxn] , SSum[maxn] , A[maxn] , B[maxn] ;
char s[maxn] ;
void solve(){
	n = read() ;
	for(int i = 1 ; i <= n ; i ++){
		a[i] = read() ;
	}
	ll Min = LONG_LONG_MAX ;
	for(int i = 1 ; i <= n - 1 ; i ++){
		Min = min(Min , max(a[i] , a[i + 1])) ;
	}
	cout << Min - 1 << endl ;
}
int main(){
	t = read() ;
	while(t --){
		solve() ;
	}
	return 0 ;
}

B. XOR Sequences

题意:给你a和b的两个排列,给你n和m,让a序列所有数字异或n,让b序列所有数字异或m,问满足a_i == a_j的连续序列最长是多少。
题解:这道题很明显的结论,就是2的n异或m的最小一位数字1次方,简单来说,比如说第一组样例8异或4等于12,他的二进制是10100,所以答案就是4。得解。
代码:
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int maxn = 2e6 + 7 ;
const int mod = 998244353 ;
inline ll read() {
	ll x = 0, f = 1 ;
	char c = getchar() ;
	while (c > '9' || c < '0') {
		if (c == '-')
			f = -1 ;
		c = getchar() ;
	}
	while (c >= '0' && c <= '9') {
		x = x * 10 + c - '0' ;
		c = getchar() ;
	}
	return x * f ;
}

ll a[maxn] , b[maxn] , n , m , t ;
ll sum[maxn] , Sum[maxn] , ssum[maxn] , SSum[maxn] , A[maxn] , B[maxn] ;
char s[maxn] ;
void solve(){
	n = read() ;
	m = read() ;
	ll xx = n xor m ;
	ll rt = -1 ;	
	for(ll i = 0 ; i <= 32 ; i ++){
		ll len = (xx >> i) & 1 ;
		if(len == 1){
			rt = i ;
			break ;
		}
	}
	if(rt == -1){
		cout << 1 << endl ;
		return ;
	}
	cout << (ll)pow(2ll , rt) << endl ;
}
int main(){
	t = read() ;
	while(t --){
		solve() ;
	}
	return 0 ;
}

C. Earning on Bets

题意:给你n个数字,每个数字都有初始数字,每个数字对应一个k值,如果他每次获胜,那么会获得a[i] * k的收益,题目给你每个k的值,他想问,构造序列a,满足a的每个数字都能满足a[i] * k > \sum a
题解:求出所有数字的最小公倍数,然后算出是否满足条件即可,如果不满足,那必然永远不会满足,输出-1,如果满足输出答案即可。
代码:
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int maxn = 2e6 + 7 ;
const int mod = 998244353 ;
inline ll read() {
	ll x = 0, f = 1 ;
	char c = getchar() ;
	while (c > '9' || c < '0') {
		if (c == '-')
			f = -1 ;
		c = getchar() ;
	}
	while (c >= '0' && c <= '9') {
		x = x * 10 + c - '0' ;
		c = getchar() ;
	}
	return x * f ;
}

ll a[maxn] , b[maxn] , n , m , t ;
ll sum[maxn] , Sum[maxn] , ssum[maxn] , SSum[maxn] , A[maxn] , B[maxn] ;
char s[maxn] ;
void solve(){
	n = read() ;
	for(int i = 1 ; i <= n ; i ++){
		a[i] = read() ;
	}
	ll lcm = 1 ;
	for(int i = 1 ; i <= n ; i ++){
		lcm = (lcm * a[i]) / __gcd(lcm , a[i]) ;
	}
	for(int i = 1 ; i <= n ; i ++){
		b[i] = lcm / a[i] ;
	}
	ll ans = 0 ;
	for(int i = 1 ; i <= n ; i ++){
		ans += b[i] ;
	}
	if(ans >= lcm){
		cout << -1 << endl ;
		return ;
	}
	else{
		for(int i = 1 ; i <= n ; i ++){
			cout << b[i] << " " ; 
		}
		cout << endl ;
	}
}
int main(){
	t = read() ;
	while(t --){
		solve() ;
	}
	return 0 ;
}

喜欢作者的记得点赞收藏加关注哦~

作者会持续更新算法和技巧!

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

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

相关文章

Mixly 开启WIFI AP UDP收发数据

一、开发环境 软件&#xff1a;Mixly 2.0在线版 硬件&#xff1a;ESP32-C3&#xff08;立创实战派&#xff09; 固件&#xff1a;ESP32C3 Generic(UART) 测试工工具&#xff1a;NetAssist V5.0.1 二、实现功能 ESP32开启WIFI AP&#xff0c;打印接入点IP地址&#xff0c;允许…

读AI未来进行式笔记05元宇宙与XR

1. 元宇宙 1.1. 元宇宙&#xff08;Metaverse&#xff09;的概念起源于美国作家尼尔斯蒂芬森于1992年出版的科幻小说《雪崩》 1.1.1. 书中描述的是一个和现实世界平行但又紧密联系的超现实主义的三维数字虚拟空间&#xff0c;在现实世界中地理位置彼…

每日两题 / 198. 打家劫舍 74. 搜索二维矩阵(LeetCode热题100)

198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; dp[i]表示考虑前i 1号房屋&#xff0c;能获取的最大金额。对于没一间房屋都有偷与不偷两种选择 如果偷&#xff0c;需要从dp[i - 2]转移&#xff0c;因为不能偷窃相邻房屋&#xff0c;dp[i] dp[i - 2] nums[i] 如果…

封装了一个简单理解的iOS竖直文字轮播

效果图 原理 就是持有两个视图&#xff0c;并且两个视图同时改变origin.y 动画结束之后&#xff0c;判断哪个视图是在上面并且看不到的&#xff0c; 则将该视图移动到底部&#xff0c;并且该视图展示下一跳内容 在开始下一轮动画 代码 - (void)startAnimationWithDuration:(…

一文了解如何安全有效的进行PB级别的大数据迁移

在这个信息量爆炸的时代&#xff0c;处理PB级别的数据转移已成为常态&#xff0c;但对企业而言&#xff0c;这仍然是一个充满挑战的任务。今天&#xff0c;我们来探讨一下这个话题&#xff0c;看看在进行PB级数据转移时&#xff0c;需要留意哪些事项&#xff0c;可能会遇到哪些…

STM32远程更新

1 IAP 概述 1.1 工作原理 在应用中编程&#xff08; IAP &#xff09;是一种在现场通过 MCU 的通信接口&#xff08;例如 UART,USB,CAN 和以太网 等&#xff09;进行固件升级的方式。 当启动微控制器时&#xff0c;您可以选择让它进入 IAP 模式以执行 IAP 代码&am…

两个双指针 的 “他“和“ 她“会相遇么? —— “双指针“算法 (Java版)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人能接…

如何掌握 Java 正则表达式 的基本语法及在 Java 中的应用

正则表达式是一种用于匹配字符串的模式&#xff0c;在许多编程语言中广泛使用。Java 正则表达式提供了强大的文本处理能力&#xff0c;能够对字符串进行查找、替换、分割等操作。 一、正则表达式的基本语法 正则表达式由普通字符和特殊字符组成。普通字符包括字母、数字和标点…

第二十七章HTML.CSS综合案例(二)

3.菜单栏 效果图如下&#xff1a; 代码图如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…

cnPuTTY 0.81.0.1-JK—PuTTY 0.81中文JK补丁版的简单说明~~

原始补丁网站的链接&#xff1a;PuTTY for win32 storing configuration into file2. 6. 2024 - Update: this modified PuTTY is now based on PuTTY 0.81 (version 0.23.0) 本次官方正式发布的补丁与上一版本的补丁相同&#xff0c;无明显变化。关于JK补丁的信息也可以参考&…

[洛谷] 刷题栈 队列

目录 1.后缀表达式 2.表达式括号匹配 3.表达式求值 4.表达式的转换 5.机器翻译 1.后缀表达式 后缀表达式 - 洛谷 #include<iostream> #include<cstdio> using namespace std;int stk[100]; // 用于存储操作数的栈 int index 0; // 栈顶索引int main() {c…

docker构建java项目镜像

资料参考 参考自黑马教程&#xff1a;10.Docker基础-自定义镜像_哔哩哔哩_bilibili 初步准备 打包好java项目jar包&#xff0c;和Dockerfile文件一起放到指定目录下&#xff0c;后续操作都是在该目录下操作&#xff0c; 我这边是&#xff1a;/usr/local/src/train-ticket/ …

IDEA破解后的配置

以下所有操作都要求进入全局setting而不是某一个项目的setting 进入全局Setting File→close project 进入欢迎页面 低版本 然后点击Setting 关闭自动更新 不关闭有可能会破解失败 Appearance & Behavior->System Settings->Updates下取消Automatically chec…

【网络编程开发】6.UDP通信

6.UDP通信 UDP实现框架 send 函数 原型&#xff1a; #include <sys/socket.h> ssize_t send(int sockfd, const void *buf, size_t len, int flags);功能&#xff1a; send 函数的主要功能是向指定的套接字发送数据。 参数&#xff1a; sockfd&#xff1a;一个有效的套…

【Linux】进程(7):地址空间

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解Linux进程&#xff08;7&#xff09;&#xff1a;地址空间&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 &#xff08;A&#xff09; 直接看代码&…

Leetcode3169. 无需开会的工作日

Every day a Leetcode 题目来源&#xff1a;3169. 无需开会的工作日 解法1&#xff1a;排序 遍历 按 LeetCode56.合并区间 的做法&#xff0c;把 meetings 数组中所有重叠的区间合并起来&#xff0c;再统计其中无需开会的工作日个数。 代码&#xff1a; /** lc appleetco…

学习笔记——路由网络基础——缺省(默认)路由

3、缺省(默认)路由 1、定义 缺省路由(默认路由)&#xff1a;是目的地址和掩码都为全0的特殊路由。全0代表任意网络。缺省路由在路由表中的形式为&#xff1a;0.0.0.0/0缺省路由也被叫默认路由。缺省路由优先级比直连路由低 缺省路由是一种特殊的路由&#xff0c;当报文没有在…

cv2.imwrite路径中存在中文时出现乱码问题

cv2.imwrite(path, img) 在写入包含中文的路径的时候&#xff0c;保存的文件名称为乱码。 解决办法&#xff1a; cv2.imwrite(path,image)将上面的代码修改为以下代码&#xff0c;可以避免出现中文乱码。 cv2.imencode(.jpg, image)[1].tofile(path)

嵌入式Linux系统编程 — 2.2 标准I/O库:检查或复位状态

目录 1 检查或复位状态简介 2 feof()函数 2.1 feof()函数简介 2.2 示例程序 3 ferror()函数 4 clearerr()函数 4.1 clearerr()函数简介 4.2 示例程序 1 检查或复位状态简介 调用 fread() 函数读取数据时&#xff0c;如果返回值小于参数 nmemb 所指定的值&#xff0c;这…

python常见数据分析函数

apply DataFrame.apply(func, axis0, broadcastFalse, rawFalse, reduceNone, args(), **kwds) 第一个参数是函数 可以在Series或DataFrame上执行一个函数 支持对行、列或单个值进行处理 import numpy as np import pandas as pdf lambda x: x.max()-x.min()df pd.DataFrame(…