codeforces611C
New Year and Domino
他们说:“每一年都像多米诺骨牌,一个接一个地倒下去”。但是,一年能够像多米诺骨牌那样放在网格中吗?我不这么认为。
Zydsg最近得到了一个有h行和w列的矩形网格。每个单元格是一个正方形,可以是空的(用'.'表示)或非空的(用“#”表示)。行从上到下编号为1到h。列从左到右编号为1到w。
另外,Zydsg有一个多米诺骨牌。他想把它放在一个网格的某个地方。多米诺骨牌将占据两个相邻的单元格,位于一行或一列中。两个相邻的单元必须是空的,并且必须位于网格内。
Zydsg需要更多的乐趣,因此他会考虑一些问题。在每个查询中,他选择了网格上的一个矩形,有多少种方法可以在所选矩形内部放置一个多米诺骨牌?
Input
输入的第一行包含两个整数h和w(1≤h,w≤500) - 行数和列数。
接下来的h行描述一个网格。每行包含一个长度为w的字符串。每个字符都是“.”或“#” - 分别表示一个空的或非空的单元格。
下一行包含一个整数q(1≤q≤100 000) - 查询的数量。
接下来q行包含四个整数r1i,c1i,r2i,c2i(1≤r1i≤r2i≤h,1≤c1i≤c2i≤w)代表 第i个查询。数字r1i和c1i分别表示矩形的左上角单元格的行和列(分别)。数字r2i和c2i分别表示矩形的右下角单元格的行和列。
Output
打印q个整数,第i个应等于在第i个矩形内放置单个多米诺骨牌的方法的数量。
Example
5 8
....#..#
.#......
##.#....
##..#.##
........
4
1 1 2 3
4 1 4 1
1 2 4 5
2 5 5 8
4
0
10
15
7 39
.......................................
.###..###..#..###.....###..###..#..###.
...#..#.#..#..#.........#..#.#..#..#...
.###..#.#..#..###.....###..#.#..#..###.
.#....#.#..#....#.....#....#.#..#..#.#.
.###..###..#..###.....###..###..#..###.
.......................................
6
1 1 3 20
2 10 6 30
2 10 7 30
2 2 7 7
1 7 7 7
1 8 7 8
53
89
120
23
0
2
Note
A red frame below corresponds to the first query of the first sample. A domino can be placed in 4 possible ways.
sol:这不是二维前缀和裸题(假)吗,但是写了一会发现这个东西非常操蛋,而且复杂度也是Q*n的(可能预处理还会更劣)
于是果断弃疗。对于每行每列分别维护前缀和,查询的时候统计每行每列的答案和,n3+Q*n的复杂度可以接受
#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
ll s=;
bool f=;
char ch=' ';
while(!isdigit(ch))
{
f|=(ch=='-'); ch=getchar();
}
while(isdigit(ch))
{
s=(s<<)+(s<<)+(ch^); ch=getchar();
}
return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
if(x<)
{
putchar('-'); x=-x;
}
if(x<)
{
putchar(x+''); return;
}
write(x/);
putchar((x%)+'');
return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int N=;
int n,m,Q,Qzh_X[N][N],Qzh_Y[N][N];
char Map[N][N];
int main()
{
int i,j,k;
R(n); R(m);
for(i=;i<=n;i++)
{
scanf("%s",Map[i]+);
}
for(i=;i<=n;i++)
{
Qzh_X[i][]=;
for(j=;j<=m;j++)
{
Qzh_X[i][j]=Qzh_X[i][j-]+(Map[i][j]=='.'&&Map[i][j-]=='.');
}
}
for(j=;j<=m;j++)
{
Qzh_Y[][j]=;
for(i=;i<=n;i++)
{
Qzh_Y[i][j]=Qzh_Y[i-][j]+(Map[i][j]=='.'&&Map[i-][j]=='.');
}
}
R(Q);
while(Q--)
{
int x1=read(),y1=read(),x2=read(),y2=read(),Sum=;
for(i=x1;i<=x2;i++) Sum+=Qzh_X[i][y2]-Qzh_X[i][y1];
for(i=y1;i<=y2;i++) Sum+=Qzh_Y[x2][i]-Qzh_Y[x1][i];
Wl(Sum);
}
return ;
}
/*
input
5 8
....#..#
.#......
##.#....
##..#.##
........
4
1 1 2 3
4 1 4 1
1 2 4 5
2 5 5 8
output
4
0
10
15 input
7 39
.......................................
.###..###..#..###.....###..###..#..###.
...#..#.#..#..#.........#..#.#..#..#...
.###..#.#..#..###.....###..#.#..#..###.
.#....#.#..#....#.....#....#.#..#..#.#.
.###..###..#..###.....###..###..#..###.
.......................................
6
1 1 3 20
2 10 6 30
2 10 7 30
2 2 7 7
1 7 7 7
1 8 7 8
output
53
89
120
23
0
2
*/
codeforces611C的更多相关文章
随机推荐
- Linux并发与同步专题 (3) 信号量
关键词:Semaphore.down()/up(). <Linux并发与同步专题 (1)原子操作和内存屏障> <Linux并发与同步专题 (2)spinlock> <Li ...
- Generative Adversarial Nets[Pre-WGAN]
本文来自<towards principled methods for training generative adversarial networks>,时间线为2017年1月,第一作者 ...
- Hadoop Yarn调度器的选择和使用
一.引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色.在讨论其构造器之前先简单了解一下Yarn的架构. 上图是Yarn的基本架构,其中ResourceManager是整个架构的核 ...
- 20175234 数据库MySQL(课下作业)
20175234 数据库MySQL(课下作业) 内容: 1.下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/6371315.html#SE ...
- C# 相关面试试题简单的总结
最近一个搞NET开发的朋友离职了,想让我给他找点关于NET的相关面试题,准备抱一下佛脚,迎接新的挑战. 我赶紧找到以前检索的各种宝典,试题,今天梳理一下关于NET的基础知识点. 1.面向对象语言的三大 ...
- Javascript 小练习
--------------------------要收获别人五年才能收获的东西,你就要做好准备,遭受别人五人所遭受的坎坷” // -------------------------------*** ...
- H5 18-序选择器
18-序选择器 我是标题 我是段落1 我是段落2 我是段落3 我是段落4 我是段落5 我是段落6 我是段落7 我是段落8 --> 我是段落1 我是段落2 我是段落2 我是标题 <!DOCT ...
- 小L的试卷
题目描述 小L期末考试结束,高高兴兴放假回家了,可是那么多试卷,老师还要加班批改,有n份试卷由k个老师批改,n份试卷进行了密封编号,由于试卷上的做题情况和书写的规范程序不一样,批改不同的试卷用时也可能 ...
- 使用publisher模式控制频繁的UI输出,避免Winform界面假死
http://www.cnblogs.com/Charltsing/p/publisher.html 最近测试task并发任务的效率与线程池的区别,发现了另外一个问题.task建立任务的速度很快,输出 ...
- PS调出水彩画效果古装人物照片
首先在PS里操作: 1.磨皮液化 磨皮液化就不细说啦~常规操作. 2.背景调色 分析:想塑造油画般的感觉,背景颜色想要蓝绿色 1.用可选颜色工具里面的中性色改变整体颜色,把皮肤和头发颜色用蒙版擦出来: ...