首页 > 其他分享 >结构体模板(持续更新)

结构体模板(持续更新)

时间:2023-08-09 17:01:33浏览次数:32  
标签:sz return int tr DSU 持续 更新 find 模板

树状数组:

点击查看代码
//1
struct Tree {
	vector<int> tr;  //vector 方便每根据需要的大小开
    Tree(int n) : tr(n + 1){  //初始化 
        iota(tr.begin(), tr.end(), 0); 
    }
	inline int lowbit(int x) {
	return x & -x;
	}
	inline void add(int x, int v) {
	for (; x <= n; x += lowbit(x))
	tr[x] += v;
	}
	inline int ask(int x) {
	int res = 0;
	for (; x; x -= lowbit(x))
	res += tr[x];
	return res;
	}
	void clear() {
		tr.clear();
	}
}t1(n),t2(n);;


//2
  struct Fenwick {
	int tr[N];
	inline int lowbit(int x) {
	return x & -x;
	}
	inline void add(int x, int v) {
	for (; x <= n; x += lowbit(x))
	tr[x] += v;
	}
	inline int ask(int x) {
	int res = 0;
	for (; x; x -= lowbit(x))
	res += tr[x];
	return res;
	}
	void clear() {
	memset(tr, 0, sizeof tr);
	}
}t1,t2;

并查集:

点击查看代码
#include<bits/stdc++.h>
using namespace std;
using LL = long long;
// DSU with Size 
struct DSU{ //并查集板子 
    vector<int> p, sz; //p 表示集合  , se表示集合个数
    DSU(int n) : p(n + 1), sz(n + 1, 1){  //初始化 
        iota(p.begin(), p.end(), 0); 
    }

    int find(int x){ //寻找根节点
        return p[x] == x ? x : p[x] = find(p[x]);
    }

    bool same(int x, int y) {  //判断是否相同,根节点 
        return find(x) == find(y); 
    }

    bool merge(int x, int y){ //合并集合 
        x = find(x), y = find(y);
        if (x == y) return false;
        if (sz[x] < sz[y]) swap(x, y);
        sz[x] += sz[y];
        p[y] = x;
        return true;
    }
    
    int size(int x) {  //输出集合点数
        return sz[find(x)];
    }
};
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n,m;
	cin>>n>>m;
	DSU dsu(n);
	char c;
	int x,y;
	while(m--)
	{
		cin>>c>>x>>y;
		if(c=='Q')
		{
			if(dsu.same(x,y)) cout<<"Yes\n";
			else cout<<"No\n";
		}
		else
		{
			dsu.merge(x,y);
		}
	}
	return 0;
}

标签:sz,return,int,tr,DSU,持续,更新,find,模板
From: https://www.cnblogs.com/xxj112/p/17617273.html

相关文章

  • 云知声持续发力AI芯片领域,带来智慧物联新体验
    人工智能技术的发展离不开数据和算力的支持,而AI芯片作为人工智能算力的基础,其重要性日益凸显。近年来,随着人工智能的大规模应用和深度学习的发展,AI芯片需求不断增加。作为AI行业先行者与探索者,云知声早在2014年年初,就官宣了“云知大脑”战略,此后持续发力AI芯片赛道,持续赋能智慧......
  • django 模板
    模板继承模板继承和类的继承含义是一样的,主要是为了提高代码重用,减轻开发人员的工作量{%extends'base.html'%}base.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>{%blocktitle%}{%endblock%}<......
  • kubeadm 更新ca、front-proxy-ca 根证书到100年(基于现有的K8S环境)
    背景:在现有K8S环境中默认情况下编译新kubeadm只能更新组件证书的时间,至于ca,front-proxy-ca集群根证书是无法更新的#更新集群ca、front-proxy-ca根证书1、备份master节点的ca、front-proxy-ca根证书cp-a/etc/kubernetes/pki/ca.crt/etc/kubernetes/pki/ca.crt.oldcp-a......
  • 博客园样式配置更新
    主题配置CSS样式配置#home{margin:0auto;width:80%;/*原始65*/min-width:980px;/*页面顶部的宽度*/background-color:rgba(245,245,245,0.7);padding:30px;margin-top:50px;margin-bottom:50px;box-shadow:02px6pxrgb......
  • MP-SPDZ技术拾遗(更新中)
    配置onlinebenchmarkonly在根目录下创建config文件mkdirCONFIG.mineCONFIG.mine中仅需添加一行配置MY_CFLAGS=-DINSECURE重新编译虚拟机,以rss为例makecleanmake-j8replicated-ring-party.x编译fake-offline,并生成offline数据make-j8Fake-Offline.x./Fake......
  • 在最新更新的 Windows 系统中使用 .net 程序调用一些 https 接口时出现错误:请求被中止
    这是因为出于安全原因,新更新的系统中会默认禁用一些已经过时不安全的加密协议如:SSL3.0、TLS1.0、TLS1.1等但并不是所有接口服务器都已经更新支持了更新的协议所以在确认安全的情况下,可以将这些旧的协议再次启用,以达到兼容旧接口调用的目的方法1:注意:这个修改会在系统全局......
  • SSTI 服务器端模板注入
    SSTI服务器端模板注入flask基础不正确的使用模板引擎进行渲染时,则会造成模板注入路由fromflaskimportflask@app.route('/index/')defhello_word():return'helloword'route装饰器的作用是将函数与url绑定起来。例子中的代码的作用就是当你访问http://127.0......
  • yum update更新报错 Transaction Check Error 解决方法
    yumupdate更新报错TransactionCheckError解决方法yumupdate引起错误TransactionCheckError的原因很多,要根据错误概要去判断具体原因。错误现象:报错内容:file/usr/share/man/man1/gtk-query-immodules-2.0.1.gzfrominstallofgtk2-2.24.31-1.el7.x86_64conflicts......
  • Hugging News #0807: ChatUI 官方 Docker 模板发布、 Hub 和开源生态介绍视频来啦!
    每一周,我们的同事都会向社区的成员们发布一些关于HuggingFace相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「HuggingNews」。本期HuggingNews有哪些有趣的消息,快来看看吧!......
  • 计算几何模板
    namespaceComputationGeometry{constldeps=1e-8,pi=acosl(-1.0);//点/向量structvec{ldx,y;vec(ldX=0,ldY=0){x=X;y=Y;}//输入输出voidin(){scanf("%Lf%Lf",&x,&y);}voidout(){printf(&......