【Codeforces Round #460 (Div. 2) C】 Seat Arrangements
【链接】  我是链接,点我呀:) 
 【题意】
在这里输入题意
【题解】
用pre[i][j]表示第i行前j列的和。
然后枚举连续座位的最左上点。
(有两种可能向右或向下k个。
则还需要处理出pre2[i][j]表示第j列前i行的和。
(都可以O(N^2)求出
然后pre[i][j+k-1]-pre[i][j-1]就是第i行第j列往右k个格子的空(或被占据)的格子数目了。
看看是不是符合要求就好。
往下扩展同理。
k==1的时候只要取向右一种就好。所以直接除个2
【代码】
#include <bits/stdc++.h>
using namespace std;
const int N = 2e3;
int n,m,k;
int a[N+10][N+10],pre[N+10][N+10];
char s[N+10][N+10];
int main(){
	#ifdef LOCAL_DEFINE
	    freopen("rush_in.txt", "r", stdin);
	#endif
	ios::sync_with_stdio(0),cin.tie(0);
    cin >> n >> m >> k;
    for (int i = 1;i <= n;i++){
        cin >>(s[i]+1);
    }
    for (int i = 1;i <= n;i++)
        for (int j = 1;j <= m;j++)
            if (s[i][j]=='*')
                a[i][j] = 1;
            else
                a[i][j] = 0;
    for (int i = 1;i <= n;i++){
        pre[i][0] = 0;
        for (int j = 1;j <=m;j++)
            pre[i][j] = pre[i][j-1]+a[i][j];
    }
    long long ans = 0;
    for (int i = 1;i <=n;i++)
        for (int j = 1;j <= m;j++){
            int l = j+k-1;
            if (l <= m){
                int temp = pre[i][l]-pre[i][j-1];
                if (temp==0){
                    ans++;
                }
            }
        }
    memset(pre,0,sizeof pre);
    for (int j = 1;j <= m;j++){
        pre[0][j] = 0;
        for (int i = 1;i <= n;i++){
            pre[i][j] = pre[i-1][j] + a[i][j];
        }
    }
    for (int i = 1;i <= n;i++)
        for (int j = 1;j <= m;j++){
            int l = i + k-1;
            if (l <= n){
                int temp = pre[l][j]-pre[i-1][j];
                if (temp==0){
                    ans++;
                }
            }
        }
    if (k==1) ans/=2;
    cout<<ans<<endl;
	return 0;
}
												
											【Codeforces Round #460 (Div. 2) C】 Seat Arrangements的更多相关文章
- 【Codeforces Round #460 (Div. 2) D】Substring
		
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 如果有环 ->直接输出-1 (拓扑排序如果存在某个点没有入过队列,说明有环->即入队的节点个数不等于n 否则. 说明可以 ...
 - 【Codeforces Round #460 (Div. 2) B】 Perfect Number
		
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 直接暴力求出第k个perfect数字就好. 纯模拟. [代码] #include <bits/stdc++.h> #de ...
 - 【Codeforces Round #460 (Div. 2) A】 Supermarket
		
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 就是让你求m*(ai/bb)的最小值 [代码] #include <bits/stdc++.h> #define dou ...
 - 【Codeforces Round #432 (Div. 1) B】Arpa and a list of numbers
		
[链接]h在这里写链接 [题意] 定义bad list是一个非空的.最大公约数为1的序列.给定一个序列,有两种操作:花费x将一个元素删除.花费y将一个元素加1,问你将这个序列变为good list所需 ...
 - 【Codeforces Round #420 (Div. 2) C】Okabe and Boxes
		
[题目链接]:http://codeforces.com/contest/821/problem/C [题意] 给你2*n个操作; 包括把1..n中的某一个数压入栈顶,以及把栈顶元素弹出; 保证压入和 ...
 - 【Codeforces Round #420 (Div. 2) B】Okabe and Banana Trees
		
[题目链接]:http://codeforces.com/contest/821/problem/B [题意] 当(x,y)这个坐标中,x和y都为整数的时候; 这个坐标上会有x+y根香蕉; 然后给你一 ...
 - 【Codeforces Round #420 (Div. 2) A】Okabe and Future Gadget Laboratory
		
[题目链接]:http://codeforces.com/contest/821/problem/A [题意] 给你一个n*n的数组; 然后问你,是不是每个位置(x,y); 都能找到一个同一行的元素q ...
 - 【Codeforces Round #423 (Div. 2) C】String Reconstruction
		
[Link]:http://codeforces.com/contest/828/problem/C [Description] 让你猜一个字符串原来是什么; 你知道这个字符串的n个子串; 且知道第i ...
 - 【Codeforces Round #423 (Div. 2) B】Black Square
		
[Link]:http://codeforces.com/contest/828/problem/B [Description] 给你一个n*m的格子; 里面包含B和W两种颜色的格子; 让你在这个格子 ...
 
随机推荐
- IPA打包图片错误问题
			
CopyPNGFile /Users/gongihou/Library/Developer/Xcode/DerivedData/KTVgo-frborfduejxrajgpkfdaipygijow/B ...
 - ssh跳板登陆太麻烦,使用expect每次自动登录 利用expect 模拟键盘动作,在闲置时间之内模拟地给个键盘响应
			
#!/usr/bin/expect -f #设置超时时间 set timeout #这里设置了跳板机的密码 set password "你的跳板机密码" #连接跳板机 spawn ...
 - 陈-朱-兴-   js写法【案例】:
			
ajax请求: 一.从服务器端请求数据: var url = '';url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='+ ...
 - WebBrowser获取页面总高度
			
case DISPID_DOCUMENTCOMPLETE: { #pragma region 获取页面总高度 HRESULT hr; IDispatch *pdisp; hr = m_pWebBrow ...
 - 安卓开发--HttpDemo01
			
package com.cnn.httpdemo01; import android.app.Activity; import android.content.Intent; import andro ...
 - BZOJ 3130 二分+网络流
			
思路: 不被题目忽悠就是思路 二分一下max 判一下等不等于最大流 搞定 7 9 1 1 2 3 1 3 3 2 3 3 3 4 2 3 5 2 3 6 1 4 7 2 5 7 2 6 7 2 这里有 ...
 - softwares我的软件列表(转载)
			
[TOC] 个人在archlinux下的日常使用经验列出,故而在archlinux及其衍生发行版中,以下所列软件几乎可以从archlinux官方源或者aur中搜索下载安装,所列出名字一般即是其包名,使 ...
 - 一篇文章助你理解Python2中字符串编码问题
			
前几天给大家介绍了unicode编码和utf-8编码的理论知识,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系.下面在Python2环境中进行代码演示,分别Wind ...
 - tensorflow 1 - 起步
			
使用图 (graph) 来表示计算任务. 在被称之为 会话 (Session) 的上下文 (context) 中执行图. 使用 tensor 表示数据. 通过 变量 (Variable) 维护状态. ...
 - 888E - Maximum Subsequence  中途相遇法
			
Code: #include<cstdio> #include<algorithm> #include<cstring> #include<string> ...