Codeforces Round 900 (Div. 3)

Problem - A - Codeforces

AC代码:

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
int n,k;
void solve(){cin>>n>>k;bool ok=false;for(int i=1;i<=n;i++){int x;cin>>x;if(x==k) ok=true;}if(ok) cout<<"Yes"<<endl;else cout<<"No"<<endl;
}
signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;cin>>t;while(t--) {solve();}return 0;
}

Problem - B - Codeforces

AC代码:

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std; 
const int N=2e5+10;
int a[N];
int n;
void solve(){cin>>n;a[1]=1;a[2]=3;for(int i=3;i<=n;i++){int cnt=a[i-1]+1;while((3*cnt)%(a[i-1]+a[i-2])==0) cnt++;a[i]=cnt;}for(int i=1;i<=n;i++) cout<<a[i]<<' ';cout<<endl;
}
signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;cin>>t;while(t--) {solve();}return 0;
}

Problem - C - Codeforces

首先我们能确定的是如果要Yes,一定得刚好取k个数,这是不变的,我们取最小的k个数和最大的k个数,如果x在这之间,那么一定能够取k个数和刚好为x

比如一共5个数,取3个,最小的1 2 3和为6,最大的3 4 5和为12,1 2 4和为7,1 3 4和为8,1 3 5和为9,2 3 5和为10,2 4 5和为11

每次取k个数都可以确保和多一个1,所以中间的数全部能取到,是连续的

AC代码:

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
int n,k,x;
void solve() {cin>>n>>k>>x;int minn=(1+k)*k/2;int maxn=(1+n)*n/2-(1+n-k)*(n-k)/2;if(x>=minn&&x<=maxn) cout<<"Yes"<<endl;else cout<<"No"<<endl;
}
signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;cin>>t;while(t--) {solve();}return 0;
}

Problem - D - Codeforces

参考Codeforces Round 900 (Div. 3) 题解 | JorbanS_JorbanS的博客-CSDN博客

任何一个区间[l[i],r[i]]都是独立的,互不重叠

如果暴力枚举每一个x所确定的区间[l[id],r[id]],一定会超时,那么我们就去寻求某种特殊的性质

对于一个x,它所确定的区间所在的区间[l[id],r[id]]是唯一的,且对称轴是所在区间[l[id],r[id]]的对称轴

通过二分来确定区间在哪个区间[l[id],r[id]],然后对于区间[l[id],r[id]]左半边的点,记录其翻转次数,通过差分数组来记录,再求前缀和得到,如果翻转次数为奇数,那么就换

每个区间都是独立操作,进行差分和前缀和

AC代码:

#include<bits/stdc++.h>
#define endl '\n'
//#define int long long
using namespace std;
const int N=2e5+10;
int l[N],r[N];
int a[N];
int sum[N];
int n,k;
string s;
void solve() {cin>>n>>k;vector<vector<int>>e(n+1);cin>>s;for(int i=1;i<=n;i++) a[i]=sum[i]=0;for(int i=1;i<=k;i++) cin>>l[i];for(int i=1;i<=k;i++) cin>>r[i];int q;cin>>q;while(q--){int x;cin>>x;int id=lower_bound(r+1,r+1+k,x)-r;//第id个区间push_back区间左端点if(x<=(l[id]+r[id])/2) e[id].push_back(x);else e[id].push_back(l[id]+r[id]-x);}for(int i=1;i<=k;i++){a[l[i]]=0;sum[l[i]-1]=0;for(auto v:e[i]){int p=v,q=l[i]+r[i]-p;a[p]++,a[q+1]--;}for(int j=l[i];j<=(l[i]+r[i])/2;j++) sum[j]=sum[j-1]+a[j];for(int j=l[i];j<=(l[i]+r[i])/2;j++){if(sum[j]%2==1) swap(s[j-1],s[l[i]+r[i]-j-1]);}}cout<<s<<endl;
}
int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;cin>>t;while(t--) {solve();}return 0;
}

Problem - E - Codeforces

ST表(RMQ)

以倍增的思想预处理以每个点为起点,2^0,2^1,...2^17为区间长度的区间相与

相与,不会变大,只会变小,具有单调性

然后对于起点l,进行贪心,从最大的区间开始枚举,如果相与大于等于k,则选用

AC代码:

#include<bits/stdc++.h>
#define endl '\n'
//#define int long long
using namespace std;
const int N=2e5+10,M=18;
int a[N];
int f[N][M];
int n;
void init(){for(int j=0;j<M;j++){for(int i=1;i+(1<<j)-1<=n;i++){if(!j) f[i][j]=a[i];else f[i][j]=f[i][j-1]&f[i+(1<<(j-1))][j-1];}}
}
int query(int l,int k){int r=l;int now=f[l][0];if(now<k) return -1;for(int i=17;i>=0;i--){if(r+(1<<i)<=n+1&&(now&f[r][i])>=k){now&=f[r][i];r+=(1<<i);}}return r-1;
}
void solve() {cin>>n;for(int i=1;i<=n;i++) cin>>a[i];init();int q;cin>>q;while(q--){int l,k;cin>>l>>k;cout<<query(l,k)<<' ';}cout<<endl;
}
int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;cin>>t;while(t--) {solve();}return 0;
}

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

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

相关文章

Apache Flume

Flume 1.9.0 Developer Guide【Flume 1.9.0开发人员指南】 Introduction【介绍】 摘自&#xff1a;Flume 1.9.0 Developer Guide — Apache Flume Overview【概述】 Apache Flume is a distributed, reliable, and available system for efficiently collecting, aggregati…

编程每日一练(多语言实现)基础篇:求总数问题

文章目录 一、实例描述二、技术要点三、代码实现3.1 C 语言实现3.2 Python 语言实现3.3 Java 语言实现3.4 JavaScript 语言实现 一、实例描述 集邮爱好者把所有的邮票存放在三个集邮册中&#xff0c;在A册内存放全部的十分之二&#xff0c;在B册内存放不知道是全部的七分之几&…

win11+wsl+git+cmake+x86gcc+armgcc+clangformat+vscode环境安装

一、安装wsl &#xff08;1&#xff09;打开power shell 并运行&#xff1a; Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform &#xff08;2&#xff0…

pytorch第一天(tensor数据和csv数据的预处理)lm老师版

tensor数据&#xff1a; import torch import numpyx torch.arange(12) print(x) print(x.shape) print(x.numel())X x.reshape(3, 4) print(X)zeros torch.zeros((2, 3, 4)) print(zeros)ones torch.ones((2,3,4)) print(ones)randon torch.randn(3,4) print(randon)a …

基于Java的汽车票网上预订系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

jenkins+newman+postman持续集成环境搭建

一、Newman简介 Newman是一款基于Node.js开发的&#xff0c;可以运用postman工具直接从命令运行和测试postman集合 二、Newman应用 环境准备&#xff1a;js/ cnpm或npm配置好环境&#xff0c;执行如下命令 三、安装newman 验证是否安装成功&#xff0c;命令&#xff1a;newm…

模块化CSS

1、什么是模块化CSS 模块化CSS是一种将CSS样式表的规则和样式定义封装到模块或组件级别的方法&#xff0c;以便于更好地管理、维护和组织样式代码。这种方法通过将样式与特定的HTML元素或组件相关联&#xff0c;提供了一种更具可维护性、可复用性和隔离性的方式来处理样式。简单…

上机实验一 顺序表的基本操作和简单程序 西安石油大学数据结构

上机一 实验名称&#xff1a;顺序表的基本操作和简单程序 题目&#xff1a;设计一个有序顺序表&#xff0c;实现以下操作&#xff1a; 1.将元素x插入表中并保持有序&#xff1b; 2.查找值为x的元素&#xff0c;若找到则将其删除&#xff1b; 3.输出表中所有元素。 要求&a…

腾讯云 Cloud Studio 实战训练营结营活动获奖公示

点击链接了解详情 “腾讯云 Cloud Studio 实战训练营” 是由腾讯云联合 CSDN 推出的系列开发者技术实践活动&#xff0c;通过技术分享直播、动手实验项目、优秀代码评选、有奖征文活动等&#xff0c;让广大开发者沉浸式体验腾讯云开发者工具 Cloud Studio 的同时&#xff0c;实…

云畅科技TMS解决方案助力华菱线缆实现智能货运管理

9月26日下午&#xff0c;湖南华菱线缆股份有限公司TMS物流系统上线启动会成功举办&#xff0c;由云畅科技倾力打造的华菱线缆TMS物流系统正式上线运行&#xff0c;标志着湖南华菱线缆股份有限公司在智能化物流货运管理领域的一次重大突破。 湖南华菱线缆股份有限公司董事兼总经…

【设计模式】六、建造者模式

文章目录 需求介绍角色应用实例建造者模式在 JDK 的应用和源码分析java.lang.StringBuilder 中的建造者模式 建造者模式的注意事项和细节 需求 需要建房子&#xff1a;这一过程为打桩、砌墙、封顶房子有各种各样的&#xff0c;比如普通房&#xff0c;高楼&#xff0c;别墅&…

【C语言次列车ing】No.1站---C语言入门

文章目录 前言一、什么是C语言二、第一个C语言程序三、数据类型四、变量、常量五、字符串转义字符注释 前言 &#x1f467;个人主页&#xff1a;小沈YO. &#x1f61a;小编介绍&#xff1a;欢迎来到我的乱七八糟小星球&#x1f31d; &#x1f4cb;专栏&#xff1a;C语言次列车i…

【笔试强训day02】倒置字符串 排序子序列

​&#x1f47b;内容专栏&#xff1a; 笔试强训集锦 &#x1f428;本文概括&#xff1a;C笔试强训day02。 &#x1f43c;本文作者&#xff1a; 阿四啊 &#x1f438;发布时间&#xff1a;2023.10.1 二、day02 1.倒置字符串 题目描述&#xff1a; 将一句话的单词进行倒置&…

手动实现BERT

本文重点介绍了如何从零训练一个BERT模型的过程&#xff0c;包括整体上BERT模型架构、数据集如何做预处理、MASK替换策略、训练模型和保存、加载模型和测试等。 一.BERT架构   BERT设计初衷是作为一个通用的backbone&#xff0c;然后在下游接入各种任务&#xff0c;包括翻译…

《MySQL高级篇》十六、主从复制

文章目录 1、主从复制概述1.1 如何提升数据库并发能力1.2 主从复制的作用 2、主从复制的原理2.1 原理剖析2.2 复制的基本原则 3、一主一从架构搭建3.1 准备工作3.2 主机配置文件3.3 从机配置文件3.4 主机&#xff1a;建立账户并授权3.5 从机&#xff1a;配置需要复制的主机3.6 …

面试记录_

1&#xff1a;面试杉岩数据&#xff08;python开发&#xff09; 1.1.1 选择题 for(int i0;i<n;i){for(int j0;j<n;jji) } }O(n) * (O(0) O(n/1) O(n/2) O(n/3) ... O(n/n)) 在最坏情况下&#xff0c;内部循环的迭代次数为 n/1 n/2 n/3 ... n/n&#xff0c;这是…

笔试强训Day8

链接&#xff1a;求最小公倍数__牛客网 T1:求最小公倍数 正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值&#xff0c;设计一个算法&#xff0c;求输入A和B的最小公倍数。 数据范围&#xff1a;1≤a,b≤100000 #include<iostream> using namespace…

【算法|贪心算法系列No.2】leetcode2208. 将数组和减半的最少操作次数

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

Unity把UGUI再World模式下显示到相机最前方

Unity把UGUI再World模式下显示到相机最前方 通过脚本修改Shader 再VR里有时候要把3D的UI显示到相机最前方&#xff0c;加个UI相机会坏事&#xff0c;可以通过修改unity_GUIZTestMode来解决。 测试用例 测试用例如下&#xff1a; 场景包含一个红色的盒子&#xff0c;一个UI…

MonkeyRunner自动化测试

一&#xff1a;简介 MonkeyRunner提供了一个API&#xff0c;使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。通过monkeyrunner&#xff0c;您可以写出一个Python程序去安装一个Android应用程序或测试包&#xff0c;运行它&#xff0c;向它发送模拟击键&…