第二十四周代码(跟着罗勇军老师刷题)

2024/03/24        周一

合根植物

题目链接

【参考代码】

#include <iostream>
using namespace std;const int N = 1e6+1;
int a[N];int find(int index)
{if(a[index] == index)return index;return a[index] = find(a[index]);
}int main()
{// 请在此输入您的代码int m, n;cin>>m>>n;int capacity = m*n;for(int i=1; i<=capacity; i++){a[i] = i;}int operation;cin>>operation;for(int i=0; i<operation; i++){int x1, x2, boss1, boss2;cin>>x1>>x2;boss1 = find(x1);boss2 = find(x2);if(boss1 != boss2)a[boss1] = boss2;}int result = 0;for(int i=1; i<=capacity; i++){if(a[i] == i)result++;}cout << result << endl;return 0;
}

二进制王国【3.23算法赛补题】

题目链接

【参考代码】

20%样例

#include <bits/stdc++.h>
using namespace std;int main()
{// 20%通过map<string, int> mp;int n;cin>>n;for(int i=0;i<n;i++){string s = "";int cnt = 0;cin>>s;for(int j=0;j<s.size();j++){cnt += s[j];}mp[s] = cnt;}for(map<string, int>::iterator it = mp.begin(); it != mp.end(); it++){cout << (*it).first ;}return 0;
}

100%样例

我靠这么简单!

#include <bits/stdc++.h>
using namespace std;const int N = 2e5;
string s[N];bool compare(string a, string b)
{return a + b < b + a;
}int main()
{//我靠这么简单!int n;cin>>n;for(int i=0;i<n;i++){cin>>s[i];}sort(s, s+n, compare);for(int i=0;i<n;i++){cout << s[i];}
}

2024/03/27        周三

修改数组

题目链接

【参考代码】

hash做法

#include <bits/stdc++.h>
using namespace std;const int N = 1e6;int main()
{// hash做法int n;int hash[N];cin>>n;for(int i=0;i<n;i++){int x;cin>>x;while(hash[x]) //重复数字{hash[x]++;x += hash[x]-1;}hash[x]++;cout << x << ' ';}return 0;
}

使用并查集的做法,说实话真的做的时候思路比较难联系到并查集

并查集思路:

1.初始化并查集

2.对于每一个元素

*如果不属于并查集,那么输出该元素,找祖先元素其实就是初始化的自己,同时指向祖先节点x+1即最大

未使用的数字

*如果属于并查集,直接在集合中找到祖先节点,即当前数字应该替换的最大元素,直接输出就是答案

3.技巧

3.1 并查集维护当前最大未使用的元素,对于重复元素查找祖先元素即可快速实现降重

4.时间复杂度O(N+M)

【参考代码】

/*
1.初始化并查集
2.对于每一个元素
*如果不属于并查集,那么输出该元素,找祖先元素其实就是初始化的自己,同时指向祖先节点x+1即最大
未使用的数字
*如果属于并查集,直接在集合中找到祖先节点,即当前数字应该替换的最大元素,直接输出就是答案
3.技巧
3.1 并查集维护当前最大未使用的元素,对于重复元素查找祖先元素即可快速实现降重
4.时间复杂度O(N+M)
*/
#include<bits/stdc++.h>
using namespace std;const int N = 1e6 + 10;
int fa[N]; //并查集存储当前 “节点族” 最大还有哪个节点未用上
int n;int find(int x)
{if(fa[x] != x) fa[x] = find(fa[x]); //向上查找祖先节点,同时进行 “路经压缩“return fa[x]; //返回最大的可以用的节点
}int main()
{cin >> n;//1.初始化并查集for(int i = 0; i<N; i++) //注意此时,并查集初始化取决于数组中元素A的大小Nfa[i] = i;//2.对于每个节点,加入并查集,更新最大未使用的元素int x;for(int i = 0; i<n; i++){scanf("%d", &x);x = find(x); //找到当前最大未使用的元素printf("%d ", x);fa[x] = x + 1; //当前节点已经用过了 -> 往后偏移 -//如果是最新的,那么会直接输出当前元素,反之,输出之前记录的可以使用的最大元素}return 0;
}

2024/03/28        周四

更小的数

题目链接

【参考代码】

40%样例通过,原因超时。

#include <bits/stdc++.h>
using namespace std;int main()
{// 40%通过,超时了int ans = 0;string s;cin>>s;for(int i=0;i<s.size();i++){for(int j=i+1; j<s.size(); j++){string temporary = s;reverse(temporary.begin()+i, temporary.begin()+j+1);//为什么要加1,因为右区间不包含if(temporary < s)ans++;}}cout << ans << endl;return 0;
}

100%通过,罗勇军老师博客代码结果有误

#include <bits/stdc++.h>
using namespace std;对于每个子串,比较它的首尾字符s[i]和s[j],得到状态转移方程。(1)若s[i] > s[j],说明反转后的子串肯定小于原子串,符合要求,赋值dp[i][j] = 1。(2)若s[i] < s[j],说明反转后的子串肯定大于原子串,赋值dp[i][j] = 0。(3)若s[i] = s[j],需要继续比较s[i+1]和s[j-1],有dp[i][j] = dp[i+1][j-1]。int f[5001][5001];int main()
{int ans = 0;string s;cin>>s;for(int len=2; len<=s.size(); len++){for(int l=0; l+len-1<s.size(); l++){int r = l+len-1;if(s[l] < s[r])f[l][r] = 0;            if(s[l] > s[r])f[l][r] = 1;if(s[l] == s[r])       f[l][r] = f[l+1][r-1];  if(f[l][r] == 1)ans++;}}cout << ans << endl;
}

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

项目Weblogic切换Tomcat-包含数据源配置

目录 准备工作 修改Tomcat配置 Tomcat数据源加密 解密 加密 部署 问题解决 1.执行启停脚本时候&#xff0c;爆出&#xff1a;Cannot find ./catalina.sh The file is absent or does not have... 2.org.apache.catalina.core.StandardService.initInternal Failed to …

Tomcat项目创建 以及 在IDEA当中集成Tomcat

一: 有关Tomcat的WEB项目创建 TOMCAT项目的创建有两种方式, 第一种是利用骨架进行创建, 第二种是利用填补进行相应的创建, 不适用骨架进行创建 ,在这里主要聊第二种 (使用IDEA版本为2023) 1. 创建MAVEN项目, 非骨架形式 2.在相应的pom文件当中设置打包方式 为 war包的打包形…

推荐!00 后都在用的6个超实用微信小程序,又能少装N个app啦

在这个手机内存永远不够用的年代&#xff0c;每一次下载新app都像是在和手机进行一场心理博弈——不下载就out&#xff0c;下载了又怕手机喘不过气来。好在&#xff0c;微信小程序如同一股清流&#xff0c;轻巧地滑入我们的生活&#xff0c;解救了那些对“存储空间不足”弹窗深…

时序数据库IoTDB:功能详解与行业应用

一文读懂时序数据库 IoTDB。 01 为什么需要时序数据库 解释时序数据库前&#xff0c;先了解一下何谓时序数据。 时序数据&#xff0c;也称为时间序列数据&#xff0c;是指按时间顺序记录的同一统计指标的数据集合。这类数据的来源主要是能源、工程、交通等工业物联网强关联行业…

鸿蒙开发之ArkTs开发布局之线性布局(Row/Column)

组件按照布局的要求依次排列&#xff0c;构成应用的页面。在声明式UI中&#xff0c;所有的页面都是由自定义组件构成&#xff0c;开发者可以根据自己的需求&#xff0c;选择合适的布局进行页面开发。 布局指用特定的组件或者属性来管理用户页面所放置UI组件的大小和位置。在实际…

SI24R2E:智能电子学生卡2.4GHz考勤方案

今年年初教育部发布的《关于加强中小学生手机管理工作的通知》中提出&#xff0c;学生手机有限带入校园&#xff0c;原则上不得将个人手机带入校园&#xff0c;禁止带入课堂&#xff1b;应设立校内公共电话、建立班主任沟通热线、探索使用具备通话功能的电子学生证或提供其他家…

Autosar-Mcal配置详解(免费)-MCU

3.6.1创建、配置RAM 1)配置MCU通用配置项 MCU的通用配置项可参考以下配置&#xff1a; 各配置项的说明如下&#xff1a; Wake Up Factor Clear Isr: 是否在唤醒的中断服务函数中清除Wakeup Factor Wake Up Factors Clear Centralised: 是否在shutdown前集中集中清除Wakeu…

统信 UOS V20 一键安装 Oracle 12CR2(220118)单机版

Oracle 一键安装脚本&#xff0c;演示 统信 UOS V20 一键安装 Oracle 12CR2&#xff08;220118&#xff09;单机版过程&#xff08;全程无需人工干预&#xff09;&#xff1a;&#xff08;脚本包括 ORALCE PSU/OJVM 等补丁自动安装&#xff09; ⭐️ 脚本下载地址&#xff1a;…

C#开发者必备!快速掌握onnxruntime实现YOWOv2视频动作检测技术!

C#开发者必备&#xff01;快速掌握onnxruntime实现YOWOv2视频动作检测技术&#xff01; 目录 介绍 效果 模型信息 项目 代码 Form1.cs YOWOv2.cs 下载 介绍 YOWOv2: A Stronger yet Efficient Multi-level Detection Framework for Real-time Spatio-temporal Action…

代码随想录笔记|C++数据结构与算法学习笔记-栈和队列(〇)|stack、queue、单调队列和优先级队列(priority_queue)、大顶堆和小顶堆

文章目录 stack容器stack 基本概念常用接口构造函数赋值操作数据存取大小操作 queue容器queue常用接口构造函数&#xff1a;赋值操作数据存取大小操作 单调队列定义实现代码实现 基本应用一&#xff1a;滑动窗口思路与算法 优先级队列定义大顶堆&#xff08;最大堆&#xff09;…

webserver--基于小根堆实现定时器,关闭超时的非活跃连接

计算机在工作时&#xff0c;我们打开多个网页&#xff0c;但是不使用的时候&#xff0c;系统自动会进入休眠模式&#xff0c;这样会更加省电&#xff0c;节省资源。同样的&#xff0c; 服务器在工作时&#xff0c;建立好连接后&#xff0c;即使你不用&#xff0c;他也会一直为你…

第22篇:异步复位D触发器

Q&#xff1a;本篇我们在基本D触发器中添加一个复位控制信号来实现带异步复位功能的D触发器。 A&#xff1a;带复位控制信号&#xff08;RST&#xff09;的D触发器&#xff0c;当RST为0时&#xff0c;输出Q为0&#xff1b;当RST为1时&#xff0c;Q取决于D和CLK的输入。 带复位…

MYSQL数字函数实操宝典:场景化SQL语句一网打尽

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 MYSQL数字函数&#xff1a;不可不知的数据处理利器 文章目录 Part 1: 准备 &#x…

python pytz是什么

pytz模块常用于时区的转换&#xff0c;常常配合datetime一起使用。我们知道datetime除了data方法生成的时间是没有时区概念&#xff0c;其他如time、datetime等都是有时区概念&#xff0c;即指定了tzinfo信息。 >>> import datetime >>> datetime.datetime.n…

Nomad Web更新没有最快只有更快

大家好&#xff0c;才是真的好。 很长时间没介绍运行在浏览器中的Notes客户端即Nomad Web更新情况。 不用安装&#xff0c;直接使用&#xff0c;还可以完美地兼容适应各种操作系统&#xff0c;Nomad Web一定是Notes/Domino产品现在和将来重点发展的用户访问模式。 不过&…

comfyui 插件

Stable Diffusion ComfyUI 基础教程&#xff08;一&#xff09; ComfyUI安装与常用插件 - 知乎最近发现很多人在搬运我的文章&#xff0c;&#xff0c;&#xff0c;&#xff0c;那我也发 前言&#xff1a;相信大家玩 Stable Diffusion&#xff08;以下简称SD&#xff09;都是用…

超全面!和弦图(Chord diagram) 的绘制方法汇总~~

今天这篇推文给大家介绍一下和弦图(Chord diagram) 的绘制方法&#xff0c;具体包括的内容如下&#xff1a; 和弦图(Chord diagram)简介 和弦图(Chord diagram)绘制方法(RPython) 更多详细的数据可视化教程&#xff0c;可订阅我们的店铺课程&#xff1a; 和弦图(Chord di…

5.11 Vue配置Element UI框架

Vue配置Element UI框架 目录一、 概要二、 开发前准备1. 搭建Vue框架 三、 安装 Element UI1. 引入 Element UI 依赖2. 在 mian.js 中引入 Element UI 和相关样式&#xff1a;3. 按需引入(非必须, 可忽略)4. 简单构建一个主页面 目录 一、 概要 Element UI 是一个基于 Vue.js …

Java学习记录第十三天

面向对象编程 核心思想就是OOP&#xff08;面向对象编程&#xff09; 面向过程&面向对象 面向过程思想 步骤清晰简单&#xff0c;第一步做什么&#xff0c;第二步做什么... 面对过程适合处理一些较为简单的问题 面向对象思想 物以类聚&#xff0c;分类的思维模式&…