当前位置: 首页 > news >正文

码蹄集部分题目(2024OJ赛7.31-8.4;树状数组+并查集)

1🐋🐋奇偶性(星耀;树状数组)

时间限制:1秒

占用内存:128M

🐟题目思路

【MT3059 奇偶性】MT3059 奇偶性_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
const int N=1e5+7;
int a[N],tmp[N],c[N],n,m,l,r;
long long ans;
//树状数组模板
int lb(int x) { return x & -x; }
void update(int i,int x)
{for(;i<=n;i+=lb(i)) c[i]+=x;
}
int sum(int i)
{int ans=0;for(;i>0;i-=lb(i)) ans+=c[i];return ans;
}
int sum(int l,int r) {return sum(r)-sum(l-1);}
​
int main( )
{cin>>n;for(int i=1;i<=n;i++) cin>>a[i];//离散化for(int i=1;i<=n;i++) tmp[i]=a[i];sort(tmp+1,tmp+1+n);int len=unique(tmp+1,tmp+1+n)-(tmp+1);for(int i=1;i<=n;i++) a[i]=lower_bound(tmp+1,tmp+len+1,a[i])-tmp;//求逆序对个数for(int i=1;i<=n;i++){update(a[i],1);ans+=sum(a[i]+1,n);}//进入到本题计算ans%=2;cin>>m;while(m--){cin>>l>>r;if(((r-l+1)/2)%2) ans^=1;if(ans) cout<<"1"<<endl;else cout<<"0"<<endl;}return 0;
}

2🐋🐋左移后的逆序对(钻石;树状数组)

时间限制:1秒

占用内存:128M

🐟题目思路

【MT3060 左移后的逆序对】MT3060 左移后的逆序对_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
const int N=3e5+7;
int a[N],c[N],n;
long long ans;
​
int lb(int x) { return x & -x; }
void update(int i,int x)
{for(;i<=n;i+=lb(i)) c[i]+=x;
}
int sum(int i)
{int ans=0;for(;i>0;i-=lb(i)) ans+=c[i];return ans;
}
int sum(int l,int r) { return sum(r)-sum(l-1); }
int main( )
{cin>>n;for(int i=1;i<=n;i++){cin>>a[i];a[i]++;} for(int i=1;i<=n;i++){update(a[i],1);ans+=sum(a[i]+1,n);}cout<<ans<<endl;for(int i=1;i<=n-1;i++){ans+=n-a[i]*2+1;cout<<ans<<endl;}return 0;
}

3🐋🐋区间异或和(钻石;树状数组)

时间限制:1秒

占用内存:128M

🐟题目思路

【MT3061 区间异或和】MT3061 区间异或和_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
const int N=3e5+7;
int n,m,flag,x,y,a[N],c[N];
​
int lb(int x) { return x & -x; }
void update(int i,int x)
{for(;i<=n;i+=lb(i)) c[i]^=x;
}
int sum(int i)
{int ans=0;for(;i>0;i-=lb(i)) ans^=c[i];return ans;
}
int sum(int l,int r) { return sum(r)^sum(l-1); }
​
int main( )
{cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];update(i,a[i]);}while(m--){cin>>flag>>x>>y;if(flag==1){a[x]^=y;update(x,y);}else cout<<sum(x,y)<<endl;}return 0;
}

4🐋🐋农场(王者;并查集)

时间限制:3秒

占用内存:128M

🐟题目思路

【MT3057 农场】MT3057 农场_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
const int N=1e5+7;
struct node
{double x,y;int id;
}a[N],b[N];
struct edge
{int u,v;double w;
}e[2*N];
​
int n,m,fa[N];
double k;
​
bool cmp1(node x,node y) { return x.x<y.x; }
bool cmp2(node x,node y) { return x.y<y.y; }
bool cmp3(edge x,edge y) { return x.w<y.w; }
​
int find(int x)
{if(fa[x]==x) return x;return fa[x]=find(fa[x]);
}
void merge(int i,int j)
{int x=find(i),y=find(j);if(x!=y) fa[x]=y;
}
bool sol(int l,int r)
{if(l>=r) return 1;int mid=(l+r)/2,cnt=0;if(!sol(l,mid)||!sol(mid+1,r)) return false;while(a[l].x+k<a[mid].x) l++;while(a[r].x-k>a[mid].x) r--;for(int i=l;i<=r;i++) b[++cnt]=a[i];sort(b+1,b+1+cnt,cmp2);for(int i=1;i<=cnt;i++){for(int j=i+1;j<=cnt;j++){if(b[j].y-b[i].y>k) break;if(fabs(b[j].x-b[i].x)<=k&&find(b[i].id)!=find(b[j].id)) return false;}}return true;
}
bool check(int x)
{for(int i=1;i<=n;i++) fa[i]=i;for(int i=1;i<=m;i++){if(e[i].w>e[x].w) break;merge(e[i].u,e[i].v);}return sol(1,n);
}
​
int main( )
{cin>>n>>m>>k;for(int i=1;i<=n;i++) {cin>>a[i].x>>a[i].y;a[i].id=i;}for(int i=1;i<=m;i++) cin>>e[i].u>>e[i].v>>e[i].w;sort(a+1,a+1+n,cmp1);sort(e+1,e+1+m,cmp3);int l=0,r=m,mid,ans=0;while(l<=r){mid=(l+r)/2;if(check(mid)) {r=mid-1;ans=mid;}else l=mid+1;}printf("%.3lf",e[ans].w);return 0;
}

5🐋🐋方块染色(星耀;并查集)

时间限制:1秒

占用内存:250M

🐟题目思路

【MT3053 方块染色】MT3053 方块染色_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
const int N=1e5+7;
int n,m,fa[2*N];
set<int> s;
int find(int x)
{if(x==fa[x]) return x;return fa[x]=find(fa[x]);
}
void merge(int i,int j)
{int x=find(i),y=find(j);if(x!=y) fa[x]=y;
}
​
int main( )
{cin>>n>>m;for(int i=1;i<=2*n;i++) fa[i]=i;for(int i=1;i<=m;i++){char opt;int x,y;cin>>opt>>x>>y;if(opt=='S'){merge(x,y);merge(x+n,y+n);}else{merge(x+n,y);merge(x,y+n);}}for(int i=1;i<=n;i++){if(find(i)==find(i+n)){cout<<0;return 0;}}for(int i=1;i<=2*n;i++) s.insert(find(i));cout<<1;for(int i=1;i<=(s.size()/2);i++) cout<<0;return 0;
}

6🐋🐋删除序列(星耀;并查集)

时间限制:1秒

占用内存:256M

🐟题目思路

【MT3058 删除序列】MT3058 删除序列_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
#define int long long
const int N=1e5+7;
int fa[N],a[N],b[N],flag[N],n,ans,maxn;
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) {fa[x]=y;a[y]+=a[x];}
}
signed main( )
{cin>>n;for(int i=1;i<=n;i++){cin>>a[i];fa[i]=i;}for(int i=1;i<=n;i++) cin>>b[i];for(int i=n;i>=2;i--){flag[b[i]]=1;if(flag[b[i]-1]&&!flag[b[i]+1]) merge(b[i]-1,b[i]);if(!flag[b[i]-1]&&flag[b[i]+1]) merge(b[i]+1,b[i]);if(flag[b[i]-1]&&flag[b[i]+1]) {merge(b[i]-1,b[i]);merge(b[i]+1,b[i]);}maxn=max(maxn,a[find(b[i])]);ans+=maxn;}cout<<ans;return 0;
}

⭐这周有点不太舒服,就没有写题解,需要的宝子看下链接里的视频讲解~

⭐创作不易,点个赞吧~

⭐点赞收藏不迷路~

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 8.3,8.4总结
  • 人像修复-图章仿制工具
  • 【zookeeper 第七篇章】集群搭建 本文章不具体展示搭建过程 后期会单独出一篇文章编写集群搭建
  • 基于Springboot的个人博客系统
  • Stable-Diffusion1.5
  • GitHub Revert Merge Commit的现象观察和对PR的思考
  • 传输层_计算机网络
  • Spring源码-ClassPathXmlApplicationContext的refresh()都做了什么?
  • 无缝编码体验:在PyCharm中高效使用远程文件编辑功能
  • 竞赛报名管理系统asp.net+sqlserver
  • python链接harbor,查询项目,镜像,版本
  • 虚拟机如何使用pxe服务实现自动安装系统
  • 【深度学习实战(52)】混淆矩阵计算
  • HCIE-Datacom题库__填空题
  • 基于Orangepi全志H616学习Python3
  • [译]前端离线指南(上)
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • angular2 简述
  • co.js - 让异步代码同步化
  • IDEA 插件开发入门教程
  • Java 内存分配及垃圾回收机制初探
  • Java 最常见的 200+ 面试题:面试必备
  • javascript从右向左截取指定位数字符的3种方法
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • orm2 中文文档 3.1 模型属性
  • vuex 学习笔记 01
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 人脸识别最新开发经验demo
  • 设计模式(12)迭代器模式(讲解+应用)
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 在Docker Swarm上部署Apache Storm:第1部分
  • - 转 Ext2.0 form使用实例
  • 转载:[译] 内容加速黑科技趣谈
  • postgresql行列转换函数
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • #565. 查找之大编号
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • $jQuery 重写Alert样式方法
  • (2)nginx 安装、启停
  • (2)空速传感器
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (C++17) optional的使用
  • (SERIES12)DM性能优化
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (过滤器)Filter和(监听器)listener
  • (九十四)函数和二维数组
  • (六)c52学习之旅-独立按键
  • (四)事件系统
  • (一) 初入MySQL 【认识和部署】
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)甲方乙方——赵民谈找工作
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException