Harbour.Space Scholarship Contest 2023-2024 (Div. 1 + Div. 2) A ~ D

比赛链接

正常枚举就行,从最后一位往前枚举,-1、-2、-3...这样

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'using namespace std;typedef pair<int, int> PII;
typedef long long ll;const int N = 1010;int a[N];void solve()
{int x, y, n;cin >> x >> y >> n;a[1] = x, a[n] = y;int res = 1;for(int i = n - 1; i >= 1; i --){a[i] = a[i + 1] - res;res ++;}if(a[1] < x){cout << -1 << endl;return;}a[1] = x;for(int i = 1; i <= n; i ++)cout << a[i] << ' ';cout << endl;
}int main()
{IOSint _;cin >> _;while(_ --){solve();}return 0;
}

 B

 第一个操作可以做到把所有在奇数位的字母任意排列以及把所有在偶数位的字母任意排列。

第二个操作,如果k是奇数时没有任何影响,只用第一种情况就能最优;如果k是偶数时,而且k又小于n,每次操作可以做到奇偶对调,就可以实现任意排序。

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'using namespace std;typedef pair<int, int> PII;
typedef long long ll;void solve()
{int n, k;cin >> n >> k;string A, B;string s;cin >> s;for(int i = 0; i < s.size(); i ++){if(i % 2)B.push_back(s[i]);else A.push_back(s[i]);}sort(A.begin(), A.end());sort(B.begin(), B.end());sort(s.begin(), s.end());if(k % 2){n = (n + 1) / 2;for(int i = 0; i < n; i ++){if(i < A.size())cout << A[i];if(i < B.size())cout << B[i];}}else cout << s;cout << endl;
}int main()
{IOSint _;cin >> _;while(_ --){solve();}return 0;
}

C

 可以先把x变成2的i次方,在这个过程中用2的i次方减,一个数一定可以由若干2的i的方组成,x到2的i次方过程中减掉数的总和也一定可以由若干2的i次方组成。

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'using namespace std;typedef pair<int, int> PII;
typedef long long ll;ll a[50];
bool st[50];void solve()
{vector<int> ans;int x;cin >> x;int l = 1, r = 32;while(l < r){int mid = l + r + 1 >> 1;if(a[mid] <= x)l = mid;else r = mid - 1;}if(a[l] == x){while(x != 1){ans.push_back(x);x >>= 1;}ans.push_back(1);cout << ans.size() << endl;for(int i = 0; i < ans.size(); i ++){cout << ans[i] << ' ';}cout << endl;return;}memset(st, false, sizeof st);while(x > a[l]){int tmp = x - a[l];int L = 1, R = 32;while(L < R){int mid = L + R + 1 >> 1;if(a[mid] <= tmp)L = mid;else R = mid - 1;}for(int i = L; i >= 0; i --){if(st[i])continue;if(x % a[i] == 0){ans.push_back(x);x -= a[i];st[i] = true;break;}}}while(x != 1){ans.push_back(x);x >>= 1;}ans.push_back(1);cout << ans.size() << endl;for(int i = 0; i < ans.size(); i ++){cout << ans[i] << ' ';}cout << endl;return;
}int main()
{IOSa[0] = 1;for(int i = 1; i <= 40; i ++)a[i] = a[i - 1] * 2;int _;cin >> _;while(_ --){solve();}return 0;
}

D

 这题有点dp那味儿了,总的来说应该是前缀和,太久没写题手生了,写了一个多小时www

看那个公式画个图可以看出来它可以将一个点往下沿等腰三角形延伸,三角形区域内的点都要转换。

可以发现最上面那层有多少个1这一层肯定就要转换多少次,转换完后看第二层也类似,第二层有多少个需要转换的点这一层就要转换多少次,所以一定需要遍历一遍,往后以此类推。所以其实就是从第一层到最后一层遍历一遍所有点,遇到一个需要执行操作的点答案就加一。

现在复杂度已经到达n方了,我们需要想一个O(1)或者logn的算法来计算每个点需不需要转换,然后想到了前缀和,然后加一个额外的二维数组来统计每个点上方的等腰三角形区域内有多少个点被执行过操作。

然后前缀和转化成斜着的,同样是记录有多少个点被执行过操作。一个从左上到右下的斜前缀和数组,一个从右上到左下的斜前缀和数组。

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'using namespace std;typedef pair<int, int> PII;
typedef long long ll;const int N = 3010;int n;
char s[N][N];
int a[N][N], dg[N][N], udg[N][N];void solve()
{cin >> n;for(int i = 0; i <= n + 1; i ++)for(int j = 0; j <= n + 1; j ++)a[i][j] = dg[i][j] = udg[i][j] = 0;for(int i = 1; i <= n; i ++)cin >> s[i] + 1;int ans = 0;for(int i = 1; i <= n; i ++){for(int j = 1; j <= n; j ++){a[i][j] = a[i - 1][j] + dg[i - 1][j - 1] + udg[i - 1][j + 1];int tmp = a[i][j] + s[i][j] - '0';if(tmp % 2){ans ++;a[i][j] ++;dg[i][j] ++;udg[i][j] ++;}dg[i][j] += dg[i - 1][j - 1];udg[i][j] += udg[i - 1][j + 1];}}cout << ans << endl;
}int main()
{IOSint _;cin >> _;while(_ --){solve();}return 0;
}

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

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

相关文章

初识 Redis

初识 Redis 1 认识NoSQL1.1 结构化与非结构化1.2 关联和非关联1.3 查询方式1.4. 事务1.5 总结 2 Redis 概述2.1 应用场景2.2 特性 3 Resis 全局命令4 Redis 基本数据类型4.1 String4.1.1 常用命令4.1.2 命令的时间复杂度4.1.3 使用场景 4.2 Hash4.2.1 常用命令4.2.2 命令的时间…

5G+智慧交通行业解决方案[46页PPT]

导读&#xff1a;原文《5G智慧交通行业解决方案[46页PPT]》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 喜欢文章&#xff0c;您可以点赞评论转发本文&#xff0c;…

二级MySQL(八)——删除表格数据

1、删除特定的数据记录 DELETE FROM tb_student WHERE studentName 黄涛; 删除前&#xff1a; 删除后&#xff1a; 2、带子查询的删除 DELETE FROM tb_student WHERE studentNo (SELECT studentNo FROM tb_student_copy WHERE studentName 孙新); 删除前&#xff1a; 删…

电商版面设计之优惠券设计

1、画一个矩形---最快的方法&#xff0c;提前写好 2、ALT复制矩形图层 3、提前把优惠券的文案准备好 4、改一下字体---72 5、字体改成12号字体 6、上面对齐选择第二个去做&#xff0c;最上方 7、后面那个就是门槛 8、用Alt复制4个 9、改字就行 10、看见不错的优惠劵设计可以参…

VMware ESXi 7.0 优化VMFSL磁盘占用与系统存储大小

文章目录 VMware ESXi 7.0 优化VMFSL磁盘占用与系统存储大小引言创建ESXi7.0可启动 U 盘结果检查VMware ESXi 7.0 优化VMFSL磁盘占用与系统存储大小 引言 本文讲述了在 J1900平台上安装ESXi7.0时减少 VMFSL 分区占用的说明, 通常这来说些主机内置的磁盘空间非常小, 采用默认安…

npm和yarn的区别?

文章目录 前言npm和yarn的作用和特点npm和yarn的安装的机制npm安装机制yarn安装机制检测包解析包获取包链接包构建包 总结后言 前言 这一期给大家讲解npm和yarn的一些区别 npm和yarn的作用和特点 包管理&#xff1a;npm 和 yarn 可以用于安装、更新和删除 JavaScript 包。它们提…

STM32 CAN 波特率计算分析

这里写目录标题 前言时钟分析时钟元到BIT 前言 CubeMX中配置CAN波特率的这个界面刚用的时候觉得非常难用&#xff0c;怎么都配置不到想要的波特率。接下来为大家做一下简单的分析。 时钟分析 STM32F4的CAN时钟来自APB1 在如下界面配置&#xff0c;最好配置为1个整一点的数。…

ChatGPT在医疗系统的应用探索动态

注意&#xff1a;本信息仅供参考&#xff0c;发布该内容旨在传递更多信息的目的&#xff0c;并不意味着赞同其观点或证实其说法。 生成式人工智能&#xff0c;如OpenAI开发的ChatGPT&#xff0c;被认为是可以颠覆医疗行业的工具。尽管该技术刚刚起步&#xff0c;但已有许多医…

在 macOS 中安装 TensorFlow 1g

tensorflow 需要多大空间 pip install tensorflow pip install tensorflow Looking in indexes: https://pypi.douban.com/simple/ Collecting tensorflowDownloading https://pypi.doubanio.com/packages/1a/c1/9c14df0625836af8ba6628585c6d3c3bf8f1e1101cafa2435eb28a7764…

设计模式--适配器模式(Adapter Pattern)

一、什么是适配器模式&#xff08;Adapter Pattern&#xff09; 适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许将一个类的接口转换成客户端所期望的另一个接口。适配器模式主要用于解决不兼容接口之间的问题&#xff0c;使得原本…

深度学习10:Attention 机制

目录 Attention 的本质是什么 Attention 的3大优点 Attention 的原理 Attention 的 N 种类型 Attention 的本质是什么 Attention&#xff08;注意力&#xff09;机制如果浅层的理解&#xff0c;跟他的名字非常匹配。他的核心逻辑就是「从关注全部到关注重点」。 Attention…

计算机丢失msvcp110.dll是什么意思?有哪些方法可以修复

今天&#xff0c;我将和大家一起探讨一个关于计算机的问题——“计算机丢失msvcp110.dll是什么意思&#xff1f;有哪些方法可以修复&#xff1f;”这个问题在我们的日常生活中非常常见&#xff0c;尤其是在使用Windows系统的过程中&#xff0c;可能会遇到这样的问题。那么&…