题目描写叙述

知道 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的更多相关文章

  1. ASP.NET MVC请求处理管道生命周期的19个关键环节(13-19)

    在上一篇"ASP.NET MVC请求处理管道生命周期的19个关键环节(7-12) ",体验了7-12关键环节,本篇继续. ⒀当请求到达UrlRoutingModule的时候,Url ...

  2. 【BZOJ 1319】 Sgu261Discrete Rootsv (原根+BSGS+EXGCD)

    1319: Sgu261Discrete Roots Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 389  Solved: 172 Descriptio ...

  3. Ural 1319 - Hotel

       You programmers are lucky! You don't have to deal with these terrible people – designers… This st ...

  4. (light oj 1319) Monkey Tradition 中国剩余定理(CRT)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1319 In 'MonkeyLand', there is a traditional ...

  5. bzoj1420/1319 Discrete Root

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1420 http://www.lydsy.com/JudgeOnline/problem.ph ...

  6. SJTU 1077 加分二叉树

    http://acm.sjtu.edu.cn/OnlineJudge/problem/1077 题意: 设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3…,n为节点 ...

  7. WIKIOI 1319 玩具装箱

    1319 玩具装箱 题目描述 Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维 ...

  8. WUSTOJ 1319: 球(Java)并查集

    题目链接:1319: 球 参考:wustoj 1319 球-wust_tanyao,并查集 并查集系列:WUSTOJ 1346: DARK SOULS(Java)并查集 Description Icy ...

  9. 1319 - Monkey Tradition

    1319 - Monkey Tradition   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB ...

随机推荐

  1. linux下安装Tomcat和java jdk

    1:上传jdk的gz文件到linux’系统 2:解压缩这个文件 tar –zxvf  文件名.tar.gz –C  指定目录 比如我这里解压到 /root/apps/jdk tar –zxvf  jd ...

  2. ASP.NET-GUID扩展类使用

    在NUGET上有一个GUID的类,安装试用一下它的方法 将string转为guid对象 Guid ad = new Guid("{99009327-15D2-4A69-B015-BEAC11 ...

  3. HDU 2421

    由算术基本定理N=p1^e1*p2^e2....ps^es,可知一个素的因子个数为(e1+1)*(e2+1)*...*(es+1). 而N的一人因子必定也有n=p1^k1*p2^k2....*ps^k ...

  4. 数据结构 - 树形选择排序 (tree selection sort) 具体解释 及 代码(C++)

    树形选择排序 (tree selection sort) 具体解释 及 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 算法逻辑: 依据节点的大小, ...

  5. RandomAccessFile操作文件

    package file; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; ...

  6. iOS UI10_带分区的省市区

    // // MainViewController.m // UI10_带分区的省市区 // // Created by dllo on 15/8/11. // Copyright (c) 2015年 ...

  7. Qt 3D教程(三)实现对模型材质參数的控制

    Qt 3D教程(三)实现对模型材质參数的控制 蒋彩阳原创文章,首发地址:http://blog.csdn.net/gamesdev/article/details/47131841.欢迎同行前来探讨. ...

  8. Default Document <defaultDocument> IIS中的默认页面

    https://docs.microsoft.com/en-us/iis/configuration/system.webserver/defaultdocument/index Default do ...

  9. 最长回文子串 C++实现 java实现 leetcode系列(五)

    给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &qu ...

  10. oracle 11g sql优化之行迁移处理(加大BLOCK块)

    行链接 产生原因:当一行数据大于一个数据块,ORACLE会同时分配两个数据块,并在第一个块上登记第二个块的地址,从而形成行链接. 预防方法:针对表空间扩大数据块大小.检查:analyze table ...