主席树复习

主席树:可持久化权值线段树
模板(查询区间第k大,单点修改):luogu【模板】可持久化线段树2
利用了前缀和的思想,动态开点
利用已有的且不变动的部分减小空间复杂度
在这里插入图片描述


#include<bits/stdc++.h>
#define ll long long
#define maxn 200010
using namespace std;
int n,m;
ll a[maxn];//原数组 
ll b[maxn];//离散化数组
int tot;
struct node{
	int l,r,sum;
}e[maxn*50]; 
int cnt,rot[maxn];//根节点数组 
void insert(int l,int r,int pre,int &now,int k){
	e[++cnt]=e[pre];
	now=cnt;
	e[now].sum++;
	if(l==r)return ;
	int mid=(l+r)>>1;
	if(k<=mid)insert(l,mid,e[pre].l,e[now].l,k);
	else insert(mid+1,r,e[pre].r,e[now].r,k); 
}
int query(int l,int r,int L,int R,int k){
	if(l==r){
		return l;
	}
	int mid=(l+r)>>1;
	int res=e[e[R].l].sum-e[e[L].l].sum;
	if(k<=res)return query(l,mid,e[L].l,e[R].l,k);
	else return query(mid+1,r,e[L].r,e[R].r,k-res);
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
		b[i]=a[i];
	}
	sort(b+1,b+n+1);
	tot=unique(b+1,b+n+1)-b-1;
	for(int i=1;i<=n;i++){
		int k=lower_bound(b+1,b+tot+1,a[i])-b;
		insert(1,n,rot[i-1],rot[i],k);
	}
	for(int L,R,k,i=1;i<=m;i++){
		scanf("%d%d%d",&L,&R,&k);
		cout<<b[query(1,n,rot[L-1],rot[R],k)]<<endl;
	}
	return 0;
}
<think>好的,用户想在CentOS 7最小化安装后添加图形界面。我需要根据提供的引用资料来解答这个问题。首先,引用[1]提到在CentOS 6中添加Gnome需要运行yum groupinstall basic-desktop等命令,但用户用的是CentOS 7,所以可能命令有所不同。CentOS 7的软件组管理可能使用类似的yum命令,但需要确认正确的软件组名称。 接着,引用[3]提到添加KDE桌面环境用的是groupinstall kde-desktop,但用户可能更想要Gnome,因为CentOS默认的图形界面通常是Gnome。需要查找CentOS 7对应的Gnome软件组名称。可能类似“GNOME Desktop”这样的组名。 然后,引用[2]中的安装依赖包可能也是必要的,比如gcc、autoconf等,但图形界面安装可能需要更多的依赖,比如X11和字体包,这些可能在安装桌面组时自动解决,但可能需要额外安装。 另外,引用[4]和[5]提到CentOS 7安装配置,但主要是安装过程,可能对添加GUI帮助不大。需要确保用户已经正确安装CentOS 7 minimal,并且网络连接正常,能够使用yum安装软件包。 步骤应该是:首先更新系统,然后安装Gnome桌面组,可能使用yum groupinstall "GNOME Desktop",然后启用图形界面目标,最后重启系统。同时可能需要安装X Window系统,不过可能包含在桌面组中。用户可能还需要设置默认启动目标为图形界面,使用systemctl set-default graphical.target。 需要验证这些步骤是否正确,以及软件组名称在CentOS 7中是否准确。可能存在拼写差异,比如大小写或者空格,需要确保命令正确。此外,安装完成后可能需要配置显示管理器,如GDM,并确保防火墙允许相关服务。 还要考虑用户是否需要中文字体或其他语言支持,可能需要额外安装字体包。此外,用户可能遇到依赖问题,需要确保启用了正确的仓库,比如base和epel等。 最后,生成相关问题,比如如何切换默认启动目标、安装其他桌面环境、解决安装过程中的依赖问题等。</think>### CentOS 7最小化安装后添加图形界面步骤 1. **更新系统软件包** 先确保系统已更新到最新版本: ```bash sudo yum update -y ``` 2. **安装GNOME桌面环境** CentOS 7使用软件组(group)管理桌面环境,安装GNOME需执行: ```bash sudo yum groupinstall "GNOME Desktop" "Graphical Administration Tools" -y ``` 3. **安装X Window系统(若未自动安装)** 部分最小化安装可能缺少X11基础组件,需单独安装: ```bash sudo yum install xorg-x11-server-Xorg xorg-x11-xinit xorg-x11-apps -y ``` 4. **设置图形界面为默认启动** 修改系统启动目标并重启: ```bash sudo systemctl set-default graphical.target sudo reboot ``` 5. **验证图形界面** 重启后应自动进入GNOME登录界面,若仍为命令行,可手动启动: ```bash startx ``` ### 注意 - 安装过程需约1GB磁盘空间,依赖网络下载软件包[^1][^3] - 若需要中文字体支持,可补充安装: ```bash sudo yum install cjkuni-ukai-fonts cjkuni-uming-fonts -y ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值