codeforces 611C
题意:
给你一个矩阵,矩阵里有” . “和” # “,” . “表示空的,” # “表示禁止的。
多米诺骨牌将占据正好有两个相邻的单元格,或者位于一排或一列。两个相邻的单元格必须是空的,并且必须是一个网格内。对于每个询问,求给定矩形里面能组成不同多米诺骨牌的方式。
思路:
对于一段连续空的,我们能算出来,他的方法是n-1个。
=>求给定矩阵在行和列上的连续空的有多长。
一个挺好的方案:开两个数组直接记录,然后对于给定矩形,枚举每行每列,直接减一下,全部加起来就是answer。
感觉有点小神奇的方法。。。
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const double eps=1e-6;
const double pi=acos(-1.0);
const int mod=998244353;
const int INF=0x3f3f3f3f;
const int N=1e2+10;
char ma[N*5][N*5];
int n[N*5][N*5];
int m[N*5][N*5];
int main()
{
int i,j,h,w;
scanf("%d%d",&h,&w);
for(i=0;i<h;i++)
scanf("%s",ma[i]);
memset(n,0,sizeof(n));
memset(m,0,sizeof(m));
for(i=0;i<h;i++)
{
for(j=0;j<w;j++){
if(j>0&&ma[i][j]=='.'&&ma[i][j]==ma[i][j-1]) n[i][j]=n[i][j-1]+1;
else n[i][j]=n[i][j-1];
if(i>0&&ma[i][j]=='.'&&ma[i-1][j]==ma[i][j]) m[i][j]=m[i-1][j]+1;
else m[i][j]=m[i-1][j];
}
}
LL ans;
int q;
int x1,x2,y1,y2;
scanf("%d",&q);
while(q--){
ans=0;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
x1--;
y1--;
x2--;
y2--;
for(i=x1;i<=x2;i++)
ans+=n[i][y2]-n[i][y1];
for(j=y1;j<=y2;j++)
ans+=m[x2][j]-m[x1][j];
printf("%I64d\n",ans);
}
return 0;
}
codeforces 611C的更多相关文章
- Codeforces 611C New Year and Domino(二维前缀和)
题目大概说给一个n*m个格子,格子'.'表示可以放东西,多次询问矩形区域(x1,y1)-(x2,y2)有几种放一张1*2的骨牌的方案数. 分别考虑横着竖着放,预处理出二维的前缀和,即sum[x][y] ...
- 【CodeForces 611C】New Year and Domino
题 题意 h行w列的矩形格子,“." 代表空的,"#" 代表满的,多米诺是 1*2 的长方体,现在放进格子,给你子矩形的左上角和右上角,问在子矩形里共有多少种放一块多米诺 ...
- Codeforces 611C New Year and Domino DP+容斥
"#"代表不能放骨牌的地方,"."是可以放 500*500的矩阵,q次询问 开两个dp数组,a,b,a统计横着放的方案数,b表示竖着放,然后询问时O(1)的,容 ...
- Codeforces 611C. New Year and Domino 动态规划
C. New Year and Domino time limit per test 3 seconds memory limit per test 256 megabytes input stand ...
- CodeForces 611C New Year and Domino (动态规划,DP)
题意:给定一个h*w的网格,里面只有.和#,.表示空的,#表示禁止的,然后有q个询问,询问中给你两个坐标,分别是左上和右下,求在这两者中间的有多少种(竖着和横着)两个相邻的点. 析:一看到这个题目,肯 ...
- codeforces611C
New Year and Domino CodeForces - 611C 他们说:“每一年都像多米诺骨牌,一个接一个地倒下去”.但是,一年能够像多米诺骨牌那样放在网格中吗?我不这么认为. Zydsg ...
- codeforces的dp专题
1.(467C)http://codeforces.com/problemset/problem/467/C 题意:有一个长为n的序列,选取k个长度为m的子序列(子序列中不能有位置重复),求所取的k个 ...
- python爬虫学习(5) —— 扒一下codeforces题面
上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
随机推荐
- spring 事件模式 源代码导读
一,jdk 事件对象基类 package java.util; import java.io.Serializable; public class EventObject implements Ser ...
- Machine Learning—Online Learning
印象笔记同步分享:Machine Learning-Online Learning
- 腾讯云图片鉴黄集成到C# SQL Server 怎么在分页获取数据的同时获取到总记录数 sqlserver 操作数据表语句模板 .NET MVC后台发送post请求 百度api查询多个地址的经纬度的问题 try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后? js获取某个日期
腾讯云图片鉴黄集成到C# 官方文档:https://cloud.tencent.com/document/product/641/12422 请求官方API及签名的生成代码如下: public c ...
- POJ 2184 Cow Exhibition (01背包变形)(或者搜索)
Cow Exhibition Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10342 Accepted: 4048 D ...
- 处理页面载入图片js(等比例压缩图片)
第一页面html <div class="admin">${answer.content}</div> <div class="admin ...
- WEBGIS控制图层的显示
看别人搞的GIS应用,常常有勾选.取消某个图层的操作,然后地图上就有相应的图形显隐,觉得好酷. 咋实现的? 其实说起来好像也不是特别复杂.在WEB端,实现该功能的原理和步骤是: 1.WEB端加载地图服 ...
- 前端遇上Go: 静态资源增量更新的新实践
前端遇上Go: 静态资源增量更新的新实践https://mp.weixin.qq.com/s/hCqQW1F8FngPPGZAisAWUg 前端遇上Go: 静态资源增量更新的新实践 原创: 洋河 美团 ...
- mongodb与sql聚合对应图 M
mongodb与sql聚合对应图 M - CSDN博客 http://blog.csdn.net/u011930016/article/details/49422425 SQL Terms, Func ...
- compile java sources
Information:javac 1.8.0_91 was used to compile java sources D:\myjdk\bin\java "-javaagent:C:\Pr ...
- Ghost wenjian目录
SOAMANAGER打不开网页,需要配置ghost 文件, C:\Windows\System32\drivers\etc