CCF-201809-3

本题要注意的地方

  1. 对于RGB值,要先将10进制的RGB值转换成字符串,再以16进制逐个输出字符(十六进制值都是两位,这个问题也不大)。
  2. 输出完一行字符,输出换行符之前,要检查当前RGB值是否是默认状态,如果不是,要置为默认状态。
  3. 输入的RGB值大小写都有(这个要考虑进去)
  4. (比较坑的是)初始时就为默认状态,如果输出是默认不需要设置,直接输出空格,后面每行开始同理。

AC代码写的比较繁琐,把第一反应写下来了,没有细想,但想着是自己看的,就贴出来了

#include<bits/stdc++.h>
using namespace std;
typedef struct
{int R;int G;int B;
}RGB;
RGB rgb[1080][1920];
int Hex2N(string s)
{switch(s[0]){case 'F':return 15;case 'f':return 15;case 'E':return 14;case 'e':return 14;case 'D':return 13;case 'd':return 13;case 'C':return 12;case 'c':return 12;case 'B':return 11;case 'b':return 11;case 'A':return 10;case 'a':return 10;default:return s[0]-'0';}
}
string N2Char(int n)
{switch(n){case 0:return "\\x30";case 1:return "\\x31";case 2:return "\\x32";case 3:return "\\x33";case 4:return "\\x34";case 5:return "\\x35";case 6:return "\\x36";case 7:return "\\x37";case 8:return "\\x38";case 9:return "\\x39";}return "";
}
int Str2N(string s)
{int N;switch(s.length()){case 1:{N=Hex2N(s.substr(0,1));N=N*16+N;break;}case 2:{N=Hex2N(s.substr(0,1));N=N*16+Hex2N(s.substr(1,1));break;}}return N;
}
string N2Str(int n)
{string s="";if(n==0)s="\\x30";elsewhile(n){s=N2Char(n%10)+s;n=n/10;}return s;
}
int main()
{ios::sync_with_stdio(false);    int i,j,v,t,m,n,p,q,flag=0,N_R,N_G,N_B,Last_R=0,Last_G=0,Last_B=0;string str,s;cin>>m>>n;cin>>p>>q;for(i=0;i<n;i++)for(j=0;j<m;j++){cin>>str;switch(str.length()){case 2:{s=str.substr(1,1);rgb[i][j].R=Str2N(s);rgb[i][j].G=Str2N(s);rgb[i][j].B=Str2N(s);break;}case 4:{s=str.substr(1,1);rgb[i][j].R=Str2N(s);s=str.substr(2,1);rgb[i][j].G=Str2N(s);s=str.substr(3,1);rgb[i][j].B=Str2N(s);break;}case 7:{s=str.substr(1,2);rgb[i][j].R=Str2N(s);s=str.substr(3,2);rgb[i][j].G=Str2N(s);s=str.substr(5,2);rgb[i][j].B=Str2N(s);break;}}}for(i=0;i<n/q;i++){for(j=0;j<m/p;j++){N_R=0;N_G=0;N_B=0;for(v=i*q;v<(i+1)*q;v++)for(t=j*p;t<(j+1)*p;t++){N_R+=rgb[v][t].R;N_G+=rgb[v][t].G;N_B+=rgb[v][t].B;}N_R/=(p*q);N_G/=(p*q);N_B/=(p*q);if(N_R==Last_R&&N_G==Last_G&&N_B==Last_B)cout<<"\\x20";else if(N_R==0&&N_G==0&&N_B==0)cout<<"\\x1B\\x5B\\x30\\x6D\\x20";else {cout<<"\\x1B\\x5B\\x34\\x38\\x3B\\x32\\x3B";cout<<N2Str(N_R);cout<<"\\x3B";cout<<N2Str(N_G);cout<<"\\x3B";cout<<N2Str(N_B);cout<<"\\x6D\\x20";}Last_R=N_R;Last_G=N_G;Last_B=N_B;}if(Last_R!=0||Last_G!=0||Last_B!=0)cout<<"\\x1B\\x5B\\x30\\x6D";Last_R=0;Last_G=0;Last_B=0;cout<<"\\x0A";}return 0;
}

CCF-201809-3相关推荐

  1. CCF 差分约束--201809再卖菜

    问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜. 第一天,每个商店都自己定了一个正整数的价格.店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己 ...

  2. 201809 CCF

    201809-1 卖菜 问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜. 第一天,每个商店都自己定了一个价格.店主们希望自己的菜价和其他商店的一致,第二天,每一家商 ...

  3. CCF信息学竞赛和教育部竞赛管理出锅重播

    2018.09 教育部:严控全国性竞赛活动 原文:http://www.moe.gov.cn/srcsite/A06/s3321/201809/t20180920_349550.html 实行清单管理 ...

  4. CCF CSP认证菜鸟刷题日志

    CCF CSP菜鸟刷题日志(c/c++) 本萌新写给自己看的,要是有大佬路过,请多多指教orz 立个flag:每日一更,至201903 9月15ccf csp,冲鸭! 今天(2019.8.18)起每天 ...

  5. ccf题库java_CCF题库

    猿题库:https://blog.csdn.net/weixin_43905586/article/details/103115697 官网链接:http://cspro.org/ 201912 CC ...

  6. CCF认证历年真题 满分代码(更新至2018年12月)

    目标是集齐所有CCF认证试题的满分代码! 每次考试出题一般规律: 第一题:水题(稍微有些编程经验就可以写) 第二题:小模拟(处理比较简单的问题,掌握C++STL很有帮助) 第三题:大模拟(处理复杂的问 ...

  7. CCF CSP 201609-2 火车购票

    题目链接:http://118.190.20.162/view.page?gpid=T46 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排 ...

  8. ccf Markdown

    说实话,这种题如果给我返回结果我是一定可以写出来的但是ccf不返回结果很烦,这种题我根本不能一次写对.还有重写时发现好多考试之前根本没注意到的点比如删掉空行 .......=_= #include&l ...

  9. I'm stuck! ccf模拟题。

    ccf模拟题. I'm stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述 给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S' ...

  10. 计算机协会成立活动简报,“中国计算机学会CCF走进高校”活动在我校举行

    校新闻中心讯 9月13日下午,由中国计算机学会(CCF)主办的"CCF走进河南科技大学"活动在工科二号楼610举行.副校长魏世忠教授出席活动并致辞.长江学者.国家杰出青年基金获得者 ...

最新文章

  1. PHP-----PHP程序设计基础教程----第四章数组
  2. hibernate 7大主键生成策略详解与对象状态
  3. html 书架样式css,CSS3 响应式书架布局
  4. 弃医从码 | 从肄业少年到失业青年,再到科技工程师的逆袭人生路
  5. 【喜报】2016 年度最受欢迎中国开源软件TOP20出炉——JEECG、JEEWX双入围!
  6. flume监控一个文件实时采集新增的数据输出到控制台
  7. Ubuntu16.04实现Sphinx离线语音识别
  8. FileZilla Client中文乱码
  9. 漫画C语言 做个聊天软件你不懂也得懂
  10. 生成登录验证码,点击更换验证码图片
  11. 如何遮挡电影英汉字幕
  12. 红米K40重启的解决方案
  13. 【R语言】必学包之lubridate包
  14. 取消管理员取得所有权_解决win7系统下管理员取得所有权的技巧
  15. unity5(一)unity5新特性 unity下载与安装
  16. 2020扁皮筋排名_2020年高性价比弹弓推荐,(12月)弹弓选购攻略
  17. 王者无限火力服务器,王者荣耀无限火力
  18. U盘重装Win10系统教程
  19. 内存换CPU CPU换内存例子
  20. MySQL第一讲-mysql的基本框架和查询命令流程

热门文章

  1. 2022春招——芯动科技FPGA岗技术面(一面心得)
  2. SONY WH-1000XM3 User Guide
  3. vue使用keep-alive缓存页面 回到滚动位置
  4. [ACM]辽宁省赛2010 (HZNU 1081-1089)
  5. 蝴蝶效应 青蛙现象 鳄鱼法则 马太效应 木桶理论 二八定律(巴莱多定律) 破窗理论 羊群效应
  6. 学习Matlab第三天——画3D图
  7. ros之MarkerArray使用
  8. 安卓:点击空白处隐藏软键盘
  9. 【蓝桥杯集训·每日一题】AcWing 3777. 砖块
  10. 降低数据压力的几种解决方案