20241006

news/2024/10/7 10:57:47/文章来源:https://www.cnblogs.com/libohan/p/18449822

Back to School '24 P1 - Kicking

按照题意模拟即可

#include <bits/stdc++.h>using namespace std;#define int long longconst int N = 1e5 + 5;int n, m, k;char c;vector<int> sum[2][N];vector<int> a[N];signed main() {cin >> n >> m >> k;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m + 1; j++) {sum[0][i].push_back(0);sum[1][i].push_back(0);}}for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {cin >> c;a[i].push_back(c);sum[0][i][j] = sum[0][i][j - 1] + (c == 'A');sum[1][i][j] = sum[1][i][j - 1] + (c == 'B');}}for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {if (a[i][j - 1] == '.') {cout << ".";}else if (a[i][j - 1] == 'A') {if (sum[1][i][min(j + k, m)] - sum[1][i][j - 1] > 0) {cout << "N";}else cout << "Y";}else {if (sum[0][i][j] - sum[0][i][max(0ll, j - k - 1)] > 0) {cout << "N";}else cout << "Y";}}cout << "\n";}return 0;
}

Back to School '24 P2 - Cheating

注意到一个重要的性质,就是 \(a_i\) 为递增序列,那么我们会发现,他改的区间一定是上一个区间后面的,模拟即可

#include <bits/stdc++.h>using namespace std;#define int long longconst int N = 1e6 + 5;int n, m, a[N], b[N], ans[N];signed main() {cin >> n >> m;for (int i = 1; i <= n; i++) {cin >> a[i];}for (int i = 1; i <= n; i++) {cin >> b[i];}int last = 1;for (int i = 1; i <= n; i++) {if (last + b[i] - 1 <= m) {ans[last] += a[i];ans[last + b[i]] -= a[i];last += b[i];if (last == m + 1) {last = 1;}}else {ans[last] += a[i];ans[m + 1] -= a[i];b[i] -= (m - last + 1);ans[1] += a[i];ans[min(b[i] + 1, last)] -= a[i];last = min(b[i] + 1, last);}}for (int i = 1; i <= m; i++) {ans[i] += ans[i - 1];}for (int i = 1; i <= m; i++) {cout << ans[i] << " ";}return 0;
}

Back to School '24 P3 - Tournament

我们可以发现,他合并答案是简直和线段树一摸一样,所以直接线段树维护即可

#include <bits/stdc++.h>using namespace std;#define int long longconst int N = (1 << 18) + 5;struct node {int maxi, ans;void clean() {maxi = ans = 0;}
}tr[N * 4];int n, p, a[N];bool vis[N];void build(int i, int l, int r) {if (l == r) {if (l == 1) {tr[i].maxi = p, tr[i].ans = 0;}else tr[i].maxi = a[l - 1], tr[i].ans = 0;return ;}int mid = (l + r) >> 1;build(i * 2, l, mid);build(i * 2 + 1, mid + 1, r);tr[i].ans = tr[i * 2].ans + tr[i * 2 + 1].ans + (tr[i * 2].maxi - tr[i * 2 + 1].maxi) * (tr[i * 2].maxi - tr[i * 2 + 1].maxi);tr[i].maxi = max(tr[i * 2].maxi, tr[i * 2 + 1].maxi);
}void modify(int i, int l, int r, int p, int x) {if (l == r) {tr[i].maxi = x;tr[i].ans = 0;return ;}int mid = (l + r) >> 1;if (mid >= p) modify(i * 2, l, mid, p, x);else modify(i * 2 + 1, mid + 1, r, p, x);tr[i].ans = tr[i * 2].ans + tr[i * 2 + 1].ans + (tr[i * 2].maxi - tr[i * 2 + 1].maxi) * (tr[i * 2].maxi - tr[i * 2 + 1].maxi);tr[i].maxi = max(tr[i * 2].maxi, tr[i * 2 + 1].maxi);
}signed main() {cin >> n;for (int i = 1; i < n; i++) {cin >> a[i];vis[a[i]] = true;}for (int i = 1; i <= n; i++) {if (!vis[i]) {p = i;}}build(1, 1, n);for (int i = 1; i <= n; i++) {cout << tr[1].ans << " ";if (i < n) {modify(1, 1, n, i, a[i]);modify(1, 1, n, i + 1, p);}}return 0;
}

Back to School '24 P4 - Candidates

我们假如考虑每一种因素,他一定要满足在每个区间内是递增的,用 \(set\) 维护,做一个类似于拓扑排序的即可

#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 5;int n, k, a[N], cnt[N];vector<int> r[N], v[N], ans;bool vis[N];priority_queue<int, vector<int>, greater<int> > q;int main() {ios::sync_with_stdio(0);cin.tie(0);cin >> n >> k;for (int i = 1; i <= n; i++) {cin >> a[i];r[i].push_back(0);}for (int i = 1; i <= n; i++) {for (int j = 1, c; j <= k; j++) {cin >> c;r[i].push_back(c);}}for (int j = 1; j <= k; j++) {for (int i = 1; i < n; i++) {if (r[a[i]][j] < r[a[i + 1]][j]) {cnt[j]++;vis[i] = true;v[i].push_back(j);}}}for (int i = 1; i <= k; i++) {if (!cnt[i]) {q.push(i);}}while (!q.empty()) {int cur = q.top();q.pop();ans.push_back(cur);vector<int> tmp;for (int i = 1; i < n; i++) {if (r[a[i]][cur] > r[a[i + 1]][cur] && vis[i]) {tmp.push_back(i);}}for (auto cur : tmp) {for (auto u : v[cur]) {cnt[u]--;if (!cnt[u]) {q.push(u);}}vis[cur] = false;v[cur].clear();}}for (int i = 1; i <= k; i++) {if (cnt[i]) {cout << "-1";return 0;}}for (auto cur : ans) {cout << cur << " ";}return 0;
}

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

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

相关文章

智慧园区管理系统原型

智慧园区管理系统的构建是一个复杂而系统的工程,它融合了信息化、AI、物联网等多种先进技术,旨在提升园区的管理效率、服务质量以及企业运营效率。 一、明确系统目标和需求 需求收集与分析:首先,需要对园区的实际需求进行全面分析,包括园区类型(如产业园区、办公园区、住…

POI导出excel文件加水印

百分百能用,我用的POI版本是5.2.3,效果如下import lombok.extern.slf4j.Slf4j; import org.apache.poi.openxml4j.opc.PackagePartName; import org.apache.poi.openxml4j.opc.PackageRelationship; import org.apache.poi.openxml4j.opc.TargetMode; import org.apache.poi.xs…

FredNormer: 非平稳时间序列预测的频域正则化方法

时间序列预测是一个具有挑战性的任务,尤其是在处理非平稳数据时。现有的基于正则化的方法虽然在解决分布偏移问题上取得了一定成功但仍存在局限性。这些方法主要在时间域进行操作,可能无法充分捕捉在频域中更明显的动态模式,从而导致次优的结果。 FredNormer论文的研究目的主要…

江苏省第二届数据安全技术应用职业技能竞赛初赛WP

一、数据安全解题赛1、ds_0602解题思路题目让我们获取加密文件中的原始数据,解密后提交第六行第二列数据,下载附件,发现里面有两个文件,其中一个是“.enc”结尾,那这里我们得先简单了解一下“.enc”结尾的是什么类型的文件。简单来说“.enc”结尾的文件通常是经过加密的文…

java之使用CompletableFuture入门2

Java 17 -序章 本文介绍用过的 allOf、anyOf 函数的用法。allOf 函数原型两点: 1、没有返回值。 2、参数 cfs 中 任何一个 都不能是 null。anyOf 函数原型两点: 1、有返回值,为 Object。 2、参数 cfs 中 任何一个 都不能是 null。allOf 测试意图: 多个任务正常执行。ben发布…

VMware Aria Operations for Logs 8.18 发布,新增功能概览

VMware Aria Operations for Logs 8.18 发布,新增功能概览VMware Aria Operations for Logs 8.18 - 集中式日志管理 请访问原文链接:https://sysin.org/blog/vmware-aria-operations-for-logs/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org集中式日志管理 V…

VMware Aria Operations for Networks 6.13 发布,新增功能概览

VMware Aria Operations for Networks 6.13 发布,新增功能概览VMware Aria Operations for Networks 6.13 - 网络和应用监控工具 请访问原文链接:https://sysin.org/blog/vmware-aria-operations-for-networks/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org…

读数据工程之道:设计和构建健壮的数据系统01数据工程概述

数据工程概述1. 数据工程 1.1. 自从公司开始使用数据做事,数据工程就以某种形式存在了1.1.1. 预测性分析、描述性分析和报告1.2. 数据工程师获取数据、存储数据,并准备数据供数据科学家、分析师和其他人使用 1.3. 数据工程是系统和流程的开发、实施和维护,这些系统和流程接收…

安装socks5的一次尝试

1. 下载并自动配置socks5sudo wget https://ap-guangzhou-1257892306.cos.ap-guangzhou.myqcloud.com/asi/httpsocks5.sh && sh httpsocks5.sh 执行下载脚本 wget —no-check-certificate https://raw.github.com/Lozy/danted/master/install.sh -O install.sh执行安装…

形函数的构造7

形函数构造 构造单元1的一般近似函数 \(\overline{V(x)}^{(1)}\),由于该单元只有两个节点\(x_1\)和\(x_2\),我们选择包含两个参数\(\alpha_1\)和\(\alpha_2\)的近似方程 \[\overline{V(x)}^{(1)}=\alpha_1+\alpha_2\times x \]令试函数与\(V(x)\)在节点\(x_1\)和\(x_2\)处相等…

等参单元4

在自然坐标系中 , \(\xi_2=1\)和 \(\xi_2=1\),在物理坐标系中为 \(x_1\) 和\(x_2\),相应的节点位移为\(u_1\) 和\(u_2\) 。 在自然坐标系 下,单元形函数为 \[N_{1}(\xi)=\frac{1}{2}(1-\xi)\\N_{2}(\xi)=\frac{1}{2}(1+\xi) \] 利用形函数,在自然坐标系下单元内的任一点 \(…