首页 > 其他分享 >apple365的分治合集!

apple365的分治合集!

时间:2023-02-18 19:44:58浏览次数:51  
标签:暴力 int 分治 sqrt apple365 base 合集 根号

目录

  1. 根号分治
  2. 待补

正文

根号分治

其实分块也是一种根号分治。
本质是将一组询问按照某个值域来划分(通常取根号),不超过 \(X\) 时采用一种做法,超过了换另一种(一般一种是暴力,另外一个空间换时间或采用其他一些的算法结合)。
例:洛谷 P3396
首先显然有一个 for(int i=y;i<=n;i+=x) 的暴力。这个暴力的运行时间取决于 \(x\) 的大小。所以注意到当 \(x\) 大于或等于 \(\sqrt{n}\) 的时候可以实现 \(O(n\sqrt{n})\) 的优秀复杂度。
小于的话预处理一下空间换时间即可。
当然目前为止没有修改。
修改只要把预处理的那一部分把与修改的地方相关的(约 \(\sqrt{n}\) 个)改掉,其他部分依托依靠暴力就可以了。
然后这个题就被秒掉了。

查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int ans[1005][1005],n,m,a[150005],base;
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>m;
	base=sqrt(n)+1;
	for(int i=1;i<=n;++i){
		cin>>a[i];
		for(int j=1;j<=base;++j)ans[j][i%j]+=a[i];
	}
	for(int i=1;i<=m;++i){
		char c;
		int x,y;
		cin>>c>>x>>y;
		if(c=='A'){
			if(x<=base){
				cout<<ans[x][y]<<'\n';
			}
			else{
				int sum=0;
				for(int j=y;j<=n;j+=x)sum+=a[j];
				cout<<sum<<'\n';
			}
		}
		else{
			for(int j=1;j<=base;++j)ans[j][x%j]-=a[x];
			a[x]=y;
			for(int j=1;j<=base;++j)ans[j][x%j]+=a[x];
		}
	}
	return 0;
} 

标签:暴力,int,分治,sqrt,apple365,base,合集,根号
From: https://www.cnblogs.com/Forever1507/p/17133369.html

相关文章

  • k8s 常用命令合集
    kubernetemaster只运行集群组件,nodes运行pods。Taints表示污点的意思,如果node描述信息有该选项表示不可调度.kubectldescribenodecentos-04取消污点kubectltaintn......
  • 很简单 但又一时想不起来的功能合集
     ///<summary>///根据模型的尺寸取得的模型边缘位置与模型中心的相对位置(在不适用物理的情况下模型移动式避免穿模)///</summary>varbounds=GetComponent<Mesh......
  • 3. 投票 案例项目(合集)
    3.投票-1创建项目和子应用创建项目命令$pythondjango-adminstartprojectmysite目录结构mysite/#项目容器、可任意命名manage.py......
  • Creative Snap(分治)
                                      C.CreativeSnap Thanoswantstodestroytheavengersbas......
  • CDQ 分治学习笔记
    CDQ分治学习笔记简介CDQ分治一般用来解决偏序问题。我们先来回忆一下:一维偏序:排序即可解决问题。二维偏序:对于\((a,b)\),我们使用排序解决\(a\),然后\(b\)使用树......
  • 一些关于网站推广问题合集。
    网站怎么快速上权重?要让一个网站快速提高权重,需要实施以下一些有效的策略:提供高质量的内容:提供高质量、原创、有用的内容是最重要的。这可以吸引更多的用户访问,并增加用......
  • 博客园文章如何让百度收录? | 百度收录本博客链接合集
    如果你输入二级域名百度中site:realhohong.cnblogs.com谷歌中site:realhohong.cnblogs.com都只收录可怜的一页,因为博客园似乎故意不让你使用二级域名。比如你发在首页或者......
  • 顺序表应用7:最大子段和之分治递归法(SDUT 3664)
    #include<bits/stdc++.h>usingnamespacestd;constintmaxn=50005;intnum=0;structnode{int*elem;intlen;};voidCreatlist(structnode&list,intn){......
  • 分治NTT
    首先是NTT的板子。intcnt[N];voidNTT(inta[],intlim,booltype){ for(inti=0;i<(1<<lim);i++)cnt[i]=(cnt[i>>1]>>1)|((i&1)<<(lim-1)); for(inti=0;i<(1<<lim);......
  • windows+mac os+linux三平台如何和使用下载ChatGPT桌面版软件(下载+安装+使用)合集
    什么是ChatGPTChatGPT(ChatGenerativePre-trainedTransformer)是OpenAI于2022年11月推出的聊天机器人。它建立在OpenAI的GPT-3大型语言模型家族之上,并经过微调(一种......