SJTU 1319. countColors
题目描写叙述
知道 psypaint 怎么用吗?在巫女系统全面普及的未来世界。非常少人会知道 psypaint 的使用方法。
而身处在公安局作为监视官的朱同学。为了办案须要研究起了 psypaint 的使用方法。
如今朱面前的显示屏上是 psypaint 的操作画面。画面上有一张纯白色画布,画布能够依据须要无限延伸。
如今剪贴板里有一张 n*m 像素的图片,图片上有些像素有颜色。没颜色的地方则是透明的。
颜色有 3 种,分别用 R,G,B 表示,而透明则用’ . ’表示。第一次粘贴操作,剪贴板会以画布(1,1)位置为图片的左上角把图片粘贴上去,第二次粘贴操作则以(2,2)为左上角。以此类推。注意到图片有颜色的地方会覆盖掉画布原有位置的颜色。而透明则显示的还是原来画布的颜色。如今朱同学不小心按了 T 次粘贴操作。请问 T 次操作之后颜色为 R,G,B 的像素各有多少个。
输入格式
第一行 n,m
接下来是一个 n*m 的字符矩阵。描写叙述了剪贴板里的图片
最后一行是 T
输出格式
一行输出 3 个数。用空格隔开为 R,G,B 颜色像素的数量。
输入例子
3 3
..G
R..
BG.
3
输出例子
3 4 3
数据约定
对于 30%数据 T<=50
对于全部数据保证 1<=n,m<=50,1<=T<=10^9
思路:先动手写几个。发现规律,我们从斜线考虑。假设在出现R,G。B之前还没有出现‘.’的话,那么因为覆盖的话,那么这些将出现t次。然后就是先出现过像素的话。那么接下出现的像素不会被覆盖掉,所以也要考虑。至于都是空白的话,就是不考虑了
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
typedef long long ll;
using namespace std;
const int maxn = 60; int n, m, t;
char g[55][55];
ll ans[3]; void deal(int x, int y) {
int flag = 0;
int tmp = 1;
while (g[x][y] != 0) {
if (flag) {
if (g[x][y] == '.') tmp++;
else {
if (g[x][y] == 'R') ans[0] += min(t, tmp);
else if (g[x][y] == 'G') ans[1] += min(t, tmp);
else if (g[x][y == 'B']) ans[2] += min(t, tmp);
tmp = 1;
}
} else if (g[x][y] != '.') {
if (g[x][y] == 'R') ans[0] += t;
else if (g[x][y] == 'G') ans[1] += t;
else if (g[x][y] == 'B') ans[2] += t;
flag = 1;
}
x++;
y++;
}
} int main() {
while (scanf("%d%d", &n, &m) != EOF) {
memset(g, 0, sizeof(g));
memset(ans, 0, sizeof(ans));
for (int i = 0; i < n; i++)
scanf("%s", g[i]);
scanf("%d", &t); for (int i = 0; i < n; i++)
deal(i, 0);
for (int i = 1; i < m; i++)
deal(0, i);
printf("%lld %lld %lld\n", ans[0], ans[1], ans[2]);
}
return 0;
}
SJTU 1319. countColors的更多相关文章
- ASP.NET MVC请求处理管道生命周期的19个关键环节(13-19)
在上一篇"ASP.NET MVC请求处理管道生命周期的19个关键环节(7-12) ",体验了7-12关键环节,本篇继续. ⒀当请求到达UrlRoutingModule的时候,Url ...
- 【BZOJ 1319】 Sgu261Discrete Rootsv (原根+BSGS+EXGCD)
1319: Sgu261Discrete Roots Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 389 Solved: 172 Descriptio ...
- Ural 1319 - Hotel
You programmers are lucky! You don't have to deal with these terrible people – designers… This st ...
- (light oj 1319) Monkey Tradition 中国剩余定理(CRT)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1319 In 'MonkeyLand', there is a traditional ...
- bzoj1420/1319 Discrete Root
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1420 http://www.lydsy.com/JudgeOnline/problem.ph ...
- SJTU 1077 加分二叉树
http://acm.sjtu.edu.cn/OnlineJudge/problem/1077 题意: 设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3…,n为节点 ...
- WIKIOI 1319 玩具装箱
1319 玩具装箱 题目描述 Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维 ...
- WUSTOJ 1319: 球(Java)并查集
题目链接:1319: 球 参考:wustoj 1319 球-wust_tanyao,并查集 并查集系列:WUSTOJ 1346: DARK SOULS(Java)并查集 Description Icy ...
- 1319 - Monkey Tradition
1319 - Monkey Tradition PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB ...
随机推荐
- linux下安装Tomcat和java jdk
1:上传jdk的gz文件到linux’系统 2:解压缩这个文件 tar –zxvf 文件名.tar.gz –C 指定目录 比如我这里解压到 /root/apps/jdk tar –zxvf jd ...
- ASP.NET-GUID扩展类使用
在NUGET上有一个GUID的类,安装试用一下它的方法 将string转为guid对象 Guid ad = new Guid("{99009327-15D2-4A69-B015-BEAC11 ...
- HDU 2421
由算术基本定理N=p1^e1*p2^e2....ps^es,可知一个素的因子个数为(e1+1)*(e2+1)*...*(es+1). 而N的一人因子必定也有n=p1^k1*p2^k2....*ps^k ...
- 数据结构 - 树形选择排序 (tree selection sort) 具体解释 及 代码(C++)
树形选择排序 (tree selection sort) 具体解释 及 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 算法逻辑: 依据节点的大小, ...
- RandomAccessFile操作文件
package file; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; ...
- iOS UI10_带分区的省市区
// // MainViewController.m // UI10_带分区的省市区 // // Created by dllo on 15/8/11. // Copyright (c) 2015年 ...
- Qt 3D教程(三)实现对模型材质參数的控制
Qt 3D教程(三)实现对模型材质參数的控制 蒋彩阳原创文章,首发地址:http://blog.csdn.net/gamesdev/article/details/47131841.欢迎同行前来探讨. ...
- Default Document <defaultDocument> IIS中的默认页面
https://docs.microsoft.com/en-us/iis/configuration/system.webserver/defaultdocument/index Default do ...
- 最长回文子串 C++实现 java实现 leetcode系列(五)
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &qu ...
- oracle 11g sql优化之行迁移处理(加大BLOCK块)
行链接 产生原因:当一行数据大于一个数据块,ORACLE会同时分配两个数据块,并在第一个块上登记第二个块的地址,从而形成行链接. 预防方法:针对表空间扩大数据块大小.检查:analyze table ...