【ZJOI2003】密码机 线段树

题目描述

  一台密码机按照以下的方式产生密码:首先往机器中输入一系列数,然后取出其中一部分数,将它们异或以后得到一个新数作为密码。现在请你模拟这样一台密码机的运行情况,用户通过输入控制命令来产生密码。密码机中存放了一个数列,初始时为空。密码机的控制命令共有3种:
  ADD
    把到数列的最后。
  REMOVE
    在数列中找出第一个等于的数,把它从数列中删除。
  XOR BETWEEN AND
    对于数列中所有大于等于并且小于等于的数依次进行异或,输出最后结果作为密码。如果只有一个数满足条件,输出这个数。如果没有任何数满足条件,输出0。
  你可以假设用户不会REMOVE一个不存在于数列中的数,并且所有输入的数都不超过20000。

数据范围

输入数字小于20000,操作小于60000

样例输入

ADD 5
ADD 6
XOR BETWEEN 1 AND 10
REMOVE 5
XOR BETWEEN 6 AND 8

样例输出

3
6

解题思路

大水题,不写解题思路了233.
建一棵线段树,维护区间内的异或和,至于添加和删除,其实并没有什么区别=-=。

代码

#include <bits/stdc++.h>
using namespace std;
inline int Getint(){int x=0,f=1;char ch=getchar();while('0'>ch||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while('0'<=ch&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
struct node{
    int L,r,val;
}Tree[80005];
void Build(int v,int L,int r){
    Tree[v]=(node){L,r,0};
    if(L==r)return;
    Build(2*v,L,(L+r)/2);
    Build(2*v+1,(L+r)/2+1,r);
}
void Insert(int v,int pos){
    Tree[v].val^=pos;
    if(Tree[v].L==Tree[v].r)return;
    if(pos<=(Tree[v].L+Tree[v].r)/2)Insert(2*v,pos);
    else Insert(2*v+1,pos);
}
int Ask(int v,int L,int r){
    if(r<Tree[v].L||Tree[v].r<L)return 0;
    if(L<=Tree[v].L&&Tree[v].r<=r)return Tree[v].val;
    return Ask(2*v,L,r)^Ask(2*v+1,L,r);
}
int main(){
    char s[66];
    Build(1,0,20001);
    while(scanf("%s",s)!=EOF){
        string ss=s;
        if(ss=="ADD"||ss=="REMOVE")Insert(1,Getint());
        else {
            int L=Getint(),r=Getint();
            cout<<Ask(1,L,r)<<"\n";
        }
    }
    return 0;
}

转载于:https://www.cnblogs.com/Cedric341561/p/6811008.html

### 如何清理 Harbor 镜像仓库以释放磁盘空间 为了有效管理并优化存储资源,在 Harbor 中可以采取多种策略来清理不再使用的镜像,从而释放磁盘空间。 #### 使用垃圾回收机制 (Garbage Collection) Harbor 提供了内置的垃圾收集功能,用于清除未被引用的对象,如旧版本的层文件和配置数据。执行此操作前建议先停止所有正在运行的服务实例,以免造成不必要的冲突或丢失当前工作中的更改[^3]。 可以通过命令行工具 `docker-compose` 或者直接通过 API 调用来触发 GC 进程: 对于 Docker Compose 方式部署的情况: ```bash cd /path/to/harbor/installation/ ./prepare docker-compose run --rm gc ``` 如果采用 Helm Chart 安装,则需进入 Core Pod 内部并通过 curl 请求启动 GC 流程: ```bash kubectl exec -it <core-pod-name> sh curl http://localhost:8080/api/v2.0/system/gc/policies \ -X POST \ -H "Content-Type: application/json" \ -d '{"schedule":{"type":"Manual"},"registry_id":null}' ``` #### 设置保留策略 除了手动触发外,还可以设置自动化的保留规则,比如只保存最新的 N 个标签或是特定时间段内的构建成果。这有助于长期维持系统的整洁度而不必频繁干预。 访问 Admin 页面 -> Projects -> Select Project -> Configuration 下找到 Cleanup Policy 来定义这些参数[^4]。 #### 删除无用项目/库 定期审查各个项目的实际需求,及时移除那些已经废弃不用或者重复存在的 repository 可显著减少占用量。注意这一动作不可逆,请谨慎确认后再行动。 以上措施结合起来能够有效地帮助管理员维护好 Harbor 实例上的可用容量状况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值