poj2777

news/2025/2/14 3:59:55/

poj2777
区间修改,区间查询
mark=-1表示这个区间有多种颜色,否则就1种

#include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<set>
#include<map>
#include<stack>
#include<cstring>
#define inf 2147483647
#define For(i,a,b) for(register long long i=a;i<=b;i++)
#define p(a) putchar(a)
#define g() getchar()
#define N 100010
using namespace std;
long long a[N],n,m,k,x,y,t,cnt;
bool vis[50];
char flag;
struct seg{long long mark;
}s[N<<3];void in(long long &x){long long y=1;char c=getchar();x=0;while(c<'0'||c>'9'){if(c=='-')y=-1;c=getchar();}while(c<='9'&&c>='0'){ x=(x<<1)+(x<<3)+c-'0';c=getchar();}x*=y;
}
void o(long long x){if(x<0){p('-');x=-x;}if(x>9)o(x/10);p(x%10+'0');
}inline void build(long long rt,long long l,long long r){s[rt].mark=1;if(l==r) return;long long mid=(l+r)>>1;build(rt<<1, l, mid);build(rt<<1|1, mid+1, r);
}inline void pushdown(long long rt,long long l,long long r){if(s[rt].mark!=-1){s[rt<<1].mark=s[rt<<1|1].mark=s[rt].mark;s[rt].mark=-1;}
}inline void update(long long rt,long long nl,long long nr,long long l,long long r,long long k){if(nr<l||nl>r)return;if(nl>=l&&nr<=r){s[rt].mark=k;return;}pushdown(rt,nl,nr);long long mid=(nl+nr)>>1;update(rt<<1, nl, mid, l, r, k);update(rt<<1|1, mid+1, nr, l, r, k);
}inline void query(long long rt,long long nl,long long nr,long long l,long long r){if(nl>r||nr<l) return;if(s[rt].mark!=-1){vis[s[rt].mark]=1;return;}    long long mid=(nl+nr)>>1;query(rt<<1, nl, mid, l, r);query(rt<<1|1, mid+1, nr, l, r);
}int main(){in(n);in(t);in(m);build(1,1,n);For(i,1,m){cin>>flag;if(flag=='C'){in(x);in(y);in(k);update(1,1,n,x,y,k);}else{memset(vis,0,sizeof(vis));in(x);in(y);query(1,1,n,x,y);cnt=0;For(j,1,t) if(vis[j]) cnt++;o(cnt);p('\n');}}return 0;
}

 

转载于:https://www.cnblogs.com/war1111/p/11560321.html


http://www.ppmy.cn/news/491706.html

相关文章

文件特殊权限(SUID,SGID,Sticky)

三种特殊权限&#xff1a;SUID&#xff0c;SGID&#xff0c;Sticky SUID 安全上下文&#xff0c;何为安全上下文 安全上下是一个访问控制属性&#xff0c;是selinux中的重要组成部分&#xff0c;在进行移动时&#xff0c;不会改变文件的属性和权限&#xff0c;而复制的过程会…

单元6:Linux系统中的权限管理

一、权限查看及读取 1、权限查看 | 命令功能ls -l file查看文件权限ls -ld dir查看目录权限 2、权限的读取 文件的属性被叫做文件的元数据(meta data) 一种元数据用1个byte来记录内容 文件权限信息&#xff1a; “- | rw-r–r-- | . | 1 | root | root | 0 | Apr 12 10:…

工作了一辈子,你的住房公积金一共能有多少钱?

工作了快二十年了&#xff0c;02年大学毕业&#xff0c;进的私企两年后才开始有公积金账户&#xff0c;从140元每个月开始缴纳。到了现在这个单位才基本趋于正常&#xff0c;每月也就总共缴纳1858元。现在总额才15万多一点。假设我再工作二十年才退休&#xff0c;按照现在的扣款…

公积金提取一次需要间隔多长时间

住房公积金提取一次需要间隔的时间&#xff0c;得看提取的类型是什么&#xff1a; 1.购房并使用房贷&#xff1a;每个月可以提取一次住房公积金&#xff0c;累计提取总额不能超过实际发生的住房支出。 2.购房一次性付款&#xff1a;职工及其配偶每季度可以全额提取一次住房公…

事业单位工资计算机公积金计算,事业单位住房公积金基数怎么算?

阅读本文前&#xff0c;请您先点击上面的蓝色字体“人事聊”&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到最新文章了。每天都有分享。完全是免费订阅&#xff0c;请放心关注 事业单位住房公积金基数都是按职工的月工资来进行计算&#xff1b;对于公积金的计…

广州如何下载公积金的缴交证明和个人信息表

广州如何下载公积金的缴交证明和个人信息表 广州如何下载公积金的缴交证明和个人信息表 广州如何下载公积金的缴交证明和个人信息表 打开广州住房公积金管理中心&#xff08;http://gjj.gz.gov.cn/&#xff09; 在菜单中找到网上办事 在后面的菜单中&#xff0c;点击个人缴交…

公积金的提取规则

平常咱们工作中单位都缴纳一部分的的住房公积金&#xff0c;也有一些已经工作了一定年限的朋友&#xff0c;自己的公积金账户里少则也有上万元&#xff0c;多则可能都有十几万元&#xff0c;那么怎么才能把公积金提取出来呢 公积金官网&#xff1a;http://www.shgjj.com/ 第一&…

住房公积金提取

办理住房公积金提取&#xff1a;需提供 a.本人身份证复印件&#xff1b; b. 购房合同复印件&#xff1b; c.购房发票复印件和契税发票复印件 d. 银行卡复印件&#xff1b; e.房主为配偶的还需提供结婚证复印件和配偶方公积金支取记录单