2025.2.21 总结

news/2025/2/23 21:18:57/文章来源:https://www.cnblogs.com/scguo-130115/p/18732879

比赛链接

T1

100 pts。

思路

枚举左端点,二分右端点,时间 \(O(n \log n)\),比 std(\(O(100 \times n)\)) 优秀。

Code

#include <bits/stdc++.h>
#define int long longusing namespace std;const int kMaxN = 1e5 + 5, kM = 100;
int n, a[kMaxN], sum[kMaxN];signed main() {cin.tie(0)->sync_with_stdio(false);cin >> n;for (int i = 1; i <= n; ++i) {cin >> a[i];sum[i] = sum[i - 1] + a[i];}if (n <= 1000) {int mx = 0;for (int i = 1; i <= n; ++i) {for (int j = i; j <= n; ++j) {if (((sum[j] - sum[i - 1]) % kM + kM) % kM > mx) {mx = ((sum[j] - sum[i - 1]) % kM + kM) % kM;}}} cout << mx;return 0;}int mx = 0;for (int i = 1; i <= n; ++i) {int lt = i - 1, rt = n + 1, L = 0;for (int mid; lt + 1 < rt;) {mid = lt + rt >> 1;if (((sum[mid] - sum[i - 1]) % kM + kM) % kM < 100 && ((sum[mid] - sum[i - 1]) % kM + kM) % kM > L) {lt = mid;L = ((sum[mid] - sum[i - 1]) % kM + kM) % kM;} else {rt = mid;}}mx = max(mx, ((sum[lt] - sum[i - 1]) % kM + kM) % kM);}cout << mx;return 0;
}

T2

45 pts。

思路

一眼同余最短路。

错误

第一没判误解,第二跑反了。

Code

#include <bits/stdc++.h>
#define int long longusing namespace std;
using Pii = pair<int, int>;const int kMaxN = 1e5 + 5, kInf = 9e18;
int n, p, x, q, y, a[kMaxN], sum;
map<int, int> dis;
map<int, bool> vis;struct Node {int id, w;bool operator<(const Node& rhs) const {return w > rhs.w;}
};void dijkstra(int s) {priority_queue<Node> h;for (h.push({s, 0}), dis[s] = 0; !h.empty();) {Node u = h.top();h.pop();if (vis[u.id]) {continue;	}vis[u.id] = 1;int v = (u.id + x) % n, w = p;if (!vis[v] && (!dis.count(v) || dis[v] > dis[u.id] + w)) {dis[v] = dis[u.id] + w;h.push({v, dis[v]});}v = (u.id - y) % n, w = q;if (!vis[v] && (!dis.count(v) || dis[v] > dis[u.id] + w)) {dis[v] = dis[u.id] + w;h.push({v, dis[v]});}}return;
}signed main() {cin.tie(0)->sync_with_stdio(false);cin >> n >> p >> x >> q >> y;for (int i = 1; i <= n; ++i) {cin >> a[i];sum += a[i];}if (sum % n == 0) {	cout << 0;return 0;}dijkstra(sum);if (!dis.count(0)) {cout << -1;} else {cout << dis[0];}return 0;
}

T3

0 pts。

dfs 没分。

赛时怎么都想不到是种树(把种树忘了)。

如果用普通的区间选点,只有 60 pts。

那么,就使用树状数组优化,时间 \(O(m \log n)\)

Code

#include <bits/stdc++.h>
#define int long longusing namespace std;const int kMaxN = 1e6 + 5;
int n, m, tr[kMaxN];
bool vis[kMaxN];struct Node {int l, r, k;
} a[kMaxN];bool cmp(Node x, Node y) {if (x.r == y.r) {if (x.l == y.l) {return x.k > y.k;}return x.l < y.l;}return x.r < y.r;
}void update(int idx, int val) {for (; idx <= n; idx += idx & -idx) {tr[idx] += val;}return;
}int query(int idx) {int ans = 0;for (; idx; idx -= idx & -idx) {ans += tr[idx];}return ans;
}signed main() {cin.tie(0)->sync_with_stdio(false);cin >> n >> m;for (int i = 1; i <= m; ++i) {cin >> a[i].l >> a[i].r >> a[i].k;}sort(a + 1, a + m + 1, cmp);for (int i = 1, l, r, k, sum; i <= m; ++i) {l = a[i].l, r = a[i].r, k = a[i].k, sum = query(r) - query(l - 1);if (sum < k) {for (int j = r; j >= l; --j) {if (!vis[j]) {++sum;update(j, 1);vis[j] = 1;if (sum == k) {break;}}}}}cout << query(n);return 0;
}

T4

18 pts。

暴力枚举 \(b\)

正解是拆成两部分,首先二分最后的数,然后再进行枚举算出答案。

Code

#include <bits/stdc++.h>
#define int __int128using namespace std;
using LL = long long;LL N, M;
int n, m;int C(int x, int k) {return x % 10 + x / 10 % 10 * k + x / 100 * k * k;
}int check(int x, int k) {int ans = 0, t = 1;while (x) {if (x % k > 9) {return -1;}ans += x % k * t;t *= 10;x /= k;}return ans;
}signed main() {cin.tie(0)->sync_with_stdio(false);cin >> N >> M;n = N, m = M;int mx = 10;for (int i = m; i <= 999; ++i) {int lt = 0, rt = 1e18 + 1;for (int mid; lt + 1 < rt;) {mid = lt + rt >> 1;if (C(i, mid) >= n) {rt = mid;} else {lt = mid;}}if (C(i, rt) == n) {mx = max(mx, rt);}}for (int i = 1e6; i >= mx; --i) {if (check(n, i) >= m) {LL I = i;cout << I;return 0;}}LL Mx = mx;cout << Mx;return 0;
}

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

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

相关文章

【Atcoder训练记录】AtCoder Beginner Contest 394

训练情况赛后反思 没在赛时打的,只做了签到TAT A题 统计字符串中 2 的数量,最后去掉其他的,只输出 2点击查看代码 #include <bits/stdc++.h> // #define int long long #define endl \nusing namespace std;void solve(){string s; cin>>s;int ans = 0;for(int …

DPDK收发包梳理

DPDKeal初始化 内存管理:大页,内存池 驱动开启调试信息 make config T=x86_64-native-linuxapp-gcc export EXTRA_CFLAGS=-O0 -g3 -ggdb make -j8 dpdk通过makefile编译 meson + ninja没学过,太麻烦了,可以参考dpdk17的文档,里面有介绍make编译方式。 https://doc.dpdk.or…

空气流量和空气压力参数解耦系统simulink建模与仿真

1.课题概述空气流量和空气压力参数解耦系统simulink建模与仿真,在许多系统中,空气流量(Q)和压力(P)之间存在耦合关系,这意味着改变一个参数会影响到另一个参数。通过解耦系统解决这种问题,从而提高系统的控制稳定性。2.系统仿真结果 (完整程序运行后无水印)3.核心程序…

【库】Coravel Cache缓存

Coravel 通过使高级应用程序功能(如任务/作业调度、排队、缓存、邮件(以及更多!))易于访问且易于使用,帮助开发人员快速启动并运行 .NET 应用程序。具有简单、富有表现力和直接的语法。Coravel非常简单,通过Rember来保存缓存数据,同时可以设定缓存的时长,然后通过Get来…

4.优化器 - 模型评估

优化器 - optimizer优化器就是在深度学习反向传播过程中,指引损失函数(目标函数)的各个参数往正确的方向更新合适的大小,使得更新后的各个参数损失函数(目标函数)值不断逼近全局最小优化器不计算梯度,他只是梯度的更新者,它决定了以什么样的形式更新参数如果损失函数是…

【软件开发】CMake学习笔记

【软件开发】CMake 学习笔记 CMake 是什么? 是构建系统(如 Visual Studio)的文件(如 .vcxproj .sln)的创建器,具体要生成的构建系统可以通过 CMakePresets 文件中的 generator 指定。 构建系统一般不是跨平台的,但 CMake 支持在不同的操作系统上生成不同的构建系统文件,…

Python糖尿病数据分析:深度学习、逻辑回归、K近邻、决策树、随机森林、支持向量机及模型优化训练评估选择

全文链接:https://tecdat.cn/?p=39864 原文出处:拓端数据部落公众号 分析师:Weilong Zhang 本研究旨在利用机器学习和深度学习模型对糖尿病数据进行分析和预测。通过对糖尿病数据集的读取、预处理、特征分析,运用多种机器学习算法如逻辑回归、K近邻、决策树、随机森林、支…

使用MyBatis框架时Mapper传参是否需要使用@Param注解

在使用MyBatis作为Java项目的ORM框架时,在Mapper接口中传递参数需要通过@Param注解指定参数名称,这样才能在Mapper接口对应的xml文件中引用到对应名称的参数。如果不在Mapper接口中明确使用@Param注解时将会报错:找不到指定名称的参数。 追根溯源,这要从MyBatis获取Mapper接…

关于在阿里云服务器上搭建简单的keepalived主备服务器时出现的问题

问题:在进行keepalived主备服务器配置时,仅配置了RID,状态,通讯端口,VRID,优先级,通告报文发送时间,密码认证部分,VIP。在启动服务时,发现两台设备均跳转状态为MASTER。原因:出现这问题的场景是在阿里VPS云服务器网络环境中,因为路由交换层禁用了ARP的广播限制,造…

子串分值

‌输入和初始化‌: 读取字符串 str,并从索引 1 开始存储(C++ 中字符串索引从 0 开始,但这里为了简化计算,从 1 开始)。 n 存储字符串的长度。 数组 l[i] 存储字符 str[i] 上一次出现的位置。 数组 r[i] 存储字符 str[i] 下一次出现的位置。 数组 p 用于临时存储每个字符最…

【专题】2024年新能源汽车市场年度竞争报告汇总PDF洞察(附原数据表)

原文链接: https://tecdat.cn/?p=39740 在当下快速变革的时代,新能源汽车市场正处于关键的发展十字路口。过去几年间,市场经历了一系列深刻的结构性调整,从市场份额的重新分配到消费者行为模式的显著转变,每一个变化都蕴含着巨大的市场信号。深入分析这些变化背后的数据逻…

pikachu靶场搭建教程

详细介绍了pikachu靶场的搭建,并且附有安装包需要的东西phpStudy: 链接: https://pan.baidu.com/s/1fJ-5TNtdDZGUf5FhTm245g 提取码:0278 pikachu-master: Github链接:Github 链接 链接: https://pan.baidu.com/s/1lDdlxNaa3YjhIEj-WWB3qw 提取码:0278打开 phpstudy ,…