首页 > 其他分享 >每日一题- CF1983F

每日一题- CF1983F

时间:2024-07-15 15:57:12浏览次数:18  
标签:int res 每日 CF1983F tr mid max 一题 id

从未每日的每日一题

E>F

但是没时间了

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int t,n,a[100005],p[100005];
int tr[3200005][2],id[3200005],cnt;
ll k;
void init(){
	for(int i=1;i<=cnt;i++)tr[i][0]=tr[i][1]=0,id[i]=0;
	cnt=1;
}
int calc(int x,int y){
	int u=1,res=0;
	for(int i=30;i>=0;i--){
		int p=(x>>i)&1,q=(y>>i)&1;
		if(q==0)u=tr[u][p];
		else{
			res=max(res,id[tr[u][p]]);
			u=tr[u][p^1];
		}
		if(!u)break;
	}
	res=max(res,id[u]);
	return res;
}
void insert(int loc,int x){
	int u=1;
	id[u]=max(id[u],loc);
	for(int i=30;i>=0;i--){
		int p=(x>>i)&1;
		if(!tr[u][p])tr[u][p]=++cnt;
		u=tr[u][p];
		id[u]=max(id[u],loc);
	}
}
bool check(int x){
	ll sum=0;
	init();
	for(int i=1;i<=n;i++){
		p[i]=calc(a[i],x);
		p[i]=max(p[i],p[i-1]);
		sum+=p[i];
		insert(i,a[i]);
	}
	return sum>=k;
}
int main(){
	scanf("%d",&t);
	while(t--){
		scanf("%d%lld",&n,&k);
		for(int i=1;i<=n;i++)scanf("%d",&a[i]);
		int l=0,r=(1<<30),res=0;
		while(l<=r){
			int mid=(l+r>>1);
			if(check(mid))r=mid-1,res=mid;
			else l=mid+1;
		}
		printf("%d\n",res);
	}
	return 0;
} 

标签:int,res,每日,CF1983F,tr,mid,max,一题,id
From: https://www.cnblogs.com/kentsbk/p/18303330

相关文章

  • 每日一笑7.15
    先跟大家说声抱歉哈,最近有点忙,昨天没法发每日一笑节目,接下来我2天至少会更新一次,希望大家体谅!老师:“请用‘一边……一边……’造句。”学生:“我一边脱衣服,一边穿裤子。”老师:“你到底是脱还是穿啊?”学生:“我中暑了,在脱衣服;可外面冷,所以还要穿裤子。”小明:“妈妈,我是从......
  • 每日一问,请你谈一谈你对HashMap的理解。
    HashMap底层是数组加链表的结构,在jdk1.8之后又加入了红黑树。当添加一个元素(key-value)时,首先计算键值对的key的hash值,以此来确定插入到数组中的位置;允许有null值和null键。如果根据hash值确定的数组位置中已经存在元素,就添加到同一个hash值的元素的后面,于是形成了链表;Entry也就......
  • 2024/7/14 每日一题 + 周赛P3/P4
    807.保持城市天际线问题描述给你一座由nxn个街区组成的城市,每个街区都包含一座立方体建筑。给你一个下标从0开始的nxn整数矩阵grid,其中grid[r][c]表示坐落于r行c列的建筑物的高度。城市的天际线是从远处观察城市时,所有建筑物形成的外部轮廓。从东、南......
  • GitHub每日最火火火项目(7.13)
    项目名称:public-apis/public-apis项目介绍:这是一个集体列出的免费APIs项目。它可能为开发者提供了一个便捷的资源,汇集了各种免费的API,有助于开发者在开发过程中快速找到所需的接口,节省时间和精力。通过使用这些免费的API,开发者可以丰富自己的应用功能,提升用户体......
  • GitHub每日最火火火项目(7.12)
    项目名称:public-apis/public-apis项目介绍:这是一个集体列表,包含了各种免费的API。该项目可能致力于收集和整理不同领域的免费API,为开发者提供便利,使其能够更轻松地获取所需的数据和功能。通过使用这些免费的API,开发者可以节省开发成本,提高开发效率,并且能够快速构......
  • 2024/7/13 每日一题:数组是否有序
    3011.数组是否可以变为有序给你一个下标从0开始且全是正整数的数组nums。一次操作中,如果两个相邻元素在二进制下数位为1的数目相同,那么你可以将这两个元素交换。你可以执行这个操作任意次(也可以0次)。如果你可以使数组变有序,请你返回true,否则返回false。......
  • 每日一笑7.13
    #include<bits/stdc++.h>#include<windows.h>usingnamespacestd;intmain(){ printf("盘点全网十大爆笑名字:\n"); printf(" 1.琵燕,多么好听的名字,可惜他姓梅。\n"); Sleep(2000); printf(" 2.拔杰,多么高端的名字,可惜他姓朱。\n"); Sleep(2000); print......
  • python每日学习4:函数的定义和各类参数定义与用法
    目录目录一、函数的定义二、参数的定义和用法1、必选参数2、默认参数3、可变参数4、关键字参数5、命名关键字参数三、参数在实际操作中的要求一、函数的定义1、函数代码块以def关键词开头,后接函数名称和圆括号()2、在圆括号内定义传入参数3、函数的第一行语句可以......
  • 高级java每日一道面试题-2024年7月12日
    如果有遗漏,评论区告诉我进行补充面试官问:你对IO流了解多少我回答:一.什么是JavaIO流?回答:JavaIO流是用于处理输入和输出操作的一组类和接口。它允许程序从不同的数据源(如文件、网络连接、内存缓冲区等)读取数据或将数据写入到不同的目标位置。IO流分为字节流和......
  • GitHub每日最火火火项目(7.11)
    项目名称:public-apis项目介绍:public-apis是一个集体列表,收集了各种免费的API。它为开发者提供了一个便捷的资源,使得他们可以更容易地找到和使用适合自己项目的API。通过这个项目,开发者可以节省时间和精力,无需自己去寻找和筛选各种API。该项目的存在有助于促进开发......