首页 > 其他分享 >关于gcd

关于gcd

时间:2024-08-12 15:55:03浏览次数:6  
标签:const gcd int len 关于 func type

处理区间max,min,gcd,and,or

时间复杂度:预处理 $O(n)$,查询 $O(1)$

template <typename T>
class St{
		using VT = vector<T>;
		using VVT = vector<VT>;
		using func_type = function<T(const T &, const T &)>;

		VVT ST;

		static T default_func(const T &t1, const T &t2) {
			return t1 & t2;
		}

		func_type op;

	public:
		St(const vector<T> &v, func_type _func = default_func) {
			op = _func;
			int len = v.size(), l1 = ceil(log2(len)) + 1;
			ST.assign(len, VT(l1, 0));
			for (int i = 0; i < len; ++i) {
				ST[i][0] = v[i];
			}
			for (int j = 1; j < l1; ++j) {
				int pj = (1 << (j - 1));
				for (int i = 0; i + pj < len; ++i) {
					ST[i][j] = op(ST[i][j - 1], ST[i + (1 << (j - 1))][j - 1]);
				}
			}
		}

		T query(int l, int r) {
			if (l == r) {
				return ST[l][0];
			}
			int lt = r - l + 1;
			int q = floor(log2(lt));
			return op(ST[l][q], ST[r - (1 << q) + 1][q]);
		}
};

void solve() {
	int n;
	read(n);
	vector<int> nums(n);
	for (int i = 0; i < n; i++) read(nums[i]);
	St<int> st(nums);
	
	cout << st.query(1, 2) << '\n';
}

标签:const,gcd,int,len,关于,func,type
From: https://www.cnblogs.com/Mrwang2004/p/18355132

相关文章

  • JSP关于浙江传统文化和名胜古迹的宣传网址be1a6
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:用户,传统文化,文化类型,景点分类,名胜古迹,特色美食开题报告内容一、项目背景浙江,作为中国历史悠久、文化底蕴深厚的省份,拥有众多传统文化和名胜古迹......
  • 关于异步编程和多线程的高级.NET Core面试题
    以下是一些关于异步编程和多线程的高级.NETCore面试题。这些问题涵盖了从基础概念到复杂应用的各个方面,可以帮助评估候选人在异步编程和多线程开发方面的能力。1.异步编程基础在.NETCore中,异步编程的基本原理是什么?async和await关键字的作用是什么?如何在.NETCore中使用......
  • 关于REACT范式的一些思考
    关于REACT范式的一些思考REACT范式经过近一年的探索,让我们在很多领域有了非常广泛的应用,它确实提升了很多之前无法解决的问题,比如大模型虽然在语言理解和交互式决策方面在任务中表现出令人印象深刻的表现,但是如何让模型基于解释来使用LLMs以交错方式生成推理跟踪和特定于任务的......
  • 关于区间加区间查线段树的标记永久化
    单点加区间查的线段树,每个线段树区间的值代表所维护序列在这个区间的总和;区间加单点查的线段树,每个线段树区间的值代表对这个区间总体加了多少。区间加区间查的线段树可以通过综合两种思想实现标记的永久化。线段树将每一个修改或查询区间拆分为\(O(\logw)\)个线段树区间,只要......
  • 关于父元素的opacity属性影响子元素opacity属性的显示问题
    这里主要解决的是子元素不需要透明度但是父元素需要透明度,但是子元素继承了父元素的透明度导致的子元素透明度失效的问题。1.问题描述期望效果页面效果 2.解决方案这里尝试了很多方法,包括但不限于创建伪类,给子元素添加!important优先级,但无一例外,都不生效,最后也是......
  • 关于 agKc 实在不喜欢自动化于是啥都自己合成这件事
    关闭同步/解除绑定后,不能使用puts勤对拍(除非实在难以对拍的题目),像这种错误,只有对拍才有发现的可能性点击查看代码#include<bits/stdc++.h>usingnamespacestd;vector<pair<longlong,longlong>>a[100005];vector<longlong>s;longlongt[100005],n,k;boolf;long......
  • Turbo Sparse:关于LLM稀疏性的探索
    本文地址:https://www.cnblogs.com/wanger-sjtu/p/18352898关于llama稀疏性的观察llama原始模型的FFN计算过程为:\[f(x)=\text{silu}(xW_{Gate})\odotxW_{UP}\timesW_{Down}\]classFeedForward(nn.Module):defforward(self,x):returnself.w2(F.silu(sel......
  • openai 的各个模型比较(关于英语句子解析)
    最近在使用chatgpt帮助学习英语,主要是进行语法分析和难点解释。为了找到最适合的模型,我比较了多个模型的回答。语法分析问题这是我在实际中理解有困难的句子,尽管比较简短,但从内容上理解,它涉及了倒装。各个模型回答gpt-3.-5-turbo-1106是经过微调的3.5-turbogpt-4o-m......
  • 关于动态规划的一些理解
    关于动态规划的一些理解1.什么是动态规划动态规划(DP,DynamicProgramming)是一种解决问题的方法。它通过将难以实现的整体的大问题划分成简单的局部的小问题。最后将小问题一一求解以完成问题。对于动态规划能否使用有一些限制,这些限制我推荐参看动态规划基础-OIWiki中的描述......
  • 在 Windows 上使用 LCX(Local Channel eXchange)来进行本地和远程转发,此大纲旨在提供顶
    LCX(LocalChanneleXchange)通常指的是一种用于网络协议中的本地和远程转发技术。如果你在谈论的是与LCX相关的网络配置,它可能涉及不同的上下文,例如在通信协议或网络交换中。本地和远程转发的基本概念:本地转发(LocalForwarding):本地转发将本地计算机上的一个端口转发到......