首页 > 其他分享 >线性基模板

线性基模板

时间:2023-09-11 20:55:45浏览次数:36  
标签:sort end val int res ll 线性 模板

  • 插入
  • 第 \(k\) 小
  • 排名
  • 最大异或和
struct basis
{
	vector<ll>s;
	
	void insert(ll val)
	{
		for(int x:s)val=min(val,val^x);
		for(int &x:s)x=min(x,x^val);
		if(val)s.push_back(val);
	}
	ll kth(ll k)
	{
		sort(s.begin(),s.end());
		if(s.size()<n)k--;
		ll res=0;
		for(ll x:s)
		{
			if(k&1)res^=x;
			k>>=1;
		}
		return !k?res:-1;
	}
	ll rk(ll val)
	{
		sort(s.begin(),s.end());
		ll res=0;
		for(int i=0;i<s.size();i++)
			if((val^s[i])<val)res|=1ll<<i;
		return res+1;
	}
	ll mx(ll val)
	{
		sort(s.begin(),s.end(),greater<ll>());
		for(ll x:s)val=max(val,(val^x));
		return val;
	}
}S;

标签:sort,end,val,int,res,ll,线性,模板
From: https://www.cnblogs.com/Zwb0106/p/Template-Basis.html

相关文章

  • 非线性电路
    ......
  • index.html在webpack打包时动态生成index模板
    通过<%=BASE_URL%>包裹环境变量通过<%if(process.env.NODE_ENV==='production'){%><%}%>包裹条件判断<!DOCTYPEhtml><html><head><metacharset="utf-8"/><metacontent="IE=edge,chrome=1&qu......
  • 例2.9 建立一个带头结点的线性链表,用以存放输人的二进制数,链表中每个结点的data域存放
    1.题目例2.9建立一个带头结点的线性链表,用以存放输人的二进制数,链表中每个结点的data域存放一个二进制位。并在此链表上实现对二进制数加1的运算。2.算法分析3.代码/*二进制加1*/voidBinAdd(LinkListl){inttemp;Node*pa=l->next,*pb,*s;while(pa......
  • 【学习笔记】【自学】【模板】矩阵快速幂
    题目描述:给定$n\timesn$的矩阵$A$,求$A^k$。矩阵:一个$m\timesn$的矩阵是一个由$m$行$n$列元素排列成的矩形阵列。即形如$$A=\begin{bmatrix}a_{11}&a_{12}&\cdots&a_{1n}\\a_{21}&a_{22}&\cdots&a_{2n}\\\vdots&\vdots&......
  • 【学习笔记】【自学】【模板】三分法
    题目描述:给定一个$n$次函数$f(x)$形如$a_1x^n+a_{2}x^{n-1}+......+a_{n-1}x^2+a_nx+a_{n+1}$,求$f(x)_{\max}$,且$x\in[l,r]$,设使得$f(x)_{\max}$的$x$为$x_{\max}$。对于一个区间$[l,r]$而言,若确定使得$f(x)$为最大值的$x$定在$[l,r]$中,则可以使用三分法求......
  • 线性表——链式存储
    单链表(有头结点)#include<stdlib.h>//定义typedefstructLNode{intdata;//数据域structLNode*next;//指针域指向下一个结点,所以是structLNode类型}LNode,*LinkList;//*LinkList用于表示这是一个指向structLNode类型的指针//初始......
  • chrome插件:一个基于webpack + react的chrome 插件项目模板
    项目结构$tree-L1.├──README.md├──node_modules#npm依赖├──package.json#详细依赖├──pnpm-lock.yaml├──public#里边包含dist,安装的时候安装这个目录即可├──src#源码文......
  • 线性DP
    DP三要素:状态,阶段,决策(转移)阶段:第i层状态:目前情况写代码三要素:边界、目标、转移DP要求:无后效性Mr.Young'sPicturePermutations要求从左到右和从上到下都递减首先肯定按顺序加入从左到右很明确,加到最右边从上到下怎么维护?其实就是这一行加完之后不超过上一行就行发现......
  • 支持 range-based for 循环的链式前向星模板
    众所周知,OI中图的存储主要有两种方式:使用std::vector实现的邻接表,以及链式前向星。前者的常数较大,有时候会出现卡不过去的情况,但是支持range-basedfor循环,遍历的时候代码更简洁。可不可以在使用链式前向星的同时,使用range-basedfor循环呢?如以下代码所示:Graphgraph;int......
  • C数据结构-线性表之顺序表
    什么是线性表线性表的插入元素线性表的删除元素线性表顺序存储的缺点线性表的特点1.线性表的实例首先我们创建3个文件,分别如下:liner_data--sqlist.c--sqlist.h--test.csqlist.h//.h文件中定位数据的结构以及函数的方法typedefintdata_t;#defineN128......