自己的网站怎么做的/谷歌自然排名优化
1🐋🐋史莱姆融合(钻石;并查集)
时间限制:1秒
占用内存:128M
🐟题目描述
🐟题目思路
这道题目使用并查集,同一集合的所有元素的最顶上的祖父节点是统一的。这里记录每个集合的最左端元素(最顶上的祖父节点)和最右端元素,便于集合更新。
MT3052 史莱姆融合_哔哩哔哩_bilibili
🐟代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int n,fa[N],so[N],nxt[N];//集合最左端fa,集合最右端so,下一个元素nxt
int find(int x) {return x==fa[x]?x:(fa[x]=find(fa[x]));}//找集合最左端元素
void merge(int i,int j)//集合合并
{int x=find(i),y=find(j);//两个集合的最左端if(x!=y){nxt[so[x]]=y;//第一个集合的最右端的下一个元素就是第二个集合的最左端元素fa[y]=x;//更新最左端so[x]=so[y];//更新最右端}
}
int main( )
{int x,y;cin>>n;for(int i=1;i<=n;i++) fa[i]=so[i]=i;for(int i=0;i<n-1;i++){cin>>x>>y;merge(x,y);}for(int i=find(1);i;i=nxt[i]) cout<<i<<" ";return 0;
}
2🐋🐋区间最小值(钻石;ST表)
时间限制:1秒
占用内存:128M
🐟题目描述
🐟题目思路
ST表用于解决区间最值问题,基于分治和倍增思想。
-
ST表中定义了一个二维数组mn[N] [M],mn[i] [j]表示区间[i, i + 2^j + 1]内的最大值
-
根据倍增思想,给出状态转移方程mn[i] [j] = max(mn[i] [j - 1], mn[i + 2^j - 1^] [j - 1])
ST表详解推荐:ST表详解-CSDN博客
🐟代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int m,n,a[N],mn[N][50],Lg[N],ans;
void pre()
{Lg[1]=0;for(int i=2;i<=n;i++) Lg[i]=Lg[i>>1]+1;//求对数,得到每段的区间结束位置
}
void ST_create()
{for(int i=1;i<=n;i++) mn[i][0]=a[i];//mn[i][j],当j为0时,区间长度2^j为0,则区间最大值就是区间的唯一元素a[i]for(int j=1;j<=Lg[n];j++)//之前已经计算过区间长度为0的情况,这里区间长度由2^1 到 2^Lg[n] {for(int i=1;i<=n-(1<<j)+1;i++)//确定区间左端点,区间范围为[i, i + 2^j - 1],所以 i + 2^j - 1 <= n{mn[i][j]=min(mn[i][j-1],mn[i+(1<<(j-1))][j-1]);//状态转移方程}}
}
int ST_query(int l,int r)//区间查询
{int k=Lg[r-l+1];return min(mn[l][k],mn[r-(1<<k)+1][k]);
}
int main( )
{int a1,a2;cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];pre();ST_create();while(m--){cin>>a1>>a2;cout<<ST_query(a1,a2)<<endl;}return 0;
}
3🐋🐋区间gcd(钻石;ST表)
时间限制:1秒
占用内存:64M
🐟题目描述
🐟题目思路
这道题目也是使用ST表,pre、create和query除了将min改成gcd没有变化,gcd使用递归的方式求取。
MT3051 区间gcd_哔哩哔哩_bilibili
🐟代码
用时少:
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int m,n,a[N],mn[N][50],Lg[N],ans;
int read()
{int ans=0;char ch=getchar();while(ch<'0'||ch>'9') ch=getchar();while(ch>='0'&&ch<='9'){ans=ans*10+ch-'0';ch=getchar();}return ans;
}
void write(int x)
{if(x>=10) write(x/10);putchar(x%10+'0');
}
int gcd(int a,int b){return b==0?a:gcd(b,a%b);}
void pre()
{Lg[1]=0;for(int i=2;i<=n;i++) Lg[i]=Lg[i>>1]+1;//求对数,得到每段的区间结束位置
}
void ST_create()
{for(int i=1;i<=n;i++) mn[i][0]=a[i];//mn[i][j],当j为0时,区间长度2^j为0,则区间最大值就是区间的唯一元素a[i]for(int j=1;j<=Lg[n];j++)//之前已经计算过区间长度为0的情况,这里区间长度由2^1 到 2^Lg[n] {for(int i=1;i<=n-(1<<j)+1;i++)//确定区间左端点,区间范围为[i, i + 2^j - 1],所以 i + 2^j - 1 <= n{mn[i][j]=gcd(mn[i][j-1],mn[i+(1<<(j-1))][j-1]);//状态转移方程}}
}
int ST_query(int l,int r)//区间查询
{int k=Lg[r-l+1];return gcd(mn[l][k],mn[r-(1<<k)+1][k]);
}
int main( )
{int a1,a2;n=read();m=read();for(int i=1;i<=n;i++) a[i]=read();pre();ST_create();while(m--){a1=read();a2=read();ans=ST_query(a1,a2);write(ans);putchar('\n');}return 0;
}
占内存少:
摘自——小码_63705
#include<bits/stdc++.h>
using namespace std;
const int N=3e5+5;
int gcd(int a,int b)
{if(!b) return a;else return gcd(b,a%b);
}
int dp[N][20],a[N],len[N];
int query(int l,int r)
{int k=len[r-l+1];return gcd(dp[l][k],dp[r-(1<<k)+1][k]);
}
inline int read()
{char c=getchar();int x=0,f=1;while(c<'0'||c>'9'){if(c=='-') f=-1;c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}return x*f;
}
int main( )
{len[0]=1;for(int i=2;i<N-2;i++) len[i]=len[i/2]+1;int n;n=read();int ncase;ncase=read();for(int i=1;i<=n;i++) {*(a+i)=read();dp[i][0]=a[i];}for(int j=1;j<=len[n];j++){for(int i=1;i<=n;i++){dp[i][j]=gcd(dp[i][j-1],dp[i+(1<<j-1)][j-1]);}}while(ncase--){int l=read(),r=read();printf("%d\n",query(l,r));}return 0;
}
4🐋🐋检测敌人(钻石;贪心)
时间限制:1秒
占用内存:128M
🐟题目描述
🐟题目思路
贪心思路:一个设备检测尽可能多的敌人。
不同于用设备找敌人,这道题目需要用敌人找设备,以敌人为圆心画圈,找到可用检测到我的x轴上的所有范围,那么在这个范围内放设备都可以检测到我。
贪心的实现就是通过对比两个区间是否有重叠,得知可否共用设备。
【码蹄集进阶塔全题解08】算法基础:贪心 MT2080 – MT2092_哔哩哔哩_bilibili
🐟代码
#include<bits/stdc++.h>
using namespace std;
const int N=1005;
struct node
{double x,y,l,r;bool v;
}e[N];
bool cmp(node a,node b)
{return a.r<b.r;
}
int main( )
{int n;double r;while(cin>>n>>r&&!(n==0&&r==0)){bool flag=false;memset(e,0,sizeof(e));for(int i=1;i<=n;i++){cin>>e[i].x>>e[i].y;if(r*r<e[i].y*e[i].y) flag=true;//以每个敌人为圆心画圆,圆圈范围内的仪器能检测到敌人else//计算能检测到敌人的x轴坐标范围{e[i].l=-sqrt(r*r-e[i].y*e[i].y)+e[i].x;e[i].r=sqrt(r*r-e[i].y*e[i].y)+e[i].x;e[i].v=false;}}if(flag){cout<<-1<<endl;continue;}sort(e+1,e+1+n,cmp);int ans=0;for(int i=1;i<=n;i++){if(e[i].v==false)//表示这个敌人还没能被检测到{for(int j=i;j<=n;j++){if(e[j].v==false&&e[j].l<=e[i].r&&e[j].r>=e[i].r) e[j].v=true;//我们有重叠区域,用一个设备就行了}e[i].v=true;ans++;//所需设备数加一}}cout<<ans<<endl;}return 0;
}
5🐋🐋小码哥的福利(钻石;贪心)
时间限制:1秒
占用内存:128M
🐟题目描述
🐟题目思路
贪心思路:每次分甜品都要尽可能地达到平均值。
这道题目的思路就是,将所有手下按耐受度排序,将所有甜品按甜度排序;找到能吃掉这个甜品的手下,让他全部吃掉;然后对所有手下吃掉的甜品数量进行分配。根据耐受度限制,甜品只能往右分,也就是往耐受度高的手下那里分,那么每次都计算出来从我到最后一个手下我们吃的甜品数量的平均值,然后如果我吃的比这个平均值多,就把多的甜品分给下一个人,以此类推我从头遍历到尾。
【码蹄集进阶塔全题解08】算法基础:贪心 MT2080 – MT2092_哔哩哔哩_bilibili
🐟代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=55;
ll n,m,a[N],sum[N],ans;
struct node
{ll b,c;
}sweet[N];
int cmp(node a,node b){return a.b<b.b;}
ll add(int l,int r)
{ll ans=0;for(int i=l;i<=r;i++) ans+=sum[i];return ans;
}
int main( )
{cin>>n;ll maxm=0;for(int i=1;i<=n;i++){cin>>a[i];maxm=max(maxm,a[i]);}sort(a+1,a+1+n);cin>>m;for(int i=1;i<=m;i++){cin>>sweet[i].b;if(sweet[i].b>maxm)//甜品的甜度超过手下的最大甜品耐受度了,无法吃完{cout<<-1<<endl;return 0;}}for(int i=1;i<=m;i++) cin>>sweet[i].c;sort(sweet+1,sweet+1+m,cmp);//按照甜度大小排列for(int i=1;i<=m;i++)//遍历所有甜品i{for(int j=1;j<=n;j++)//遍历所有手下j{if(sweet[i].b<=a[j]){sum[j]+=sweet[i].c;//手下j吃掉甜度为i的所有甜品break;}}}//平均化吃掉的数量//甜品转移只能向右转移,也就是转移给耐受度更高的手下for(int i=1;i<=n;i++)//遍历所有手下{ll tmp=(add(i,n))/(n-i+1);//将往右的这些所有吃的甜品数量平均if(tmp<=sum[i])//这个人吃多了,分走甜品{sum[i+1]+=sum[i]-tmp;sum[i]=tmp;}}for(int i=1;i<=n;i++) ans=max(ans,sum[i]);//找出最大sumcout<<ans<<endl;return 0;
}
6🐋🐋屠龙勇者(黄金;贪心)
时间限制:1秒
占用内存:128M
🐟题目描述
🐟题目思路
贪心思想:用最强的勇士砍最大的头。
那么就是将d和w数组分别排序,最多有m-n个spare的勇士可以用来砍这个头,所以对i来说最强的勇士就是第i+m-n个勇士,如果这个最强的勇士都没法砍这个头,那么就失败了。同样的贪心思想,这些spare的勇士也是能力值低的那些。
🐟代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int d[N],w[N],n,m;
int main( )
{cin>>n>>m;for(int i=1;i<=n;i++) cin>>d[i];for(int i=1;i<=m;i++) cin>>w[i];sort(d+1,d+1+n);sort(w+1,w+1+m);if(n>m){cout<<"NO";return 0;}for(int i=n;i>=1;i--){if(w[i+m-n]<d[i])//最多有m-n个spare的勇士{cout<<"NO";return 0;}}cout<<"YES";return 0;
}
有问题我们随时评论区见~
⭐点赞收藏不迷路~
相关文章:

码蹄集部分题目(2024OJ赛18期;并查集+ST表+贪心)
1🐋🐋史莱姆融合(钻石;并查集) 时间限制:1秒 占用内存:128M 🐟题目描述 🐟题目思路 这道题目使用并查集,同一集合的所有元素的最顶上的祖父节点是统一的。…...

算法:前缀和题目练习
目录 题目一:一维前缀和[模版] 题目二:二维前缀和[模版] 题目三:寻找数组的中心下标 题目四:除自身以外数组的乘积 题目五:和为K的子数组 题目六:和可被K整除的子数组 题目七:连续数组 题…...

记录项目使用ts时引入js文件后导致项目运行空白问题
主要原因: 使用ts后开启了eslint检测,而js压缩文件引入的位置在eslint检测的文件内。导致eslint检测认为该文件为很大的文件,或eslint认为此文件内存在无法处理的语法结构等问题。 解决方法: 1、把文件移到eslint检测外的文件引入…...

Kafka消费者api编写教程
1.基本属性配置 输入new Properties().var 回车 //创建属性Properties properties new Properties();//连接集群properties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG,"node1:9092,node2:9092");//反序列化properties.put(ConsumerConfig.KEY_DESERIALIZER_CL…...

什么情况下要配置DNS服务
什么是DNS 一、DNS就是域名解析 我们上网的方式通常都由ip地址组成,但是为了有个规范,而且我们也不可能去记住那么多一串Ip数字,首先域名就会比ip好记很多,其次固定性,一旦服务器换了,只要重新绑定域名对…...

华为端云一体化开发 (起步1.0)(HarmonyOS学习第七课)
官方文献: 为丰富HarmonyOS对云端开发的支持、实现端云联动,DevEco Studio推出了云开发功能,开发者在创建工程时选择云开发模板,即可在DevEco Studio内同时完成HarmonyOS应用/元服务的端侧与云侧开发,体验端云一体化协…...

数据结构之ArrayList与顺序表(上)
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 顺序表的学习,点我 上面这篇博文是关于顺序表的基础知识,以及顺序表的实现。…...

Java 8 中的 Stream API,用于处理集合数据
Java 8 引入了 Stream API,使得处理集合数据变得更加简洁和高效。Stream API 允许开发者以声明式编程风格操作数据集合,而不是使用传统的迭代和条件语句。 一、基本概念 1.1 什么是 Stream Stream 是 Java 8 中的一个新抽象,它允许对集合数…...

106、python-第四阶段-3-设计模式-单例模式
不是单例类,如下: class StrTools():pass str1StrTools() str2StrTools() print(str1) print(str2) 运用单例,先创建一个test.py class StrTools():pass str1StrTools()然后创建一个hello.py,在这个文件中引用test.py中的对象&a…...

【猫狗识别系统】图像识别Python+TensorFlow+卷积神经网络算法+人工智能深度学习
猫狗识别系统。通过TensorFlow搭建MobileNetV2轻量级卷积神经算法网络模型,通过对猫狗的图片数据集进行训练,得到一个进度较高的H5格式的模型文件。然后使用Django框架搭建了一个Web网页端可视化操作界面。实现用户上传一张图片识别其名称。 一、前言 …...

记录汇川:红绿灯与HMI-ST
项目要求: 子程序: 子程序: 实际动作如下: 红绿灯与HMI-ST...

已解决java.nio.charset.CoderMalfunctionError: 编码器故障错误的正确解决方法,亲测有效!!!
已解决java.nio.charset.CoderMalfunctionError: 编码器故障错误的正确解决方法,亲测有效!!! 亲测有效 报错问题解决思路解决方法1. 检查和清理输入数据2. 选择正确的字符集3. 处理异常情况4. 更新Java版本或库5. 检查第三方库的依…...

Linux 中常用的设置、工具和操作
1.设置固定的ip地址步骤 1.1 添加IPADDR“所设置的固定ip地址” TYPE"Ethernet" PROXY_METHOD"none" BROWSER_ONLY"no" BOOTPROTO"static" DEFROUTE"yes" IPV4_FAILURE_FATAL"no" IPV6INIT"yes" IPV6…...

[论文笔记]AIOS: LLM Agent Operating System
引言 这是一篇有意思的论文AIOS: LLM Agent Operating System,把LLM智能体(代理)看成是操作系统。 基于大语言模型(LLMs)的智能代理的集成和部署过程中存在着许多挑战,其中问题包括代理请求在LLM上的次优调度和资源分配,代理和LLM之间在交互…...

2024全国高考作文题解读(文心一言 4.0版本)
新课标I卷 阅读下面的材料,根据要求写作。(60分) 随着互联网的普及、人工智能的应用,越来越多的问题能很快得到答案。那么,我们的问题是否会越来越少? 以上材料引发了你怎样的联想和思考?请写…...

【功能超全】基于OpenCV车牌识别停车场管理系统软件开发【含python源码+PyqtUI界面+功能详解】-车牌识别python 深度学习实战项目
车牌识别基础功能演示 摘要:车牌识别系统(Vehicle License Plate Recognition,VLPR) 是指能够检测到受监控路面的车辆并自动提取车辆牌照信息(含汉字字符、英文字母、阿拉伯数字及号牌颜色)进行处理的技术。车牌识别是现代智能交通…...

TESSENT2024.1安装
一、安装过程参考Calibre安装过程(此处省略,不再赘述) 二、安装license管理器: SiemensLicenseServer_v2.2.1.0_Lnx64_x86-64.bin 三、Patch补丁: tessent安装目录和license管理安装目录,执行FlexNetLic…...

【机器学习】原理与应用场景 Python代码展现
机器学习:原理、应用与实例深度解析 引言一、机器学习的基本原理二、机器学习的应用范围三、机器学习实例解析四、机器学习部分讲解五、机器学习的挑战与未来 引言 随着大数据和计算能力的飞速发展,机器学习(Machine Learning, ML࿰…...

Python怎么循环计数:深入解析与实践
Python怎么循环计数:深入解析与实践 在Python编程中,循环计数是一项基础且重要的技能。无论是处理列表、遍历文件,还是执行重复任务,循环计数都发挥着不可或缺的作用。本文将从四个方面、五个方面、六个方面和七个方面详细阐述Py…...

Facebook企业户 | Facebook公共主页经营
Facebook作为社交媒体巨头,拥有庞大的用户基数,因此,有效经营公共主页是获取持续流量、提升客户信任度和粘性、促进产品或服务销售与转化的关键。要优化Facebook主页,关注以下几点: 1、参与度是关键指标:因…...

排序数组 ---- 分治-归并
题目链接 题目: 分析: 用这道题来回顾一下归并排序的思想找到中间结点, 将数组分成两半, 运用递归的思想, 继续对一半进行分半, 分到最后剩一个元素, 再将左右数组合并, 合并两个有序数组, 是先分解, 再合并的过程在合并两个有序数组时, 需要一个额外的数组来记录, 为了避免每…...

【红黑树变色+旋转】
文章目录 一. 红黑树规则二. 情况一叔叔存在且为红情况二.变色旋旋 一. 红黑树规则 对于红黑树,进行变色旋转处理,终究都是为了维持颜色以下几条规则,只有颜色和规则维持住了,红黑树就维持住了最长路径的长度不超过最短路径的两倍…...

pytorch 使用tensor混合:进行index操作
(Pdb) tmp torch.randn(3,5) (Pdb) indx torch.tensor([1,0]).long() (Pdb) temp(indx) *** NameError: name ‘temp’ is not defined (Pdb) tmp(indx) *** TypeError: ‘Tensor’ object is not callable (Pdb) tmp[indx] tensor([[ 0.1633, 0.9389, 1.2806, -0.2525, 0.28…...

Threejs(WebGL)绘制线段优化:Shader修改gl.LINES模式为gl.LINE_STRIP
目录 背景 思路 Threejs实现 记录每条线的点数 封装原始裁剪索引数据 封装合并几何体的缓冲数据:由裁剪索引组成的 IntArray 守住该有的线段! 修改顶点着色器 修改片元着色器 完整代码 WebGL实现类似功能(简易版,便于测…...

继承-进阶
父子类成员共享 普通成员对象/父子间不共享, 成员独立 函数成员共享(函数不存储在对象中) 子类由两部分构成:父类中继承的成员和子类中新定义成员 继承方式 子类中存在父类private成员但不可直接访问(及时在类中&am…...

探索k8s集群的配置资源(secret和configmap)
目录 ConfigMap ConfigMap(主要是将配置目录或者文件挂载到k8s里面使用) 与Secret类似,区别在于ConfigMap保存的是不需要加密配置的信息。(例如:配置文件) ConfigMap 功能在 Kubernetes1.2 版本中引入&…...

如何设置vue3项目中默认的背景为白色
方法1:通过CSS全局样式 在全局CSS文件中设置: 如果你的项目中有全局的CSS文件(如App.vue或专门的CSS文件),你可以直接设置body或html标签的背景颜色。 在src/assets文件夹中(或者任何你存放CSS文件的地方&a…...

MS1112驱动开发
作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…...

K8s存储对象的使用
背景和概念 容器中的文件在磁盘上是临时存放的,这给在容器中运行较重要的应用带来一些问题: 当容器崩溃或停止时,此时容器状态未保存, 因此在容器生命周期内创建或修改的所有文件都将丢失。另外 在崩溃期间,kubelet 会…...

构建自动化API数据抓取系统
构建一个自动化API数据抓取系统是一个涉及多个技术领域的复杂任务。这样的系统不仅要求高效的数据获取能力,还需要有稳定的数据处理、存储和错误处理机制。 1. 需求分析 在开始构建之前,明确你的需求至关重要。你需要确定要抓取的API、数据的频率、数据的…...