当前位置: 首页 > news >正文

Codeforces Round 993 (Div. 4)个人训练记录

Codeforces Round 993 (Div. 4)

只选择对我有价值的题目记录

E. Insane Problem

题目描述

给定五个整数 k k k l 1 l_1 l1 r 1 r_1 r1 l 2 l_2 l2 r 2 r_2 r2,Wave 希望你帮助她计算满足以下所有条件的有序对 ( x , y ) (x, y) (x,y) 的数量:

  1. l 1 ≤ x ≤ r 1 l_1 \leq x \leq r_1 l1xr1
  2. l 2 ≤ y ≤ r 2 l_2 \leq y \leq r_2 l2yr2
  3. 存在一个非负整数 n n n,使得 y x = k n \frac{y}{x} = k^n xy=kn

输入

  1. 第一行包含一个整数 t t t 1 ≤ t ≤ 1 0 4 1 \leq t \leq 10^4 1t104),这里的 t t t 表示测试用例的数量。
  2. 对于每个测试用例,其唯一的一行包含五个整数 k k k l 1 l_1 l1 r 1 r_1 r1 l 2 l_2 l2 r 2 r_2 r2 2 ≤ k ≤ 1 0 9 2 \leq k \leq 10^9 2k109 1 ≤ l 1 ≤ r 1 ≤ 1 0 9 1 \leq l_1 \leq r_1 \leq 10^9 1l1r1109 1 ≤ l 2 ≤ r 2 ≤ 1 0 9 1 \leq l_2 \leq r_2 \leq 10^9 1l2r2109)。

输出

对于每个测试用例,在新的一行输出匹配的有序对 ( x , y ) (x, y) (x,y) 的数量。

示例

Input(输入)Output(输出)
5
2 2 6 2 12
2 1 1000000000 1 1000000000
3 5 7 15 63
1000000000 1 5 6 1000000000
15 17 78 2596 20914861
12
1999999987
6
1
197

注意事项

  • 在第三个测试用例中,匹配的有序对如下:
    • ( 5 , 15 ) (5, 15) (5,15)
    • ( 5 , 45 ) (5, 45) (5,45)
    • ( 6 , 18 ) (6, 18) (6,18)
    • ( 6 , 54 ) (6, 54) (6,54)
    • ( 7 , 21 ) (7, 21) (7,21)
    • ( 7 , 63 ) (7, 63) (7,63)
  • 在第四个测试用例中,唯一有效的有序对是 ( 1 , 1000000000 ) (1, 1000000000) (1,1000000000)

思路:

枚举加计数问题,通常只需要枚举其中一个,然后另一个是可以通过计算得到的。由于xy的范围告诉我们了,所以 k n k^n kn的范围我们也能知晓,上界为 r = r 2 / l 1 r=r_2 / l_1 r=r2/l1下取整,下界为 l = ( l 2 + r 1 − 1 ) / r 1 l = (l_2 + r_1 - 1) / r_1 l=(l2+r11)/r1向上取整。现在我们只需要调整一下方程为 y k n = x \frac{y}{k^n} = x kny=x,每枚举一个可行的 k n k^n kn后,我们用y的最小值和最大值即可求出在这个可行的 k n k^n knx的范围,通过计算即可得到个数。至于为啥要将方程调整成除法形式而不是更好计算的形式,自己思考一下就能明白,用乘法的话得到的y值不是一个接一个的,中间有很多空隙,导致不能直接通过计算得到个数,用除法可以解决这样的问题。

#include <bits/stdc++.h>
#define int long long
#define endl '\n'using namespace std;void solve(){int k,l1,r1,l2,r2;cin>>k>>l1>>r1>>l2>>r2;int l = (l2+r1-1)/r1;//下界int r = r2/l1; //上界int base = 1;int ans = 0;// cout<<l<<" "<<r<<endl;while(base<l) base*=k; //先找到范围内最小的k^nwhile(base<=r){int ll = (l2+base-1) / base;int rr = r2 / base;ll = max(l1,ll);rr = min(r1,rr);if(ll<=rr) ans += rr-ll+1;base*=k;}cout<<ans<<endl;
}signed main(){int T; cin>>T; while(T--)solve();return 0;
}

评述

这道题比较有参考价值,自己太笨了,第一时间竟然无从下手

----------------------------------------

F. Easy Demon Problem

题目描述

对于任意网格,Robot 将其美感定义为网格中元素的总和。

Robot 给出了一个长度为 n n n 的数组 a a a 和一个长度为 m m m 的数组 b b b 。你构造了一个 n n n m m m 的网格 M M M ,使得所有 1 ≤ i ≤ n 1 \leq i \leq n 1in 1 ≤ j ≤ m 1 \leq j \leq m 1jm 都是 M i , j = a i ⋅ b j M_{i,j}=a_i\cdot b_j Mi,j=aibj

然后,Robot 会给出 q q q 个查询,每个查询都包含一个整数 x x x 。对于每个查询,请判断是否可以***精确地执行一次下面的操作,从而使 M M M 具有 x x x 的美感:

  1. 选择整数 r r r c c c ,使得 1 ≤ r ≤ n 1 \leq r \leq n 1rn 1 ≤ c ≤ m 1 \leq c \leq m 1cm 都是整数。
  2. M i , j M_{i,j} Mi,j 0 0 0 ,所有有序对 ( i , j ) (i,j) (i,j) 都是 i = r i=r i=r j = c j=c j=c ,或都是 i = r i=r i=r

请注意,查询是不持久的,也就是说,在查询过程中,您不会将任何元素设置为 0 0 0 --您只需要输出是否可以找到 r r r c c c ,如果执行了上述操作,网格的美观度将为 x x x 。此外,请注意,即使原始网格的美观度已经是 x x x ,您也必须对每个查询执行上述操作。

输入

第一行包含三个整数 n n n m m m q q q ( 1 ≤ n , m ≤ 2 ⋅ 1 0 5 , 1 ≤ q ≤ 5 ⋅ 1 0 4 1 \leq n,m \leq 2\cdot 10^5, 1 \leq q \leq 5\cdot 10^4 1n,m2105,1q5104 )–分别是 a a a 的长度、 b b b 的长度和查询次数。

第二行包含 n n n 个整数 a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1,a2,,an ( 0 ≤ ∣ a i ∣ ≤ n 0 \leq |a_i| \leq n 0ain )。

第三行包含 m m m 个整数 b 1 , b 2 , … , b m b_1, b_2, \ldots, b_m b1,b2,,bm ( 0 ≤ ∣ b i ∣ ≤ m 0 \leq |b_i| \leq m 0bim )。

下面的 q q q 行中各包含一个整数 x x x ( 1 ≤ ∣ x ∣ ≤ 2 ⋅ 1 0 5 1 \leq |x| \leq 2\cdot 10^5 1x2105 ),即通过将一行和一列中的所有元素都设置为 0 0 0 所获得的网格美感。

输出

对于每个测试用例,如果有办法执行上述操作,从而使美景为 x x x ,则输出 “YES”(不带引号),否则输出 “NO”(不带引号)。

您可以在任何情况下输出 "YES "和 “NO”(例如,字符串 “yES”、"yes "和 "Yes "将被视为肯定回答)。

样例1

3 3 6
-2 3 -3
-2 2 -1
-1
1
-2
2
-3
3

输出

NO
YES
NO
NO
YES
NO

思路

在这里插入图片描述

评述

一道不错的题就是题目有点难读,其中提前预处理出所有情况再来处理询问的方式可以很有效的降低时间复杂度,也是这种题的经典做法。

#include <bits/stdc++.h>using namespace std;using ll = long long;
using ld = long double;
using pii = pair<int, int>;
using pll = pair<ll, ll>;#define inf 0x3f3f3f3f
#define infll 0x3f3f3f3f3f3f3f3fLLconst int N = 2e5 + 5;bool visA[2 * N + 5];
bool visB[2 * N + 5];bool ans[2 * N + 5];
void solve()
{int n, m, q;cin >> n >> m >> q;std::vector<ll> a(n);ll sumA = 0;for (int i = 0; i < n; i++){cin >> a[i];sumA += a[i];}std::vector<ll> b(m);ll sumB = 0;for (int i = 0; i < m; i++){cin >> b[i];sumB += b[i];}for (int i = 0; i < n; i++){ll d = sumA - a[i];if (abs(d) < N)visA[d + N] = 1;}for (int i = 0; i < m; i++){ll d = sumB - b[i];if (abs(d) < N)visB[d + N] = 1;}for (int i = 1; i < N; i++){for (int j = 1; j * i < N; j++){ans[N + i * j] |= visA[N + i] && visB[N + j];ans[N + i * j] |= visA[N - i] && visB[N - j];ans[N - i * j] |= visA[N + i] && visB[N - j];ans[N - i * j] |= visA[N - i] && visB[N + j];}}while (q--){int x;cin >> x;x += N;if (ans[x])cout << "YES\n";elsecout << "NO\n";}
}int main()
{ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0);// freopen("test.in", "r", stdin);// freopen("test.out", "w", stdout);int _ = 1;// std::cin >> _;while (_--){solve();}return 0;
}

相关文章:

Codeforces Round 993 (Div. 4)个人训练记录

Codeforces Round 993 (Div. 4) 只选择对我有价值的题目记录 E. Insane Problem 题目描述 给定五个整数 k k k&#xff0c; l 1 l_1 l1​&#xff0c; r 1 r_1 r1​&#xff0c; l 2 l_2 l2​ 和 r 2 r_2 r2​&#xff0c;Wave 希望你帮助她计算满足以下所有条件的有序对 …...

【优选算法---分治】快速排序三路划分(颜色分类、快速排序、数组第K大的元素、数组中最小的K个元素)

一、颜色分类 题目链接: 75. 颜色分类 - 力扣&#xff08;LeetCode&#xff09; 题目介绍&#xff1a; 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地 对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序…...

Spring Cloud OpenFeign

概述 Feign是一个声明式web服务客户端。可以像写接口一样定义http客户端。Feign还支持可插拔的编码器和解码器。Spring Cloud增加了对Spring MVC注释和使用Spring Web中默认使用的HttpMessageConverter的支持。Spring Cloud集成了Ribbon和Eureka&#xff0c;以及Spring Cloud L…...

Oracle 数据库函数的用法(一)

Oracle数据库提供了大量的内置函数&#xff0c;可以用于完成各种操作&#xff0c;如字符串操作&#xff0c;数学计算&#xff0c;日期时间处理&#xff0c;条件判断&#xff0c;序列生成&#xff0c;聚合统计等。以下是一些常用的Oracle数据库函数&#xff1a; 一、oracle 使用…...

【C2C+GRCC】Exploring Disentangled Content Information for Face Forgery Detection

文章目录 Exploring Disentangled Content Information for Face Forgery Detection背景key points研究贡献方法增强解纠缠特性的独立性实验数据内评估跨方法评估跨数据集评估消融实验总结Exploring Disentangled Content Information for Face Forgery Detection 会议/期刊:…...

springboot461学生成绩分析和弱项辅助系统设计(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装学生成绩分析和弱项辅助系统软件来发挥其高效地信息处理的作…...

Unity复刻胡闹厨房复盘 模块一 新输入系统订阅链与重绑定

本文仅作学习交流&#xff0c;不做任何商业用途 郑重感谢siki老师的汉化教程与代码猴的免费教程以及搬运烤肉的小伙伴 版本&#xff1a;Unity6 模板&#xff1a;3D 核心 渲染管线&#xff1a;URP ------------------------------…...

使用“NodeMCU”、“红外模块”实现空调控制

项目思路 空调遥控器之所以能够实现对空调的控制&#xff0c;是因为它能够向空调发射出特定的红外信号。从理论上来说&#xff0c;任何能够发射出这种相同红外信号的红外发射器&#xff0c;都可以充当空调遥控器&#xff08;这也正是手机能够控制多种不同品牌空调的原因所在&a…...

2023年西南大学数学建模C题天气预报解题全过程文档及程序

2023年西南大学数学建模 C题 天气预报 原题再现&#xff1a; 天气现象与人类的生产生活、社会经济、军事活动等方方面面都密切相关&#xff0c;大到国家&#xff0c;小到个人&#xff0c;都受到极端天气的影响。2022年6月&#xff0c;全球陆地地区出现了自1850年代末人类有系…...

【大模型】使用DPO技术对大模型Qwen2.5进行微调

前言 定义 DPO&#xff08;Direct Preference Optimization&#xff09;即直接偏好优化算法&#xff0c;是一种在自然语言处理领域&#xff0c;特别是在训练语言模型时使用的优化策略。它的主要目的是使语言模型的输出更符合人类的偏好。 背景和原理 在传统的语言模型训练中&a…...

Maven 生命周期

文章目录 Maven 生命周期- Clean 生命周期- Build 生命周期- Site 生命周期 Maven 生命周期 Maven 有以下三个标准的生命周期&#xff1a; Clean 生命周期&#xff1a; clean&#xff1a;删除目标目录中的编译输出文件。这通常是在构建之前执行的&#xff0c;以确保项目从一个…...

网络不通该如何手动下载torch

如果遇到pip install torch2.5.0 下载不了的情况,大部分是网络的问题.可以考虑下载wheel文件在去安装 查看对应的cuda版本(举个例子:cuda为12.4,找到这个版本的 复制到服务器上下载): 有conda和pip下载的两种方式,二者选其一:如果没有安装anaconda,就直接使用pip的方式下载 如…...

基础电路的学习

1、戴维南定理 ①左边的图可简化为一个电阻&#xff0b;一个电压源。② ③电压源可相当于开路。将R2移到左边&#xff0c;R1和R2相当于并联。RR1//R2 Rx和Rt相等时&#xff0c;灵敏度最大&#xff0c;因此使Rt10K。 104电容是0.1uf。 三位数字的前两位数字为标称容量的有效数…...

对 MYSQL 架构的了解

MySQL 是一种广泛使用的关系型数据库管理系统&#xff0c;其架构主要包括以下几个关键部分&#xff1a; 一、连接层 客户端连接管理&#xff1a;MySQL 服务器可以同时处理多个客户端的连接请求。当客户端应用程序&#xff08;如使用 Java、Python 等语言编写的程序&#xff09;…...

C#中方法参数传值和传引用的情况

对于引用类型 - 传类类型的具体值时 此时传的是引用 - 单纯传类类型 此时传的是个test引用的副本&#xff0c;在方法内修改的是这个副本的指向 传string&#xff0c;集合同理&#xff0c;只要是指向新对象&#xff0c;就是引用副本在指向 对于值类型 - 传普通值类型 …...

获取显示器(主/副屏)友好名称(FriendlyName)

在开发涉及多显示器的应用程序时&#xff0c;获取显示器的友好名称&#xff08;Friendly Name&#xff09;是一个常见需求。本文将深入探讨GetMonitorFriendlyName 方法&#xff0c;了解其实现细节和工作原理。 方法签名 public static string GetMonitorFriendlyName(bool i…...

Apache Solr RCE(CVE-2017-12629)--vulhub

Apache Solr 远程命令执行漏洞&#xff08;CVE-2017-12629&#xff09; Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发&#xff0c;主要基于 HTTP 和 Apache Lucene 实现。原理大致是文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个…...

2.3 携程的hook实现及dlsym函数

背景知识&#xff1a;&#xff08;排除static 情况&#xff09; 一个进程中可以有相同的命名吗&#xff1f; -- 不能 两个进程之间可以有相同的命名吗&#xff1f;--可以 一个进程和另一个静态库可以有相同的命名吗&#xff1f;--不能 一个进程和另一个动态库之间可以有相同…...

机器学习之KNN算法

K-Nearest Neighbors (KNN) 是一种常见的机器学习算法&#xff0c;广泛应用于分类和回归问题。KNN是一种基于实例的学习方法&#xff0c;它利用训练数据集的实例来进行分类或回归预测。在KNN中&#xff0c;预测的结果依赖于距离度量函数计算出的最近邻实例的标签或值。下面我们…...

《全排列问题》

题目描述 按照字典序输出自然数 11 到 nn 所有不重复的排列&#xff0c;即 nn 的全排列&#xff0c;要求所产生的任一数字序列中不允许出现重复的数字。 输入格式 一个整数 nn。 输出格式 由 1∼n1∼n 组成的所有不重复的数字序列&#xff0c;每行一个序列。 每个数字保留…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...