-
题意:给你\(n\)个用16进制表示的RGB三元组,\(q\)个询问,询问区间\([l,r]\)的三元组和,如果某个三个元组的状态为\(1\),那么直接用该三元组的值覆盖前面的值,如果是\(2\)则正常求和.
-
题解:用nx数组记录离当前位置最近的状态为\(1\)的三元组的位置,然后前缀和记录判断一下就好了.这题读入好像卡的很死,要用scanf.
-
代码:
#include <bits/stdc++.h> #define ll long long #define fi first #define se second #define pb push_back #define me memset #define rep(a,b,c) for(int a=b;a<=c;++a) #define per(a,b,c) for(int a=b;a>=c;--a) const int N = 1e6 + 10; const int mod = 1e9 + 7; const int INF = 0x3f3f3f3f; using namespace std; typedef pair<int,int> PII; typedef pair<ll,ll> PLL; ll gcd(ll a,ll b) {return b?gcd(b,a%b):a;} ll lcm(ll a,ll b) {return a/gcd(a,b)*b;} int n,q; struct misaka{ int m; int r,g,b; }lay[N],sum[N]; int nx[N]; int fpow(int a,int k){ int res=1; while(k){ if(k&1) res=res*a; k>>=1; a*=a; } return res; } int main() { //ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); int _; cin>>_; while(_--){ scanf("%d %d",&n,&q); rep(i,1,n){ scanf("%d",&lay[i].m); char s[6]; scanf("%s",&s); for(int k=0;k<6;k+=2){ int num=0; rep(j,k,k+1){ int cnt=0; if(s[j]=='A') cnt=10; else if(s[j]=='B') cnt=11; else if(s[j]=='C') cnt=12; else if(s[j]=='D') cnt=13; else if(s[j]=='E') cnt=14; else if(s[j]=='F') cnt=15; else cnt=s[j]-'0'; num+=cnt*fpow(16,1-(j-k)); } // cout<<num<<'\n'; if(k==0) lay[i].r=num; if(k==2) lay[i].g=num; if(k==4) lay[i].b=num; } } int f=0; rep(i,1,n){ if(lay[i].m==1){ sum[i].r=lay[i].r; sum[i].g=lay[i].g; sum[i].b=lay[i].b; f=i; } else{ sum[i].r=sum[i-1].r+lay[i].r; sum[i].g=sum[i-1].g+lay[i].g; sum[i].b=sum[i-1].b+lay[i].b; } // cout<<sum[i].r<<' '<<sum[i].g<<' '<<sum[i].b<<'\n'; nx[i]=f; } rep(i,1,q){ int l,r; scanf("%d %d",&l,&r); if(lay[r].m==1 || nx[r]>=l){ printf("%02X%02X%02X\n",min(255,sum[r].r),min(255,sum[r].g),min(255,sum[r].b)); continue; } int resr=min(255,sum[r].r-sum[l-1].r); int resg=min(255,sum[r].g-sum[l-1].g); int resb=min(255,sum[r].b-sum[l-1].b); printf("%02X%02X%02X\n",resr,resg,resb); } } return 0; }
网站首页 > gitee 正文
2021“MINIEYE杯”中国大学生算法设计超级联赛(3)1007.Photoshop Layers (前缀和,进制转换)
sanyeah 2024-04-01 11:51:46 gitee 6 ℃ 0 评论
?????????????????????? ???????????????? ?????? ???????? ????????
???????????????? ???? ????????
猜你喜欢
- 2024-04-01 4.字符串(字符串l)
- 2024-04-01 几个问题(几个问题英语)
- 2024-04-01 Android 网络显示图片(进制转换计算器app)
- 2024-04-01 Linux简单命令使用(linux基础使用命令)
- 2024-04-01 Oracle- 初识(oracle基础知识)
- 2024-04-01 取枚举值和枚举名几种方法效率测试
- 2024-04-01 吐槽下c标准库(c标准库pdf高清非扫描版)
- 2024-04-01 GridView内嵌DropDownList操作(gridview rowdatabound)
- 2024-04-01 韩国全球首推3D电视机 可实现网上通话
- 2024-04-01 BugNet0.7.881.0汉化免安装版源码(后续版本不断汉化更新中,敬请期待!)
你 发表评论:
欢迎- 04-25用微服务平台框架,实现高效的流程化办公!
- 04-25国内主流的低代码开发平台 2024最好用的低代码厂商大全
- 04-25出生率持续下降,而低代码,成了!
- 04-25再探前端低代码的“野路子”
- 04-25APaaS 企业级低代码平台 All In One
- 04-25 巨头布局,资本支持,低代码的好时代要来了?
- 04-25开源微服务低代码的几大亮点内容
- 04-25微服务 SaaS 低代码开发平台
- 0℃未命名
- 最近发表
- 标签列表
-
- gitee (437)
- 码云 (330)
- vant (426)
- pig (303)
- bee (372)
- 文件存储系统 (317)
- gitee图片不显示 (348)
- kettleweb (315)
- 百度开源 (335)
- vs助手 (309)
- crypto-js.js (361)
- vue-element-admin (380)
- g6 (352)
- vconsole (370)
- python基础教程 (329)
- roses (325)
- 表单设计器 (317)
- oa办公 (329)
- yii2 (406)
- uni-ui (362)
- psutil (336)
- hikaricp (386)
- 超级转换 (328)
- tigervnc (328)
- cs-notes (299)
本文暂时没有评论,来添加一个吧(●'◡'●)