Codeforces Round 944 (Div. 4) A - G

div.4只写部分题解了,都比较基础,数学偏多一点,几乎没有算法,有不懂的欢迎评论区提问!

A. My First Sorting Problem

#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] , n , m , t ;void solve(){n = read() ;m = read() ;cout << min(n , m) << " " << max(n , m) << endl ;
}
int main(){t = read() ;while(t --){solve() ;}return 0 ;
}

B. Different String

#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] , n , m , t ;
char s[maxn] ;
void solve(){scanf("%s" , s + 1) ;ll len = strlen(s + 1) ;map < int , int > mp ;for(int i = 1 ; i <= len ; i ++){mp[s[i] - 'a' + 1] ++ ;}for(auto it : mp){if(it.second == len){cout << "NO\n" ;return ;}}cout << "YES\n" ;for(int i = 2 ; i <= len ; i ++){cout << s[i] ;}cout << s[1] << endl ;
}
int main(){t = read() ;while(t --){solve() ;}return 0 ;
}

C. Clock and Strings

#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] , n , m , t ;
char s[maxn] ;
ll A , B , C , D ;
void solve(){A = read() ;B = read() ;C = read() ;D = read() ;if(A > B){swap(A , B) ;}if(((C < A || C > B) && (D < A || D > B)) || (C <= B && C >= A && D <= B && D >= A) ){cout << "NO\n" ;}else{cout << "YES\n" ;}
}
int main(){t = read() ;while(t --){solve() ;}return 0 ;
}

D. Binary Cut

可以发现,能优化的只有0011这种情况,可以将两块合成一块。

#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] , n , m , t ;
char s[maxn] ;
void solve(){scanf("%s" , s + 1) ;int len = strlen(s + 1) ;bool f = 0 ;ll sum = 0 ;for(int i = 1 ; i <= len ;){if(s[i] == '0'){sum ++ ;ll rt = i ;for(int j = i ; j <= len ; j ++){if(j == len && s[j] == '0'){rt = len + 1 ;break ;}if(s[j] == '0')continue ;else{rt = j ;break ;}}i = rt ;if(f == 0){f = 1 ;ll Rt = rt ;for(int j = rt ; j <= len ; j ++){if(j == len && s[j] == '1'){Rt = len + 1 ;break ;}if(s[j] == '1')continue ;else{Rt = j ;break ;}}i = Rt ;}continue ;}if(s[i] == '1'){ll rt = i ;for(int j = i ; j <= len ; j ++){if(j == len && s[j] == '1'){rt = len + 1 ;break ;}if(s[j] == '1')continue ;else{rt = j ;break ;}}i = rt ;sum ++ ;}}cout << sum << endl ;
}
int main(){t = read() ;while(t --){solve() ;}return 0 ;
}

E. Find the Car

#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 t , n , k , q ;
double a[maxn] , b[maxn] ;
double c[maxn] ;
char s[maxn] ;
void solve(){n = read() ;k = read() ;q = read() ;for(int i = 1 ; i <= k ; i ++){cin >> a[i] ;}for(int i = 1 ; i <= k ; i ++){cin >> b[i] ;}for(int i = 1 ; i <= k ; i ++){c[i] = (double)(a[i] - a[i - 1]) / (double)(b[i] - b[i - 1]) * 1.0 ;}for(int i = 1 ; i <= q ; i ++){double u ;cin >> u ;ll l = 1 , r = k , ans = -1 ;while(l <= r){ll mid = (l + r) / 2 ;if(a[mid] <= u){ans = mid ;l = mid + 1 ;}else{r = mid - 1 ;}}if(ans == -1){ll dd = (ll)(u / c[1]) ;cout << dd << endl ;}else{ll rt = ans + 1 ;if(u == a[ans]){ cout << b[ans] << endl ;continue ;}ll dd = (ll)floor((u - a[ans]) / c[rt]) ;cout << (ll)dd + (ll)(b[ans]) << endl ;}}
}
int main(){t = read() ;while(t --){solve() ;}return 0 ;
}

F. Circle Perimeter

看数据范围O(n^2)过不了,所以就想用复杂度更低的方法,可以发现可以枚举一层,然后找到数据范围,用二分求出中间有多少数字,然后统计答案即可。复杂度O(n)

#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] , n , m , t ;
char s[maxn] ;
void solve(){n = read() ;ll l = n * n ;ll r = (n + 1) * (n + 1) ;ll anss = 0 ;for(ll i = 1 ; i <= n ; i ++){ll L = l - i * i ;ll R = (r - 1) - i * i ;ll l = 0 , r = n , ans = -1 ;while(l <= r){ll mid = (l + r) / 2 ;if(mid * mid > L){r = mid - 1 ;}else{ans = mid ;l = mid + 1 ;}}if(ans * ans != L){ans ++ ;}l = 0 , r = n ;ll Ans = -1 ;while(l <= r){ll mid = (l + r) / 2 ;if(mid * mid <= R){l = mid + 1 ;Ans = mid ;}else{r = mid - 1 ;}}anss += (Ans - ans + 1) * 4 ;}cout << anss << endl ;
}
int main(){t = read() ;while(t --){solve() ;}return 0 ;
}

G. XOUR

因为a_i xora_j < 4,所以只会和最后两位有关系,如果说其他位有不同,那必然会大于4,所以用map存一下,映射顺序输出即可。

#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] , n , m , t ;
char s[maxn] ;
void solve(){n = read() ;for(int i = 1 ; i <= n ; i ++){a[i] = read() ;}map < ll , priority_queue < ll > > mp ;for(int i = 1 ; i <= n ; i ++){mp[a[i] >> 2].push(-a[i]) ;}for(int i = 1 ; i <= n ; i ++){cout << -mp[a[i] >> 2].top() << " " ;mp[a[i] >> 2].pop() ;}cout << endl ;
}
int main(){t = read() ;while(t --){solve() ;}return 0 ;
}

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

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

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

相关文章

org.hsqldb.jdbcDriver 类,导致 ClassNotFoundException 异常如何解决?

确保JDBC驱动包存在&#xff1a;检查系统是否已经安装了HSQLDB JDBC驱动。如果没有安装或驱动没有正确放置在类路径中&#xff0c;需要下载并添加它。你可以从 HSQLDB官网 下载JDBC驱动包。 添加JDBC驱动到类路径&#xff1a;将下载的HSQLDB JDBC驱动&#xff08;通常是一个JA…

2024年,Web开发新趋势!

随着我们迈入新的一年&#xff0c;现在正是审视2024年网页开发领域开始流行哪些趋势的绝佳时机。回顾2023年的一系列更新&#xff0c;以下是来年一些热门话题的概览。 自主托管有回归的趋势 近些年&#xff0c;自主托管一直是网页开发者和公司托管其应用程序的默认方式。开发…

【Linux系统编程】第十六弹---冯诺依曼体系结构与操作系统

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、冯诺依曼体系结构 2、操作系统原理 2.1、什么是操作系统&#xff1f; 2.2、用图解释操作系统 2.3、理解操作系统 总结 …

centos7.9系统rabbitmq3.8.5升级为3.8.35版本

说明 本文仅适用rabbitmq为RPM安装方式。 升级准备 查看环境当前版本&#xff1a; # cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) # rabbitmqctl status Status of node rabbitmq01 ... RuntimeOS PID: 19333 OS: Linux Uptime (seconds): 58 Is under …

在Tiled中制作动画瓦片图

什么是瓦片图&#xff1f;瓦片图是指用图块把游戏场景评出来 工具安装链接&#xff1a;Tiled | Flexible level editor 资源下载教程 资源下载&#xff1a;Mystic Woods - 16x16 Pixel Art Asset Pack by Game Endeavor 解压后得到一些资源 新建图块集合 Tiled的安装就不介绍…

【MySQL】——课程平台的创建设计

&#x1f4bb;博主现有专栏&#xff1a; C51单片机&#xff08;STC89C516&#xff09;&#xff0c;c语言&#xff0c;c&#xff0c;离散数学&#xff0c;算法设计与分析&#xff0c;数据结构&#xff0c;Python&#xff0c;Java基础&#xff0c;MySQL&#xff0c;linux&#xf…

element-plus表单上传,唯一替换文件校验,封装方法统一管理

<el-formref"ruleFormRef":model"ruleForm":rules"rules"label-width"110px" ><el-form-item label"语言成绩材料" prop"languageList"><div class"dis-flex w100"><el-uploadref…

什么是Meme币?——区块链技术的加密货币

Meme代币是一种基于区块链技术的加密货币&#xff0c;旨在为用户提供一种简单、有趣且易于传播的方式来进行数字资产交易和投资。Meme代币通常与特定的主题或故事相关联&#xff0c;通过社交媒体等渠道进行传播和推广&#xff0c;吸引更多的用户参与并增加其价值。 Meme代币的…

英语学习笔记4——Is this your ...?

Is this your …? 词汇 Vocabulary suit /sut/ n. 西装&#xff0c;正装 suit 的配套&#xff1a; shirt n. 衬衫tie n. 领带&#xff0c;领结belt n. 腰带trousers n. 裤子shoes n. 鞋子 school /skuːl/ n. 学校 所有学校 搭配&#xff1a;middle school 初中    hig…

浅谈现代消息队列与云存储

一、前言 1970 年代末&#xff0c;消息系统用于管理多主机的打印作业&#xff0c;这种削峰解耦的能力逐渐被标准化为“点对点模型”和稍复杂的“发布订阅模型”&#xff0c;实现了数据处理的分布式协同。随着时代的发展&#xff0c;Kafka&#xff0c;Amazon SQS&#xff0c;Ro…

C++牛客小白月赛题目分享(1)生不逢七,交换数字,幻兽帕鲁

目录 1.前言 2.三道题目 1.生不逢七 1.题目描述 2.输入描述: 3.输出描述: 4.示例&#xff1a; 5.题解&#xff1a; 2.交换数字 1.题目描述&#xff1a; 2.输入描述&#xff1a; ​编辑 3.输出描述&#xff1a; 4.示例&#xff1a; 5.题解&#xff1a; 3.幻兽帕…

探索震坤行API:一键解锁高效工业用品采购新纪元!

震坤行是一家专注于工业用品的B2B电商平台&#xff0c;为企业客户提供一站式的工业用品采购服务。虽然震坤行没有直接公开通用的API接口供开发者调用&#xff0c;但通常大型企业或合作伙伴之间可以通过API进行系统集成和数据交互。以下是一个假设性的震坤行API接口调用示例与代…

STM32_HAL_RTC_中断实现闹钟

1STM32设置 在STM32Cude中设置RTC//具体设置看先前发的文章 再打开闹钟中断&#xff08;如下图&#xff09; 2代码思路 2.1启动闹钟&#xff08;HAL_RTC_SetAlarm_IT(&hrtc,&sAlarm,FORMAT_BCD)&#xff09; 2.2设置回调函数&#xff08;void HAL_RTC_AlarmAEventC…

ICRA 2024 成果介绍:基于 RRT* 的连续体机器人高效轨迹规划方法

近来&#xff0c;连续体机器人研究受到越来越多的关注。其灵活度高&#xff0c;可以调整形状适应动态环境&#xff0c;特别适合于微创手术、工业⽣产以及危险环境探索等应用。 连续体机器人拥有无限自由度&#xff08;DoF&#xff09;&#xff0c;为执行空间探索等任务提供了灵…

YOLOv8火焰与烟雾智能检测系统

项目概述&#xff1a; 本项目旨在开发一款高效、实时的火焰与烟雾检测系统&#xff0c;利用先进的深度学习技术——YOLOv8&#xff0c;为安全监控领域提供智能化解决方案。系统不仅能够准确识别视频流或静态图像中的火焰与烟雾&#xff0c;还配备了用户友好的图形界面&#xff…

Spring框架中常见注解

Spring&#xff1a; SpringMVC&#xff1a; RequestMapping用在类上表示所有该类下方法的父路径 RequestParam 做映射&#xff0c;前端请求的参数映射到控制器Controller的处理方法上的参数上。 【当参数需要设置默认值&#xff08;前端没有发送这个参数&#xff09;、参数名…

机器人种类分析

2000年前&#xff0c;机器人主要应用于工业生产&#xff0c;俗称工业机器人&#xff0c;由示教器操控&#xff0c;帮助工厂释放劳动力&#xff0c;此时的机器人并没有太多智能而言&#xff0c;完全按照人类的命令执行动作&#xff0c;更加关注电气层面的驱动器、伺服电机、减速…

mysql中sql语句 exists 判断子句的用法

如果子查询成立才执行父查询 exists判断子查询的使用例子&#xff1a; 张三不存在所以前面的父查询不执行 后面的子句结果存在&#xff0c;所以前面的父查询被执行 where条件所连接的嵌套子查询都是&#xff0c;条件子查询 ———————————————————————…

STL——deque容器【双端动态数组】

deque容器的基本概念&#xff1a; 功能&#xff1a;双端数组&#xff0c;可以对头端进行插入删除操作 deque与vector的区别&#xff1a; vector队友头部的插入删除效率低&#xff0c;数据量越大&#xff0c;效率越低deque相对而言&#xff0c;对头部的插入删除速度会比vecto…

QT+多线程TCP服务器+进阶版

针对之前的服务器&#xff0c;如果子线程工作类里面需要使用socket发送消息&#xff0c;必须要使用信号与槽的方法&#xff0c; 先发送一个信号给父进程&#xff0c;父进程调用socket发送消息&#xff08;原因是QT防止父子进程抢夺同一资源&#xff0c;因此直接规定父子进程不能…