Codeforces Round 951 (Div. 2)

在这里插入图片描述

A - Guess the Maximum

直接暴力枚举 a i , a i + 1 a_i,a_{i+1} ai,ai+1找最小的最大值
答案即为最小的最大值-1

code:


#include<bits/stdc++.h>
#define endl '\n'
#define fast() ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
#define F first
#define S second
#define lowbit(x) ((x) & (-x))
#define _ int _T; cin >> _T; while(_T --) 
#define int long long
#define no cout << "NO" << endl
#define yes cout << "YES" << endlusing namespace std;
typedef pair<int, int> PII;
typedef pair<char,int> PCI;
const int N = 3e5 + 7;
const int mod = 998244353;
int n,m,k;
int a[N],b[N];
//PII p[N];void solve(){cin >> n;for(int i = 0;i < n;i ++) cin >> a[i];int mx = 1e18;for(int i = 0;i < n - 1;i ++){mx = min(mx,max(a[i],a[i + 1]));}cout << mx - 1 << endl;
}signed main(){fast();_solve();return 0;
} 

B - XOR Sequences

序列长度无限 所以从最低位到最高位按位枚举 答案为小于最先不同的位数的所有值 即 ( 1 < < i ) (1<<i) (1<<i) 高位总会有 ⨁ \bigoplus 后使其相等的值

code:


#include<bits/stdc++.h>
#define endl '\n'
#define fast() ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
#define F first
#define S second
#define lowbit(x) ((x) & (-x))
#define _ int _T; cin >> _T; while(_T --) 
#define int long long
#define no cout << "NO" << endl
#define yes cout << "YES" << endlusing namespace std;
typedef pair<int, int> PII;
typedef pair<char,int> PCI;
const int N = 3e5 + 7;
const int mod = 998244353;
int n,m,k;
int a[N],b[N];
//PII p[N];void solve(){cin >> n >> m;for(int i = 0;i < 32;i ++){int cnt1 = (n >> i) & 1;int cnt2 = (m >> i) & 1;if(cnt1 != cnt2){cout << ((int)1 << i) << endl;return;}}  
}signed main(){fast();_solve();return 0;
} 

C - Earning on Bets

假设每一位放的硬币数为 a i a_i ai 那么总共就会放 s u m = ∑ i = 1 n a i sum = \sum\limits_{i = 1}^n{a_i} sum=i=1nai个硬币
然后我们我们知道获胜会得到 a i ∗ k i a_i*k_i aiki金币 并且 s u m < a i ∗ k i sum < a_i*k_i sum<aiki
s u m k i sum \over k_i kisum < a i a_i ai
并且有 ∑ i = 1 n s u m k i < ∑ i = 1 n a i \sum\limits_{i = 1}^n{sum \over k_i} < \sum\limits_{i = 1}^n{a_i} i=1nkisum<i=1nai
∑ i = 1 n s u m k i < s u m \sum\limits_{i = 1}^n{sum \over k_i} < sum i=1nkisum<sum
那么有 ∑ i = 1 n 1 k i < 1 \sum\limits_{i = 1}^n{1 \over k_i} < 1 i=1nki1<1
那么我们可以令 s u m = l c m ( k 1 , k 2 , k 3 , . . . , k n ) sum = lcm(k_1,k_2,k_3,...,k_n) sum=lcm(k1,k2,k3,...,kn)
这样 s u m ∗ k i sum * k_i sumki可以不剩余并且可以 s u m k i sum \over k_i kisum的分给每个位置的 a i a_i ai
即有 ∑ i = 1 n s u m k i < s u m \sum\limits_{i = 1}^n{sum \over k_i} < sum i=1nkisum<sum 满足此式子即说明有一个解
解为每个位置分 s u m k i sum \over k_i kisum

code:


#include<bits/stdc++.h>
#define endl '\n'
#define fast() ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
#define F first
#define S second
#define lowbit(x) ((x) & (-x))
#define _ int _T; cin >> _T; while(_T --) 
#define int long long
#define no cout << "NO" << endl
#define yes cout << "YES" << endlusing namespace std;
typedef pair<int, int> PII;
typedef pair<char,int> PCI;
const int N = 3e5 + 7;
const int mod = 998244353;
int n,m,k;
int a[N],b[N];
//PII p[N];void solve(){cin >> n;int lcm = 1;for(int i = 0;i < n;i ++){cin >> a[i];lcm = (a[i] * lcm) / __gcd(a[i],lcm);}  int sum = 0;for(int i = 0;i < n;i ++) sum += lcm / a[i];if(sum >= lcm){cout << -1 << endl;return;}for(int i = 0;i < n;i ++) cout << lcm / a[i] << " ";cout << endl;
}signed main(){fast();_solve();return 0;
} 

D - Fixing a Binary String

直接从头开始遍历并且记录连续的0或1的个数
如果遍历过程中个数大于k了 那么就有两种切割情况:

  • 直接从刚大于时的位置前切开
  • 看末尾的连续序列长度是否小于k 如果小于k并且 s i = = s n s_i == s_n si==sn那就说明此处可以拼接上去 就从此序列开始位置+ (k - 末尾的连续序列长度 - 1)处切割

然后看这两种切割方式是否可以达成连续k个0或1交替出现即可
如果遍历过程中个数小于k了 :

  • 那么就在此前切割

code:


#include<bits/stdc++.h>
#define endl '\n'
#define fast() ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
#define F first
#define S second
#define lowbit(x) ((x) & (-x))
#define _ int _T; cin >> _T; while(_T --) 
#define int long long
#define no cout << "NO" << endl
#define yes cout << "YES" << endlusing namespace std;
typedef pair<int, int> PII;
typedef pair<char,int> PCI;
const int N = 3e5 + 7;
const int mod = 998244353;
int n,m,k;
int a[N],b[N];
//PII p[N];
int flag;void check(string ans){int len = 1;for(int i = 1;i < n;i ++){if(ans[i] == ans[i - 1]){len ++;if(len > k){flag = 1;break;}} else{if(len != k){flag = 1;break;}len = 1;}}    
}void solve(){cin >> n >> k;string s; cin >> s;int pos = -1,cnt = 1;int pos2 = -1;int st = 0;int mx = 1;for(int i = n - 2;i >= 0;i --){if(s[i] != s[i + 1]){break;} else{mx ++;}}for(int i = 1;i < n;i ++){if(s[i] == s[i - 1]){cnt ++;if(cnt > k){pos = i - 1;if(s[i] == s[n - 1]){if(mx >= k) pos2 = -1;else if(i - st >= k - mx) pos2 = st + k - mx - 1;}break;}} else{if(cnt != k){pos = i - 1;break;}st = i;cnt = 1;}}if(pos == -1){cout << n << endl;return;}string s1 = s.substr(0,pos + 1);string s2 = s.substr(pos + 1);reverse(s1.begin(),s1.end());string ans = s2 + s1;flag = 0;check(ans);if(!flag){cout << pos + 1 << endl;return;}if(pos2 == -1){cout << -1 << endl;return;}s1 = s.substr(0,pos2 + 1);s2 = s.substr(pos2 + 1);reverse(s1.begin(),s1.end());ans = s2 + s1;flag = 0;check(ans);if(!flag){cout << pos2 + 1 << endl;return;}cout << -1 << endl;
}signed main(){fast();_solve();return 0;
} 

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

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

相关文章

1118 如需挪车请致电(测试点4)

solution 测试点4&#xff1a;直接给出数字&#xff0c;即零个运算符的情况 #include<iostream> #include<string> #include<map> #include<cmath> using namespace std; int main(){string s, ans "";map<string, int> mp {{&quo…

用HAL库改写江科大的stm32入门-输入捕获原理图示

原理与接线&#xff1a; &#xff08;输入捕获的结构&#xff09; cubeMx: PA11&#xff1a;

OpenCV学习(4.7) Canndy边缘检测

1.目标 在本章中&#xff0c;我们将了解 Canny 边缘检测的概念OpenCV 的功能&#xff1a; cv.Canny&#xff08;&#xff09; Canny边缘检测是一种经典的边缘检测算法&#xff0c;由John F. Canny在1986年提出。Canny算法的目标是找到图像中真正的边缘&#xff0c;同时尽可能…

【旅行】关于毕业旅行与长期旅行计划(城市、攻略、预算、交通、面基等)

【旅行】关于毕业旅行与长期旅行计划&#xff08;城市、攻略、预算、交通、面基等&#xff09; 文章目录 一、目的地与去哪儿玩1、可能2、人民币3、国家地理4、省份与城市5、环球旅行 二、攻略之怎么玩&#xff08;旅行预算、攻略&#xff09;1、旅行预算之交通、住宿、门票等2…

【Autopilot】没有自动添加本地管理员的问题处理

【问题】某公司选用了D记的笔记本电脑&#xff0c;约定出厂就预配置好Autopilot&#xff0c;当时向D记提供了三个信息&#xff1a; 1. M365的租户ID 2. 公司域名信息 3. Group Tag (某公司为跨国公司&#xff0c;通过Group Tag来区分国家&#xff0c;比如CHN-中国&#xff0c;L…

【python】OpenCV GUI——Mouse(14.1)

参考学习来自 文章目录 背景知识cv2.setMouseCallback 介绍小试牛刀 背景知识 GUI&#xff08;Graphical User Interface&#xff0c;图形用户界面&#xff09; 是一种允许用户通过图形元素&#xff08;如窗口、图标、菜单和按钮&#xff09;与电子设备进行交互的界面。与传统…

四种跨域解决方案

文章目录 1.引出跨域1.基本介绍2.具体演示1.启动之前学习过的springboot-furn项目2.浏览器直接访问 [localhost:8081/furns](http://localhost:8081/furns) 可以显示信息3.启动前端项目&#xff0c;取消请求拦截器&#xff0c;这样设置&#xff0c;就会出现跨域4.跨域原因 2.跨…

Intel VT-x怎么开启?如何解决VMware打开虚拟机报错问题?

许多小伙伴在安装完VMware不能打开虚拟机&#xff0c;每次打开都会出现一个“此主机支持 Intel VT-x&#xff0c;但 Intel VT-x 处于禁用状态”的报错&#xff0c;然后因此启动不了虚拟机。今天小编就带来如何解决这个报错的方法。 什么是Intel VT-x&#xff1f; 这是英特尔cp…

玩转ChatGPT:最全学术论文提示词分享【中】

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 本篇文章&#xff0c;我们继续为大家分享「最全学术论文提示词【中】」。上篇文章的内容请到文末链接处跳转&#x1f447;&#x1f3fb; 6.数据分析 prompt 1&#xff1a;分析[定量/定…

Dockerfille解析

用于构建Docker镜像的文本&#xff0c;由一条条指令构成 Docker执行Dockerfile的流程 1. Docker从基础镜像执行一个容器 2. 执行一条指令并对容器进行修改 3. 执行类型Docker commit的命令添加一个新的镜像层 4. Docker再基于新的镜像执行一个新的容器 5. 执行Dockerfile中…

[ssi-uploader插件]解决如何接收服务器返回数据+修改参数名称

前言 ssi-uploader是一款非常好用的多文件上传插件&#xff0c;源码是开源的&#xff0c;在github上面即可下载&#xff1a; https://github.com/ssbeefeater/ssi-uploader 但是源码有些微小的不足&#xff0c;今天我们解决两点问题&#xff1a; 上传文件完成后&#xff0c…

opera打不开网页最简单的解决办法

如果以上为解决问题&#xff0c;继续下面操作 检查网络连接&#xff1a; 确认您的电脑已连接到互联网。 检查网络连接是否稳定&#xff0c;网络速度慢或链路拥堵可能会导致网页加载失败。 修改Local State文件&#xff1a; 关闭Opera浏览器。 定位到Opera浏览器的配置…

植物大战僵尸杂交版2024潜艇伟伟迷

在广受欢迎的游戏《植物大战僵尸》的基础上&#xff0c;我最近设计了一款创新的杂交版游戏&#xff0c;简直是太赞了&#xff01;这款游戏结合了原有游戏的塔防机制&#xff0c;同时引入新的元素、角色和挑战&#xff0c;为玩家提供了全新的游戏体验。 植物大战僵尸杂交版最新绿…

使用cv2控制鼠标实现circle的拖拽

2.代码 import numpy as np import cv2x_center [100,200,300,400] y_center [200,200,200,200] radius 30def mouse_LButtonDown(event, x, y, flags, param):global tempif event cv2.EVENT_LBUTTONDOWN:print(f" Down Clicked at ({x}, {y})")for i in range…

SpringBoot图书管理系统【附:资料➕文档】

前言&#xff1a;我是源码分享交流Coding&#xff0c;专注JavaVue领域&#xff0c;专业提供程序设计开发、源码分享、 技术指导讲解、各类项目免费分享&#xff0c;定制和毕业设计服务&#xff01; 免费获取方式--->>文章末尾处&#xff01; 项目介绍048&#xff1a; 图…

【Linux】进程4——进程状态

1.进程状态 什么是状态&#xff1f; 每个人都有状态——颓废&#xff0c;阳光&#xff0c;积极向上。。。。 进程也有状态 在操作系统中&#xff0c;由于进程的数量是非常多的&#xff0c;而系统的资源又非常少&#xff0c;所以不可能每一个进程在每时每刻都会处于上处理机运…

【python报错】list indices must be integers or slices, not tuple

【Python报错】list indices must be integers or slices, not tuple 在Python中&#xff0c;列表&#xff08;list&#xff09;是一种常用的数据结构&#xff0c;用于存储一系列的元素。当你尝试使用不支持的索引类型访问列表元素时&#xff0c;会遇到list indices must be in…

OS复习笔记ch7-3

承接上文我们讲完了页式管理和段式管理&#xff0c;接下来让我们深入讲解一下快表和二级页表 快表 快表和计算机组成原理讲的Cache原理如出一辙。为了减少访存的次数&#xff0c;OS在访问页面的时候创建了快表&#xff08;Translation Lookaside Buffer &#xff0c;简称TLB&…

pikachu靶场全流程

目录​​​​​​​ 暴力破解&#xff1a; 1.基于表单的暴力破解&#xff1a; 2.验证码绕过(on server)&#xff1a; 3.验证码绕过(on client)&#xff1a; token防爆破&#xff1a; XSS&#xff1a; 1.反射型xss(get)&#xff1a; 2.反射性xss(post)&#xff1a; 3.存…

Elasticsearch之写入原理以及调优

1、ES 的写入过程 1.1 ES支持四种对文档的数据写操作 create&#xff1a;如果在PUT数据的时候当前数据已经存在&#xff0c;则数据会被覆盖&#xff0c;如果在PUT的时候加上操作类型create&#xff0c;此时如果数据已存在则会返回失败&#xff0c;因为已经强制指定了操作类型…