CF补题 993-Div.4

news/2024/12/22 19:41:08/文章来源:https://www.cnblogs.com/dianman/p/18622435

CF补题 993-Div.4-20241221

Dashboard - Codeforces Round 993 (Div. 4) - Codeforces

A:

题目大意:给出一个 \(n\) ,求有多少有序正整数数对 \((a,b)\),使得 \(a=n-b\)

#include <iostream>
#define streampreset() ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
using namespace std;int main()
{streampreset();int T;cin >> T;while (T--){int n;cin >> n;cout << n - 1 << endl;}return 0;
}

经典数学小知识

B:

题目大意:给出一个由 p,q,w 组成的字符串,求它的镜像串

#include <iostream>
#include <string>
#define streampreset() ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
using namespace std;int main()
{streampreset();int T;cin >> T;while (T--){string a;cin >> a;for (int i = a.size() - 1; i >= 0; i--) {if (a[i] == 'q') cout << 'p';else if (a[i] == 'p') cout << 'q';else cout << a[i];}cout << endl;}return 0;
}

正序输入,倒序输出,p,q 翻转 w 不变

C:

题目大意:\(2*m\) 个座位有 \(a+b+c\) 只猴子,\(a\) 猴子只能坐第一排, \(b\) 猴子只能坐第二排,\(c\) 猴子随便坐,求最大能坐下的猴子数

#include <iostream>
#include <algorithm>
#define streampreset() ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
using namespace std;int main()
{streampreset();int T;cin >> T;while (T--){int m, a, b, c;int ans = 0;cin >> m >> a >> b >> c;ans+=min(a,m);ans+=min(b,m);ans+=min(2*m-min(a,m)-min(b,m),c);cout<<ans<<endl;}return 0;
}

贪心,首先安排 \(a,b\) 猴子,剩下的座位就是 \(c\) 猴的

D:

题目大意:给出一个序列a,构造一个序列b使得 \(a_i\)\(1\le i \le n\) 上的 \([b_1,b_2...b_i]\) 的模,模指的是一个序列中出现次数最多的数(众数)

#include <iostream>
#define streampreset() ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
using namespace std;int a, st[200010];
int n;int main()
{streampreset();int T;cin >> T;while (T--){memset(st, 0, sizeof st);cin >> n;int d = 1;for (int i = 1; i <= n; i++) {cin >> a;while (st[d]) d++;//定位if (st[a]) {cout << d << ' ';//如果出现过,就填dst[d]++;}else {cout << a << ' ';没有出现过,就填ast[a]++;}}cout << endl;}return 0;
}

脑筋急转弯,只要我们保证每次出现的数都不重复,即每个数都只出现一次,那么所有的数都是这个序列的模

所以我们维护一个状态序列,每次判断当前的 \(a_i\) 是否出现过,如果出现过,就使 \(b_i\) 为一个从未出现过的数,如果没有出现过,我们就把他加入序列

每次循环前,都要将d定位到没有出现过的数上

E:

题目大意:对 \(x,y\) 两个正整数,给定两个区间 l1,r1,l2,r2 和一个底数 k ,求满足 \(\frac{y}{x}=k^n\)\((x,y)\) 有序对数

#include <iostream>
#include <algorithm>
#include <math.h>
#define streampreset() ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
using namespace std;int main()
{streampreset();int T;cin >> T;while (T--){long long k, la, ra, lb, rb;cin >> k >> la >> ra >> lb >> rb;long long sum = 1;long long ans = 0;long long u, v;while (sum <= rb) {long long i = la - 1, j = ra + 1;while (i + 1 != j){long long mid = (i + j) >> 1;if (mid * sum >= lb) j = mid;//else i = mid;}u = j;//取分界右侧i = la - 1, j = ra + 1;while (i + 1 != j){long long mid = (i + j) >> 1;if (mid *sum > rb) j = mid;else i = mid;}v = i;//取分界左侧if (u <= v) ans += v - u + 1;sum *= k;}cout << ans << endl;}return 0;
}

\(\frac{y}{x}=k^n\) 可变形为 \(y=x*k^n\)\(x=\frac{y}{k^n}\) ,我们已知 \(x,y\) 的取值范围,通过枚举 \(n\) 再二分查找 \(x\) 的边界

枚举 \(n\) 只需要枚举到 \(k^n\le y_{max}\) ,因为超过界限后,左右边界都为 \(0\) 无意义

二分找 \(x\) 的边界,分别求满足 \(x*k^n=y_{min}\)\(x*k^n=y_{max}\)\(x_u,x_v\)

最后答案加上 \(\sum_{u}^{v}(x)\) 即可,复杂度大约在 \(O(n\log n)\) 左右

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

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

相关文章

实验

任务41 #include <stdio.h>2 #define N 103 4 typedef struct {5 char isbn[20]; 6 char name[80]; 7 char author[80]; 8 double sales_price; 9 int sales_count; 10 } Book; 11 12 void output(Book x[], i…

T网站景点评论爬虫分享

由于学校作业需要对景点评论做一个汇总和分析,这里以T程网站为例,进行爬虫分析,爬取景点评论。开干! 景点评论页面 首先找到我们要爬取的评论页面:F12打开开发者工具,点击Network,Fetch/XHR:这里遇到个问题,页面被添加了无限断点,Fetch/XHR中没有任何数据,推荐用以下…

【每日一题】20241222

记住,只有软弱的人才从他人身上寻求回报。我们的回报是我们自己。【每日一题】某流水线上生产的一批零件,其规格指标 \(X\) 可以看作一个随机变量,且 \(X\sim N(98,\sigma^2)\), 对于 \(x\geq100\) 的零件即为不合格,不合格零件出现的概率为 \(0.05\).现从这批零件中随机抽…

【每日一题】2024

记住,只有软弱的人才从他人身上寻求回报。我们的回报是我们自己。【每日一题】某流水线上生产的一批零件,其规格指标 \(X\) 可以看作一个随机变量,且 \(X\sim N(98,\sigma^2)\), 对于 \(x\geq100\) 的零件即为不合格,不合格零件出现的概率为 \(0.05\).现从这批零件中随机抽…

Git-第一次提交

第一次提交 配置用户名和邮箱 git config --global user.name <username> git config --global user.email <email>目录结构first-steps就是一个示例项目 创建版本库 版本库是用来存储项目本身及其历史的 进入到first-steps目录中 cd first-steps git init提交 git…

一种隐藏VBA代码模块和恢复可见的方法

为了保护自己写的VBA程序代码不被他人抄袭,你可能想到给程序添加查看密码。然而这种密码是很容易被破解的,其中的一种破解方法详见我之前写的一篇文章:如何把Excel的VBA程序封装成DLL并分发给他人使用。其实还有很多种破解方法,包括下面即将介绍的这种隐藏代码模块的方法也…

渗透测试-前后端加密分析之AES加密下的SQL注入

本文是高级前端加解密与验签实战的第9篇文章,也是最后一篇文章。本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过前后端加密进行SQL注入。本文是高级前端加解密与验签实战的第9篇文章,也是最后一篇文章。本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本…

Transformers 框架 Pipeline 任务详解(五):表格问答(table-question-answering)

本文全面介绍了 Transformers 框架中的 table-question-answering 任务,从基础概念到实际应用,再到如何构建和部署一个交互式的表格问答系统。无论是在商业智能、教育辅导还是金融分析等领域,Transformers 框架都能为我们提供强有力的支持,助力我们快速实现高效的表格问答解…

WPF实现加载的动态效果

思路: 1.创建一个画布,长宽100*100;<Canvas Width="100" Height="100">2.画布上创建一个圆,直径25,位于正上方中间,底色浅灰;<Style TargetType="Ellipse"><Setter Property="Width" Value="25"/>…

Derby 数据库介绍(2)--使用

本文主要介绍 Derby 的基本使用(简介可参考:Derby 数据库介绍(1)--简介),文中所使用到的软件版本:Java 1.8.0_341、Derby 10.14.2.0。 1、嵌入模式 直接使用 JDBC 连接数据库,可创建和启动数据库。 1.1、内存数据库@Test public void embeddedMemory() throws SQLException …

视野修炼第114期 | 2024JS现状调查结果

① 2024 JavaScript 现状调查结果 ② Text Fragment - 直接链接网页文本 ③ my-github-2024 - 2024 GitHub 报告生成 ④ 优秀的单页网站案例 ⑤ Gradienty - 一套CSS工具集 ⑥ 并发和并行的区别 ⑦ AI 音效生成欢迎来到第 114 期的【视野修炼 - 技术周刊】,下面是本期的精选内…

线程池工作原理

线程池综述 它的主要特点为:线程复用;控制最大并发数;管理线程。 使用线程池的好处有 第一:降低资源消耗。通过重复利用已创建的线程,降低线程创建和销毁带来的资源消耗 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建好就可以立即执行。 第三:提高线程的…