【真题研究】春季测试 2023

news/2024/12/21 21:47:30/文章来源:https://www.cnblogs.com/Daniel-yao/p/18447240

T1.涂色游戏(paint)

可以按照题意模拟,每一次暴力对于每一行列染色,时间复杂度 \(O(qn)\)。可得60pts。

因为颜色可以覆盖,某一格的颜色往往取决于最后一次被染到的颜色。

于是我们采用打标记的方式。每一次染色(行或列)就在当前行列打标记,记操作时间戳 \(t\)

最后输出答案时枚举每一格,比较当前行列的时间戳 \(t\)\(t\) 更大的标记对应的颜色就是覆盖的颜色。

时间复杂度 \(O(q+nm)\),100pts。

点击查看代码
#include<bits/stdc++.h>
#define int long long 
#define rint register int 
#define For(i,l,r) for(rint i=l;i<=r;++i)
#define FOR(i,r,l) for(rint i=r;i>=l;--i)
using namespace std;inline int read() {rint x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;
} const int N = 1e6 + 5;struct Node {int id, c;
} Ansh[N], Ansl[N];int n, m, T, q;void init() {For(i,1,n) {For(j,1,m) {Ansh[i] = (Node) {0, 0};Ansl[j] = (Node) {0, 0};} } 
}signed main() {T = read();while(T--) {n = read(), m = read(), q = read();init();For(l,1,q) {int op = read(), x = read(), c = read();if(op == 0) {Ansh[x] = (Node) {l, c};} else {Ansl[x] = (Node) {l, c};}}For(i,1,n) {For(j,1,m) {if(j != m) {if(Ansh[i].id > Ansl[j].id) {cout << Ansh[i].c << ' ';} else {cout << Ansl[j].c << ' ';}}else {if(Ansh[i].id > Ansl[j].id) {cout << Ansh[i].c;} else {cout << Ansl[j].c;} }}cout << endl;}}return 0;
}

T2.幂次(power)

  • \(k=1\)

答案显然就是 \(n\)

  • \(k\geq 3\)

注意到,若 \(x\) 质因数分解后满足 \(p_1p_2p_3...p_m\) 的形式,则将答案在 \(x\) 时记下不会记重。

枚举底数 \(a\),时间复杂度显然在 \(O(n^{\frac{1}{3}})\) 阶内。然后暴力枚举指数 \(b\),并打标记防止记重(标记数组用 map 存)。统计记录下个数。

这样时间复杂度 \(O(n^{\frac{1}{3}}\log n)\),可以接受。45pts。

  • \(k=2\)

相当于在 \(k\ge 3\) 的基础上多加了一堆完全平方数。

已知所有 \(\le n\) 的完全平方数的数量为 \(\left\lfloor \sqrt n \right\rfloor\)。但是直接加上会记重,原因是那些 \(k \ge 3\) 中的方案里也有完全平方数,比如 \(4^3=8^2=64\)。于是你只要记下那些 \(k \ge 3\) 中的方案的完全平方数的个数,容斥掉就可以了。

总时间复杂度还是 \(O(n^{\frac{1}{3}}\log n)\)。100pts。

点击查看代码
#include<bits/stdc++.h>
#define int long long
#define rint register int 
#define For(i,l,r) for(rint i=l;i<=r;++i)
#define FOR(i,r,l) for(rint i=r;i>=l;--i)using namespace std;int n, k, ans, und;map<int, bool> vis;int qpow(int a, int b) {int res = 1;for (; b; b >>= 1, a = a * a) {if(b & 1) res = res * a;}return res;
}signed main() {cin >> n >> k;if(k == 1) cout << n << '\n';else if(k >= 2){for (int i = 2; i * i * i <= n; ++i) {for (int j = i * i, kk = 2; ; ) {if(j > n/i) break;j *= i, kk++;if(kk < k) continue;if(vis[j]) continue;vis[j] = 1;ans++;if((int)sqrtl(j)*sqrtl(j) == j) und++;}}if(k >= 3) cout << ans+1 << '\n';else cout << (int)sqrtl(n) + ans - und << '\n';}  return 0;
}

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

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

相关文章

20240924

[牛半仙的妹子 Tree(tree)](http://ac.robo-maker.cn/d/contest/p/ZY1044?tid=66f28cd11bca2159e88c8fb0) 我们会发现其实牛半仙发癫时就等于将以前的标记清空,从头开始,所以我们可以考虑根号分治,如果两个牛半仙发癫的时间间隔小于 \(\sqrt n\) ,那么我们可以直接暴力枚举两…

『模拟赛』冲刺CSP联训模拟2

『模拟赛记录』冲刺CSP联训模拟2Rank 不重要了A. 挤压 你说的对,期望怎么能算签呢? 一个重要的性质:一个数的平方可以在二进制下表示为 \(\sum_{i,j}\ s_i\ s_j\ 2^{i+j}\),所以就可以分别求每一位对答案的贡献了。 设 \(f_{i,1/0,1/0}\) 表示到第 \(i\) 个数我们枚举的两位…

PbootCms上传图片变模糊、上传图片尺寸受限的解决方案

在使用PbootCMS的过程中,如果上传的图片被压缩变得模糊,通常是因为上传的图片尺寸过大。PbootCMS 默认的上传图片限制宽度为 1920 像素,缩略图的限制大小为 10001000 像素。可以通过调整这些参数来解决这个问题。 解决方案打开 config.php 文件 调整 max_width 和 max_heigh…

ROS基础入门——实操教程

ROS新人可看ROS基础入门——实操教程前言 本教程实操为主,少说书。可供参考的文档中详细的记录了ROS的实操和理论,只是过于详细繁杂了,看得脑壳疼,于是做了这个笔记。Ruby Rose,放在这里相当合理前言:本文初编辑于2024年10月24日 CSDN主页:https://blog.csdn.net/rvdgds…

PbootCMS增加可允许上传文件类型,例如webp、mov等文件格式扩展

在PbootCMS中增加可允许上传的文件类型(例如 webp、mov 等文件格式),需要在多个地方进行配置。以下是详细的步骤: 操作步骤 1. 修改 config.php 文件 首先需要修改 config.php 文件,增加允许上传的文件类型。打开 config.php 文件打开 config.php 文件,通常位于 /config …

出现“登录失败,表单提交校验失败”,请检查服务器环境

如果出现“登录失败,表单提交校验失败”,请检查服务器环境,然后刷新页面重试,或者删除 runtime 文件夹,然后刷新页面重试。 操作步骤删除 runtime 文件夹使用 FTP 客户端或 SSH 连接到服务器。 删除 runtime 文件夹:bashcd /path/to/your/site rm -rf runtime刷新页面清除…

多次密码错误导致登录界面锁定,可以删除网站的 runtime 文件夹

如果多次密码错误导致登录界面锁定,可以删除网站的 runtime 文件夹,然后刷新页面重试。 操作步骤删除 runtime 文件夹使用 FTP 客户端或 SSH 连接到服务器。 删除 runtime 文件夹:bashcd /path/to/your/site rm -rf runtime刷新页面清除浏览器缓存。 重新访问后台登录页面扫…

红日靶机(三)笔记

VulnStack-红日靶机三 概述 相交于前边两个靶场环境,靶场三的难度还是稍难一点,有很多兔子洞,这就考验我们对已有信息的取舍和试错,以及对渗透测试优先级的判断。涉及到对数据库操作的试错,对 joomla 框架 cve 的快速学习,php 中 用到disabled_function 的 bypass ,对li…

快乐数学2勾股定理0000000

2 勾股定理 在任意一个直角三角形中,两条直角边的平方和等于斜边的平方。 a + b = ca 和 b 分别表示直角三角形的两条直角边长度。 c 表示斜边长度。我们大多数人都认为这个公式只适用于三角形和几何图形。勾股定理可用于任何形状,也可用于任何将数字平方的公式。 2.1 了解面…

信息学奥赛复赛复习11-CSP-J2020-04方格取数-动态规划、斐波那契数列、最优子结构、重叠子问题、无后效性

PDF文档公众号回复关键字:202410041 P7074 [CSP-J2020] 方格取数 [题目描述] 设有 nm 的方格图,每个方格中都有一个整数。现有一只小熊,想从图的左上角走到右下角,每一步只能向上、向下或向右走一格,并且不能重复经过已经走过的方格,也不能走出边界。小熊会取走所有经过的…

python相平面 图形

二阶非线性自治系统绘制相平面图。假设我们有一个简单的阻尼摆系统,其状态方程可以表示为: \[ dx1/dt = x2 \\dx2/dt = -cx2 - gsin(x1) \] import numpy as np import matplotlib.pyplot as plt from scipy.integrate import odeint # 定义系统的状态方程 def pendu…

帝国CMS7.2/7.5移动端/手机端/多终端访问设置图文教程

​随着PC互联网与移动互联网的不断融合、以及各类移动访问终端增加,网站移动互联越来越重要了,所以帝国CMS7.2/7.5版本在原来版本的多访问终端功能基础上,做出更多的改进,让网站多种移动访问端制作更加方便。下面我们来讲解帝国CMS7.2版本的“多终端访问功能”使用:新增网…