博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu-4419-Colourful Rectangle-段树区,并寻求
阅读量:6553 次
发布时间:2019-06-24

本文共 2035 字,大约阅读时间需要 6 分钟。

这个问题很有趣的项目,写麻烦。它预计将有写了很长的时间。

好在,我想开了一个比较简单的方法。。

使用位计算,颜色RGB分别1,2,4,代表。

状态的长度了。

#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;#define maxn 11000#define mem(a,b) (memset(a),b,sizeof(a))#define lmin 1#define rmax len#define lson l,(l+r)/2,rt<<1#define rson (l+r)/2+1,r,rt<<1|1#define root lmin,rmax,1#define now l,r,rt#define int_now int l,int r,int rt#define INF 99999999#define LL __int64#define mod 10007#define eps 1e-6#define zero(x) (fabs(x)
mp;int du[maxn*2];int len;struct list{ int x; int y,yy; int cl; int leap; friend bool operator <(const list &a,const list &b) { return a.x
r||rr
=r) { yan[rt][cl]+=x; push_up(now); return; } updata(ll,rr,cl,x,lson); updata(ll,rr,cl,x,rson); push_up(now);}int main(){ int T,cas; scanf("%d",&T); cas=0; int n,x,y,xx,yy; char str[1110]; while(T--) { cas++; scanf("%d",&n); int cl; int ls=0; du[0]=-1; for(int i=1;i<=n;i++) { scanf("%s%d%d%d%d",str,&x,&y,&xx,&yy); if(str[0]=='R')cl=0; if(str[0]=='G')cl=1; if(str[0]=='B')cl=2; node[i*2-1].cl=cl; node[i*2-1].y=y ; node[i*2-1].leap=1; node[i*2-1].x=x; node[i*2-1].yy=yy; node[i*2 ].cl=cl; node[i*2 ].y=y ; node[i*2 ].leap=-1; node[i*2 ].x=xx; node[i*2 ].yy=yy; du[++ls]=y; du[++ls]=yy; } sort(node+1,node+n*2+1); sort(du,du+ls+1); len=0; for(int i=1;i<=ls;i++) { if(du[i]!=du[i-1]) { mp[du[i]]=++len; du[len]=du[i]; } } len--; LL are[8]; int st; st=0; creat(); memset(are,0,sizeof(are)); for(int i=1;i<=n*2;i++) { int l=mp[node[i].y]; int r=mp[node[i].yy]; for(int j=1;j<=7;j++) { are[j]+=(LL)color[1][j]*(node[i].x-st); } st=node[i].x; updata(l,r-1,node[i].cl,node[i].leap,root); } printf("Case %d:\n",cas); printf("%I64d\n",are[1]); printf("%I64d\n",are[2]); printf("%I64d\n",are[4]); printf("%I64d\n",are[3]); printf("%I64d\n",are[5]); printf("%I64d\n",are[6]); printf("%I64d\n",are[7]); }}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
Redis基准
查看>>
如何使用openssl生成RSA公钥和私钥对
查看>>
当我们安装使用时,会出现eclipse启动不了,出现“Java was started but returned exit code=13......”的问题...
查看>>
2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016)
查看>>
简明 MongoDB 入门教程
查看>>
.NET Core 3.0中的数据库驱动框架System.Data
查看>>
北大AI公开课2019 | 雷鸣:人工智能革命与机遇
查看>>
英特尔开源计算机视觉数据标签工具CVAT,加速数据注释
查看>>
SQL Server内存泄漏
查看>>
NoSQL生态系统——一致性RWN协议,向量时钟,gossip协议监测故障
查看>>
用Windows Live Writer发布日志到BlogBus
查看>>
解决公司服务器加入域中不能启动应用系统的问题
查看>>
解压缩 操作
查看>>
rsyslog收集nginx日志配置
查看>>
如何判断各种手机浏览器?
查看>>
consule服务注册和发现 安装 部署
查看>>
多个帐户都用root 来登录 怎么看另一个用户使用的那些命令
查看>>
Redis小记
查看>>
Map集合案例
查看>>
《FPGA全程进阶---实战演练》第十一章 VGA五彩缤纷
查看>>