TC SRM 562 div2 B 题
题意:
给你一个矩形的画布,此画布由‘B’和‘.’组成,画T次每次画的时候他的左上角的起始点是确定的几位(1,1),(2,2),(3,3)......(T,T); 在画的过程中可能会出现相互覆盖求画完T次后一共有多少个‘B’
例
|
||
Returns: 10 |
思路:
假设矩形的长度为n次,开始我一直在思考覆盖完n次后减去多少,在第n次以后每一个减去的都一样了。不过这样会出现重复的减去,不对。我们只需要考虑在覆盖n个后第一个的总共剩下多少个没有被覆盖的。以后都是一样的了。最后我们只需要计算一下最后n-1个的数就可以了。最后计算的复杂度为O(50^3).
class PastingPaintingDivTwo
{public:long long countColors(vector <string> clipboard, int T){char tp[55][55];int i,j,ki,kj,k;int sz = clipboard.size();if (sz == 1){LL ans = 0;for (i = 0; i < clipboard[0].size(); ++i)if (clipboard[0][i] == 'B') ans += 1;// printf("11111111111111\n");ans = ans*T;return ans;}else{LL ans = 0;for (i = 0; i < sz; ++i){for (j = 0; j < clipboard[i].size(); ++j){tp[i][j] = clipboard[i][j];}}LL ct;for (k = 1; k < sz; ++k){for (i = k, j = 0; i < sz; ++i,++j){for (ki = k,kj = 0; ki < clipboard[i].size(); ++ki,++kj){if (clipboard[i][ki] == 'B' && clipboard[j][kj] == 'B'){tp[i][ki] = '.';}}}}ct = 0;for (i = 0; i < sz; ++i){for (j = 0; j < clipboard[i].size(); ++j){if (tp[i][j] == 'B') ct++;}}if (T - (sz - 1) > 0)ans = (LL)(T - (sz - 1))*ct;// cout<<ans<<endl;int p; CL(tp,0);int mk = min(sz - 1,T);for (p = 1; p <= mk; ++p){for (i = 0; i < sz; ++i){for (j = 0; j < clipboard[i].size(); ++j){tp[i][j] = clipboard[i][j];//tt[i][j] = clipboard[i][j];}}for (k = 1; k < sz - p; ++k){for (i = k, j = 0; i < sz; ++i,++j){for (ki = k,kj = 0; ki < clipboard[i].size(); ++ki,++kj){if (clipboard[i][ki] == 'B' && clipboard[j][kj] == 'B'){tp[i][ki] = '.';}}}}ct = 0;for (i = 0; i < sz; ++i){for (j = 0; j < clipboard[i].size(); ++j){if (tp[i][j] == 'B') ct++;}}ans += ct;}//printf("222222222222\n");return ans;}}
};
转载于:https://www.cnblogs.com/E-star/archive/2012/12/02/2797954.html
TC SRM 562 div2 B 题相关推荐
- TC SRM 593 DIV2 1000
很棒的DP,不过没想出,看题解了..思维很重要. 1 #include <iostream> 2 #include <cstdio> 3 #include <cstrin ...
- TC SRM 665 DIV2 B LuckyCycle 暴力
LuckyCycle Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.a ...
- TC SRM 553 DIV2
转载请注明出处,谢谢http://blog.csdn.net/acm_cxlove/article/details/7854526 by---cxlove 赤裸裸的又在送rate. 250 ...
- Topcoder口胡记 SRM 562 Div 1 ~ SRM 599 Div 1
据说做TC题有助于提高知识水平? :) 传送门:https://284914869.github.io/AEoj/index.html 转载请注明链接:http://www.cnblogs.com/B ...
- TC(SRM)和CF入门教程for ACMer[转载]
一.TC基本介绍TC的网址www.topcoder.com/tc,我们一般提到TC的时候是特指其中的Single Round Match(SRM).SRM的规则总结起来就是一句话:75分钟做完3道难度 ...
- TC(SRM)和CF入门教程for ACMer
一.TC基本介绍 TC的网址www.topcoder.com/tc,我们一般提到TC的时候是特指其中的Single Round Match(SRM). SRM的规则总结起来就是一句话:75分钟做完3道 ...
- TC SRM 655 Div1 Level 3 题解
TC SRM 655 Div1 Level 3 题解 题目传送门 dp+几何 首先可以发现凸包是顺时针排列的一些线段构成的.我们可以预处理每一个蓝点是否都在一个线段 r [ i ] → r [ j ] ...
- Topcoder Srm 671 Div2 1000 BearDestroysDiv2
\(>Topcoder \space Srm \space 671 \space Div2 \space 1000 \space BearDestroysDiv2<\) 题目大意 : 有一 ...
- SRM 543 Div2
决定以后多做一些TC,即使做不了比赛,也要多做一些TC上的题,顺便写一些结题报告什么的.不过像我这种在Div2混的弱菜,也写不出什么高质量的结题报告,而且1000pt的题,我基本都不用看了,尽量把25 ...
最新文章
- 最长不下降子序列的O(n^2)算法和O(nlogn)算法
- node那点事(二) -- Writable streams(可写流)、自定义流
- SpringBoot怎么直接访问templates下的html页面
- 【2016年第4期】大数据应用系统的消息驱动架构
- Django使用消息提示简单的弹出个对话框
- ng-zorro-antd引入less时错误解决记录
- 计算机驱动程序的安装过程,电脑常用的驱动程序的安装与管理
- 运动会管理系统java
- java拦截器放行_java拦截器放行某些请求
- 喜讯 | 大势智慧获得全球软件领域最高权威CMMI5认证
- vs2005中文版/2010中文旗舰版等安装步骤和注意
- 程序设计作业——系统管理
- 一文读懂CIM平台的定义和架构
- VIM编辑器配置文件修改
- MySQL 报错InnoDB: Cannot allocate memory for the buffer poo处理方法
- Java常用的集成开发工具Eclipse和IDEA
- 解决Flash Helper Service老是弹出流氓广告
- 得到app文稿导出_得到app的文稿怎么下载复制导出
- ArcGis Engine二次开发入门(1)
- Java中IO流的分类和BIO,NIO,AIO的区别
热门文章
- druid连接池mysql5.7_Spring Boot 使用Druid连接池整合Mybatis-Plus连接Mysql数据库
- mysql有没有批量游标_MySQL使用游标批量处理进行表操作_MySQL
- java同步锁synchronized_Java对象锁和类锁全面解析(多线程synchronized关键字)
- spring 可以有多个ioc容器吗
- 005_Spring Data JPA条件查询
- linux6.5安装打印机,如何在CentOS 6.5下安装Win7下的共享打印机服务
- python百鸡百钱递归_百钱百鸡,一百块钱买一百只鸡的递归算法 javascript实现
- TextureView+MediaPlayer实现在线短视频播放
- 外网访问 KVM 虚拟机
- web访问hive速度怎么样_使用Hive的web界面:HWI