首页 > 其他分享 >[THUSC2015] 异或运算 题解

[THUSC2015] 异或运算 题解

时间:2024-12-24 17:43:39浏览次数:4  
标签:ch val int 题解 异或 nx ny THUSC2015 id

学到新思路了:求解 \(k\) 大值时,可以将所有元素放一块一起跑。


考虑到 \(n,q\) 奇小无匹,我们便可以制造一个 \(O(qn\log V)\) 的代码。

那么对于我们不想在时间复杂度中出现的 \(m\),我们直接把他扔进可持久化 \(Trie\) 中销赃。

再根据刚才那个思路,将 \([u,d]\) 中所有点扔进可持久化 \(Trie\) 里递归。

时间复杂度 \(O((m+qn)\log V)\)。

#include<bits/stdc++.h>
using namespace std;
const int N=3e5+5;
const int M=1e7+5,K=1005;
int n,m,a[K],nx[K],ny[K],tot;
int q,rt[N],ch[M][2],val[M];
void add(int &x,int y,int v,int id){
	if(!x) x=++tot;
	val[x]=val[y]+1;
	if(id<0) return;
	int c=((v>>id)&1);
	ch[x][c^1]=ch[y][c^1];
	add(ch[x][c],ch[y][c],v,id-1);
}int super_ans(int l,int r,int id,int k){
	if(id<0) return 0;int num=0;
	for(int i=l;i<=r;i++){
		int c=1-((a[i]>>id)&1);
		num+=val[ch[nx[i]][c]]-val[ch[ny[i]][c]];
	}for(int i=l;i<=r;i++){
		int c=((a[i]>>id)&1)^(num>=k);
		nx[i]=ch[nx[i]][c],ny[i]=ch[ny[i]][c];
	}return super_ans(l,r,id-1,k-(num<k)*num)+((num>=k)<<id);
}int main(){
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1,x;i<=m;i++)
		cin>>x,add(rt[i],rt[i-1],x,30);
	cin>>q;
	while(q--){
		int u,d,l,r,k;cin>>u>>d>>l>>r>>k;
		for(int i=u;i<=d;i++)
			ny[i]=rt[l-1],nx[i]=rt[r];
		cout<<super_ans(u,d,30,k)<<"\n";
	}return 0;
}

标签:ch,val,int,题解,异或,nx,ny,THUSC2015,id
From: https://www.cnblogs.com/chang-an-22-lyh/p/18628342/thusc2015-yi_huo_yun_suan-tj

相关文章

  • ZJOI2016 旅行者 题解
    ZJOI2016旅行者题解题目大意:给定一个\(n\timesm\)的网格图,相邻的四连通的点之间有给定边权的双向边,有\(Q\)个离线询问,问两个点之间的最短路。\(n\timesm\le2\times10^4,Q\le10^5\)。发现了吗?和上次省选组的三角剖分那道题很像,这种平面图上的最短路很有可能是分治......
  • 省选模拟题解
    \(T1\)题解题意:有一张\(n\)个点的有标号无向图,分为了\(k\)个连通块,第\(i\)个连通块的大小是\(s_i\),每个连通块都是完全图(节点之间两两有边)。要加\(k-1\)条边使得图连通,计算所有连边方案的权值和。假设第\(i\)个连通块被多加了\(d_i\)条边,那么该连边方案的权值为\(......
  • 湖南科技大学2024年计算机程序设计新生赛题解
    @目录前言前置知识补充问题A:珂朵莉解题思路代码问题B:可莉的烦恼解题思路代码问题C:小A的画解题思路代码问题D:KMP自动机fail树dfs序建可持久化线段树解题思路代码问题E:谜题:结局解题思路代码问题F:奶龙列阵(easyversion)解题思路代码问题G:小A的密码解题思路代码问......
  • [BZOJ2741][FOTILE模拟赛] L 题解
    相当好的题目,虽然和我前几天出的题重了qwq。\(lmx\)是我们的红太阳,没有他我们就会死!!!暴力枚举一个端点,然后用可持久化\(01\Trie\)或者离线\(Trie\)(当然这题用不了,但不强制在线的话是可以的)得到答案。时间复杂度\(O(nm\logn)\),过不了,考虑优化。红太阳\(lmx\)曾经说过:当......
  • umount: /xxx: target is busy问题解决
    在卸载文件系统的时候,提示umount:/tqls_system:targetisbusy,表示挂载的文件系统正在被使用。要卸载文件系统,必须结束使用文件或者目录的进程`fuser`命令用于查看使用特定文件或者文件系统的进程ID主要参数如下:```-mNAME,--mountNAME NAMEspecifiesafileonamou......
  • USACO24DEC Cake Game S 题解 [ 黄 ] [ 前缀和 ] [ adhoc ]
    CakeGame:小清新前缀和题,但是我场上想了半天优先队列贪心假完了/ll/ll/ll。观察本题有三个重要的结论,我们依次进行观察。不难发现,第二个牛一定会拿\(\frac{n}{2}-1\)个蛋糕走。同时它拿走的蛋糕一定是左边一段、右边一段。如果它要使自己的分数最大化,那么显然就是要将左边和......
  • CF2048D 题解
    提供一种非常naive且暴力的思路。小于等于Kevin的选手没有任何贡献,扣掉。我们发现,我们如果按轮次一个个填充这一堆比赛,实际上是可以确定一个(可能的)最优填充次序的。先填Kevin会做的。这些题目不影响排名。再按\(b_i\)从大到小依次填充。这样是最优的,因为\(b_i\)越小......
  • ZZJCACM个人训练赛23题解
    原题链接Ahttps://codeforces.com/contest/1999/problem/A800Bhttps://qoj.ac/contest/1794/problem/9310Chttps://codeforces.com/problemset/problem/2008/D1100Dhttps://qoj.ac/contest/1485/problem/8081Ehttps://codeforces.com/contest/2002/problem/B......
  • 第36次ccf-csp题解(思维)
    比赛链接https://sim.csp.thusaac.com/contest/36/home 比赛感受这会刚打完上海icpc,比起区域赛的题,这个简单太多了。感受还不错,写的很顺手。除了第3题,其他3题都是一发过。刷题得长期刷。      A题移动 题意:f:y+1; b:y-1; ......
  • 期望问题+ybt题解
    算法理解对于随机变量\(X\),有\(n\)个可能的取值,取值为\(x_i\)有\(P(x_i)\)的概率,则它的数学期望则为\(E(X)=\sum_{i=1}^nx_iP(x_i)\)性质其中期望的线性限制最重要,它可以将两个完全独立的期望拆分开来单独计算,详见例题T1:首先我们观察有\(n\)道题,我们根据期望的线......