VP Codeforces Round 944 (Div 4)

感受:

A~G 其实都不难,都可以试着补起来。 H看到矩阵就放弃了。

A题:

思路:

打开编译器

代码:

#include <iostream>
#include <vector>
#include <algorithm>
#define int long long
using namespace std;
const int N = 1e8;
inline void solve() {int a, b; cin >> a >> b;if (a > b) swap(a, b);cout << a << ' ' << b << endl;
}
signed main() {ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int tt; cin >> tt;while (tt -- ) solve();return 0;
}

B题:

思路:

 思维一点。如果这个字符串不是全都一样的话,那么一定就是输出Yes的,具体在实现。如果在后面遇到过与开头不一样的字符,我们进行交换输出即可。

代码:

#include <iostream>
#include <vector>
#include <algorithm>
#define int long long
using namespace std;
const int N = 1e8;
inline void solve() {string a; cin >> a;if (a.size() == 1) return cout << "NO\n", void();char c = a[0];for (int i = 1; i < a.size(); i ++ ) {if (a[i] != c) {swap(a[i], a[0]);cout << "YES" << endl;cout << a << endl;return;}}cout << "NO" << endl;
}
signed main() {ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int tt; cin >> tt;while (tt -- ) solve();return 0;
}

C题:

思路:

要判断是否相交,即要满足以下条件:(假设我们已经排好序)

1.第一条线段的开头小于第二条线段的开头

2.第一条线段的末尾大于第二条线段的开头

3.第二条线段的末尾大于第一条线段的末尾

排序过程可以想象成将12-1这段拆开来,将环变成线段。

代码:

#include <iostream>
#include <vector>
#include <algorithm>
#define int long long
#define x first
#define y second
using namespace std;
typedef pair<int, int> PII;
const int N = 1e8;
inline void solve() {PII a, b;cin >> a.x >> a.y;cin >> b.x >> b.y;if (a.x > a.y) swap(a.x, a.y);if (b.x > b.y) swap(b.x, b.y);if (a > b) swap(a, b);if (a.x < b.x && b.x < a.y && a.y < b.y) cout << "YES\n";else cout << "NO\n";
}
signed main() {ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int tt; cin >> tt;while (tt -- ) solve();return 0;
}

 D题:

思路:

我们要尽可能少剪,那么可能是剪一连串的0或者1.

然后我们进行分类讨论

如果开头是0,有0001111这样子的子串,我们是不是还可以少剪一个?

如果开头是1,有1100111这样子的子串,我们还可以少剪一个。

代码:

#include <iostream>
#include <vector>
#include <algorithm>
#define int long long
#define x first
#define y secondusing namespace std;
typedef pair<int, int> PII;
const int N = 1e8;inline void solve() {string a; cin >> a;int n = a.size();if (n == 1) return cout << 1 << endl, void();// 001001001int cnt = 1;for (int i = 1; i < n; i ++ ) {if (a[i] != a[i - 1]) cnt += 1;}if (a[0] == '0') {cout << (cnt > 1 ? cnt - 1 : 1) << endl;}else {cout << (cnt > 2 ? cnt - 1 : cnt) << endl;}
}signed main() {ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int tt; cin >> tt;while (tt -- ) solve();return 0;
}

E题:

思路:

速度是匀速的,主要问题是确定在哪段,我们直接二分即可。

代码:

#include <iostream>
#include <vector>
#include <algorithm>
#define int long long
#define x first
#define y secondusing namespace std;
typedef pair<int, int> PII;
const int N = 1e8;inline void solve() {int n, k, q; cin >> n >> k >> q;vector<PII> a(k + 2);a[1].first = a[1].second = 0;for (int i = 2; i <= k + 1; i ++ ) cin >> a[i].first;for (int i = 2; i <= k + 1; i ++ ) cin >> a[i].second;while (q -- ) {int x; cin >> x;int l = 1, r = k + 2;while (l + 1 != r) {int mid = (l + r) >> 1;if (a[mid].first < x) l = mid;else r = mid;}int len = a[r].second - a[l].second;int d = a[r].first - a[l].first;int t = x - a[l].first;int ans = a[l].second + t * len / d;cout << ans << ' ';}cout << endl;
}signed main() {ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int tt; cin >> tt;while (tt -- ) solve();return 0;
}

F题: 

思路:

饶有兴趣的是,它是r的总和小于1e5.

所以我们可以直接枚举 x。

那么我们为什么要枚举 x 呢?

因为当我们移动 x 的时候,y的值也在进行变动

x^{2} + y^{2} = r ^{2}

y的值即可以用二分求出来了。

代码:

#include <iostream>
#include <vector>
#include <algorithm>
#define int long long
#define x first
#define y secondusing namespace std;
typedef pair<int, int> PII;
const int N = 1e5 + 9;
inline int fac(int t) {int ans = 0;for (int x = 0; x < t; x ++ ) {int now = t * t - x * x;int l = -1, r = t;while (l + 1 != r) {int mid = (l + r) >> 1;if (mid * mid < now) l = mid;else r = mid;}ans += r;}return ans;
}inline void solve() {int r; cin >> r;int ans = fac(r + 1) - fac(r);ans *= 4;ans -= 4;cout << ans << endl;
}
inline void pre_work() {}signed main() {ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);pre_work();int tt; cin >> tt;while (tt -- ) solve();return 0;
}

G题:

思路:

一个数 x 跟哪些数异或起来会小于等于3?

答案是 x, x ^ 1, x ^ 2, x ^ 3

因为二进制从第三位开始就必须要一模一样了。

交换可以用map存数量,用的时候减去即可。

代码:

#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#define int long long
#define x first
#define y secondusing namespace std;
typedef pair<int, int> PII;
const int N = 1e5 + 9;inline void solve() {int n; cin >> n;vector<int> a(n + 1);map<int, int> cnt;for (int i = 1; i <= n; i ++ ) {cin >> a[i];cnt[a[i]] += 1;}for (int i = 1; i <= n; i ++ ) {int b[4];b[0] = a[i], b[1] = a[i] ^ 1, b[2] = a[i] ^ 2, b[3] = a[i] ^ 3;sort(b, b + 4);for (int j = 0; j < 4; j ++ ) {if (cnt[b[j]]) {cout << b[j] << ' ';cnt[b[j]] -= 1;break;}}}cout << endl;
}
inline void pre_work() {}signed main() {ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);pre_work();int tt; cin >> tt;while (tt -- ) solve();return 0;
}

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

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

相关文章

Windows Docker 使用 httpd 部署静态 Web 站点

一、简介 httpd 是 Apache超文本传输协议&#xff08;HTTP&#xff09;服务器的主程序&#xff0c;是一个独立运行的后台进程&#xff0c;专门负责处理 HTTP 请求。它通过建立子进程或线程的池来高效管理请求&#xff0c;确保服务器能够迅速响应客户端的需求。httpd 因其高效率…

MySQL查询篇-聚合函数-窗口函数

文章目录 distinct 关键字聚合函数常见的聚合函数group by和having 分组过滤 窗口函数with as窗口聚合函数排名窗口函数值窗口函数 distinct 关键字 distinct 去重数据&#xff0c;ps:null值也会查出来 select distinct column from table;聚合函数 常见的聚合函数 select …

[AutoSar]BSW_Diagnostic_002 DCM模块介绍

目录 关键词平台说明背景一、DCM所处架构位置二、DCM 与其他模块的交互三、DCM 的功能四、DCM的内部子模块4.1 Diagnostic Session Layer (DSL)4.1 DSL 与其他模块的交互 4.2 Diagnostic Service Dispatcher (DSD)4.3 Diagnostic Service Processing (DSP)4.4 小结 关键词 嵌入…

莆田市C++专项选拔第二轮题4

题4&#xff1a;变换阵型 【题目描述】 盛隆同学刚学完C的二维数组和函数部分&#xff0c;于是他自己写了2个函数对二维数组进行练习。两个函数如下&#xff1a; int n, a[1005][1005]; // 注意&#xff0c;这里的n和数组a是全局变量 void f1() {for (int i 1; i < n; i)…

47岁古天乐唯一承认女友约「御用阿妈」过母亲节

日前关宝慧在IG晒出一张聚会照&#xff0c;并写道&#xff1a;「预祝各位#母亲节快乐&#x1f339;#dinner #happy #friends #好味」相中所见&#xff0c;前TVB金牌监制潘嘉德、卢宛茵、黄&#x28948;莹、黎萨达姆都有出席饭局。 当中黄&#x28948;莹身穿卡其色西装褛&…

blender 为世界环境添加纹理图像

1、打开世界环境配置项 2、点击颜色右侧的黄色小圆&#xff0c;选择环境纹理 3、打开一张天空图像 4、可以通过调整强度/力度&#xff0c;调整世界环境的亮度

《工具分享-整合功能网页》标星5.3k⭐开发人员的在线工具集:it-tools

IT Tools - 为方便开发人员提供的在线工具 部署自己的it-tools: 有两个版本&#xff0c;目前有中文支持。 直接部署使用docker指令获取出来的是英文的&#xff1a; 英文版&#xff1a; docker run -d --name it-tools --restart unless-stopped -p 8080:80 corentinth/it-…

TCP服务器实现将客服端发送的信息广播发送(使用内核链表管理客户端信息)

目录 1.服务器端实现思路 2.服务器端代码 3.客户端代码 4.内核链表代码 5.运行格式 一、服务器端 二、客户端 6.效果 1.服务器端实现思路 Tcp广播服务初始化 等待客户端连接 广播发送 2.服务器端代码 #include "list.h" #include <signal.h> #def…

基于数据挖掘与机器学习揭秘脱发主因

&#x1f31f;欢迎来到 我的博客 —— 探索技术的无限可能&#xff01; &#x1f31f;博客的简介&#xff08;文章目录&#xff09; 基于数据挖掘与机器学习揭秘脱发主因 目录 一、绪论背景描述数据说明内容大概 二、导入包以及数据读取三、数据预览四、探究导致脱发的因素4.1…

设计模式:迭代器模式(Iterator)

设计模式&#xff1a;迭代器模式&#xff08;Iterator&#xff09; 设计模式&#xff1a;迭代器模式&#xff08;Iterator&#xff09;模式动机模式定义模式结构时序图模式实现在单线程环境下的测试在多线程环境下的测试模式分析优缺点适用场景应用场景参考 设计模式&#xff1…

python爬虫(四)之九章智算汽车文章爬虫

python爬虫&#xff08;四&#xff09;之九章智算汽车文章爬虫 闲来没事就写一条爬虫抓取网页上的数据&#xff0c;现在数据已经抓完&#xff0c;将九章智算汽车文章的爬虫代码分享出来。当前代码采用python编写&#xff0c;可抓取所有文章&#xff0c;攻大家参考。 import r…

STL中的优先级队列

目录 1.引言 2.简介 3.基本操作 4.实现原理 5.自定义优先级比较 6.相关题目 7.能特点 8.总结 1.引言 在C标准库中&#xff0c;优先级队列是一种非常有用的数据结构&#xff0c;它允许我们根据元素的优先级来对其进行排序和访问。这种数据结构在多种应用场景中都发挥着重…

DockerFile介绍与使用

一、DockerFile介绍 大家好&#xff0c;今天给大家分享一下关于 DockerFile 的介绍与使用&#xff0c;DockerFile 是一个用于定义如何构建 Docker 镜像的文本文件&#xff0c;具体来说&#xff0c;具有以下重要作用&#xff1a; 标准化构建&#xff1a;提供了一种统一、可重复…

最大子矩阵:前缀和、动态规划

最近在学习动态规划&#xff0c;在牛客上刷题时碰到了这一题。其实最初的想法是暴力和前缀和&#xff0c;但是时间复杂度极高&#xff0c;需要套4层循环。后来去网上搜了一下相关的题解和做法&#xff0c;进而了解到了前缀和&#xff0b;线性动态规划的做法。但是在成功做出这题…

JVM 类的加载过程详解

文章目录 1. 哪些类需要加载2. 类加载步骤2.1 装载2.1.1 这个过程都做了什么事2.1.2 类的模板对象2.1.3 二进制流获取方式2.1.4 Class 实例的位置2.1.5 数组类的加载有什么不同 2.2 链接2.2.1 验证2.2.2 准备2.2.3 解析 2.3 初始化 1. 哪些类需要加载 在 Java 中数据类型分为 …

Python 整数类型(int)详解:无限范围与多种进制

引言 在编程中&#xff0c;整数是最基本的数据类型之一。不同编程语言对整数的处理方式各不相同&#xff0c;这往往影响到程序的性能和开发者的选择。本文将深入探讨 Python 中的整数类型&#xff08;int&#xff09;&#xff0c;其独特的处理方式&#xff0c;以及它在日常编程…

Ubuntu24 文件目录结构——用户——权限 详解

目录 权限 用户 文件目录结构 一个目录可以有程序&#xff0c;目录&#xff0c;文件&#xff0c;以及这三者的链接。可以看到还分别有使用者和权限信息。 每个文件和目录都有与之关联的三个主要属性&#xff1a;所有者&#xff08;owner&#xff09;、组&#xff08;group&a…

小区物业管理系统

文章目录 小区物业管理系统一、项目演示二、项目介绍三、部分功能截图四、部分代码展示五、底部获取项目源码&#xff08;9.9&#xffe5;带走&#xff09; 小区物业管理系统 一、项目演示 小区物业管理系统 二、项目介绍 基于springbootvue的前后端分离物业管理系统 系统角…

Ubuntu 24 换国内源及原理 (阿里源 清华源 中科大源 网易源)

备份原文件 sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak 编辑源文件 sudo gedit /etc/apt/sources.list.d/ubuntu.sources 粘贴到文本&#xff08;其中一个即可&#xff09;&#xff1a; &#xff08;阿里源&#xff09…

【JAVA进阶篇教学】第十三篇:Java中volatile关键字讲解

博主打算从0-1讲解下java进阶篇教学&#xff0c;今天教学第十三篇&#xff1a;volatile关键字讲解。 在 Java 中&#xff0c;volatile关键字是一种轻量级的同步机制&#xff0c;用于确保变量的可见性和禁止指令重排序。本文将详细解释volatile关键字的工作原理、可见性保证以及…