刷题记录(2023-08-12)

news/2024/10/19 3:25:23/

1. 小美的排列询问

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

AC代码:

#include <iostream>
#include <vector>
using namespace std;int main() {int n;cin >> n;vector<int> nums(n);int a, b;for (int i = 0; i < n; i++) {cin >> nums[i];}cin >> a >> b;for (int i = 0; i < n; i++) {if (nums[i] == a) {if (i - 1 > 0 && nums[i - 1] == b) {cout << "Yes";return 0;}if (i + 1 < n && nums[i + 1] == b) {cout << "Yes";return 0;}}}cout << "No";return 0;
}
// 64 位输出请用 printf("%lld")

在这里插入图片描述

2. 小美走公路

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
AC代码:

#include <iostream>
#include <vector>
using namespace std;int main() {int n;cin >> n;vector<int> lenRoad(n);for (int i = 0; i < n; i++) {cin >> lenRoad[i];}int x, y;cin >> x >> y;if (x > y) {swap(x, y);}long len1 = 0;long sumLen = 0;for (int i = 0; i < n; i++) {sumLen += lenRoad[i];if (i >= x - 1 && i < y - 1) {len1 += lenRoad[i];}}long len2 = sumLen - len1;cout << min(len1, len2);}
// 64 位输出请用 printf("%lld")

在这里插入图片描述

3. 小美的蛋糕切割

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

#include <iostream>
#include <vector>
using namespace std;int main() {int n, m;cin >> n >> m;vector<vector<int>> cakes(n, vector<int>(m));vector<long> rows(n);vector<long> cols(m);for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cin >> cakes[i][j];rows[i] += cakes[i][j];cols[j] += cakes[i][j];}}for (int i = 1; i < n; i++) {rows[i] += rows[i - 1];}for (int j = 1; j < m; j++) {cols[j] += cols[j - 1];}long minVal1 = 0x3f3f3f3f;for (int i = 0; i < n - 1; i++) {int disVal = abs(rows[n - 1] - rows[i] - rows[i]);if (minVal1 > disVal) {minVal1 = disVal;}// else{//     break;// }}long minVal2 = 0x3f3f3f3f;for (int j = 0; j < m - 1; j++) {int disVal = abs(cols[m - 1] - cols[j] - cols[j]);if (minVal2 > disVal) {minVal2 = disVal;}// else{//     break;// }}cout << min(minVal1, minVal2);return 0;
}
// 64 位输出请用 printf("%lld")

有用例没过(后来发现是 1 0 10 10^{10} 1010,会超int范围,应该换成long的):

在这里插入图片描述

4. 小美的字符串变换

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

#include <iostream>
#include <string>
#include <vector>
using namespace std;class UFSets {
public:vector<int> vec;UFSets(int sz) {vec = vector<int>(sz, -1);}int Find(int x) {while (vec[x] > 0)x = vec[x];return x;}bool Union(int root1, int root2) {int r1 = Find(root1);int r2 = Find(root2);if (r1 == r2) {return false;}if (vec[r1] < vec[r2]) {vec[r2] = vec[r1] + vec[r2];vec[r1] = r2;}else {vec[r1] = vec[r1] + vec[r2];vec[r2] = r1;}return true;}
};int main() {int n;cin >> n;string str;cin >> str;int minNumSets = 0x3f3f3f3f;// x=1 与 y=1效果一致,因此y直接从2开始就好了for (int x = 1; x < n / 2; x++) {if (n % x == 0) {int y = n / x;UFSets ufs(n);for (int i = 0; i < n; i++) {int posX = i / y;int posY = i % y;// 上边if (posX - 1 >= 0 && str[(posX-1)*x+posY] == str[i]) {// 合并ufs.Union((posX - 1) * x + posY, i);}// 左边if (posY - 1 >= 0 && str[posX * x + posY - 1] == str[i]) {// 合并ufs.Union(posX * x + posY - 1, i);}}// 检查ufs中的集合数量int numSets = 0;for (int i = 0; i < ufs.vec.size(); i++) {if (ufs.vec[i] < 0) {numSets++;}}if (numSets < minNumSets) {minNumSets = numSets;}}}cout << minNumSets;return 0;
}
// 64 位输出请用 printf("%lld")

这个边界条件有点问题,后来改了,但也只过了20% = =

在这里插入图片描述

5. 小美的树上染色

在这里插入图片描述

在这里插入图片描述

#include <iostream>
#include <vector>
#include <math.h>
using namespace std;struct Node {int val;bool color;
};int main() {int n;cin >> n;vector<Node> nodes(n);for (int i = 0; i < n; i++) {cin >> nodes[i].val;nodes[i].color = false;}int a, b;int res = 0;for (int i = 0; i < n - 1; i++) {cin >> a >> b;if (!nodes[a].color && !nodes[b].color) { // 两个节点都是白色int sq = sqrt(nodes[a].val * nodes[b].val);if (sq * sq == nodes[a].val * nodes[b].val) {res += 2;nodes[a].color = true;nodes[b].color = true;}}}cout << res;
}
// 64 位输出请用 printf("%lld")

只过了10%

在这里插入图片描述


http://www.ppmy.cn/news/1026392.html

相关文章

使用CST仿真软件完成单站雷达目标RCS仿真

第一步&#xff1a;新建模版 第二步&#xff1a;选择微波与射频/光学应用 第三步&#xff1a;选择雷达应用 第四步&#xff1a;选择单站雷达静态RCS 第五步&#xff1a;选择小目标工作流。&#xff08;这里的小目标要求小于10倍波长&#xff0c;否则需要选大目标工作流&#x…

多态性说明

多态 多态性多态性类型描述编译时多态和运行时多态的差异go 语言多态性 多态性 多态性类型描述 多态性是面向对象编程中的一个重要概念&#xff0c;它允许不同的对象通过相同的接口表现出不同的行为&#xff0c;从而实现更加灵活和可扩展的代码结构。多态性有助于降低代码的耦…

5.2 互联网通信安全

数据参考&#xff1a;CISP官方 目录 一、什么是互联网通信安全二、为什么要关注互联网通信安全三、电子邮件应用安全四、即时通讯应用安全 一、什么是互联网通信安全 1、互联网通信应用的概念 通信的进化史 互联网通信技术&#xff08;OSI七层模型&#xff09; 互联网应…

Centos操作系统新安装的Python3中安装mysqlclient库

问题简介&#xff1a; mysqlclient 是python中的一个连接MySQL数据库的重要的三方库&#xff0c;但是在centos中使用pip3 install mysqlclient 方法安装一直报错&#xff0c;经过两天时间的排查,终于找到了解决问题的方法。 [rootd3acd2b8211d /]# pip3 install mysqlclient Co…

nacos 403错误

403错误 2023-08-12 18:04:55,418 [main] ERROR [com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder:106] [trace,span,parent] - get data from Nacos error,dataId:gateway-server.yaml, com.alibaba.nacos.api.exception.NacosException: <html><body&…

C++学习第八天----枚举

1.设置枚举量的值 第一&#xff0c;使用赋值运算符显示地设置枚举量的值&#xff1b; 第二&#xff0c;指定的值必须是整数&#xff0c;但可以只显示地定义其中一部分枚举量的值&#xff1b; 第三&#xff0c;如果没有进行赋值&#xff0c;那么默认第一个枚举量的值是0&#xf…

shell脚本开发

shell脚本语言属于弱类型的语言&#xff0c;无需声明变量类型&#xff0c;直接定义使用 shell语言定义的变量&#xff0c;数据类型默认都是字符串类型 调用历史记录命令&#xff1a;&#xff01; 历史记录id

MySQL(数据分组-GROUP BY、HAVING子句、联合查询、查询结果限定、通配符)

目录 分组&#xff1a; GROUP BY子句的真正作用&#xff1a; 分组函数&#xff1a; 分组函数重要规则&#xff1a; HAVING子句 HAVING与WHERE的区别 MySQL 多行数据合并 GROUP_CONCAT 联合查询 查询结果限定 MySQL中的通配符&#xff1a; 分组&#xff1a; 把该列具…