外星人
来源:互联网 发布:时时彩计划软件免费版 编辑:程序博客网 时间:2024/04/28 08:05
将有障碍的点赋值为1,然后处理前缀和
然后对于每个A,B跑枚举可能的情况,然后用前缀和来判断区域可不可行,
注意一个问题,如果说正方形,飞船横着竖着没有差别,这时候ans要除以2
#include <cstdio>#include <iostream>using namespace std;int s[1100][1100];int a[1100][1100];int main(){ freopen("alien.in","r",stdin); freopen("alien.out","w",stdout); int n,m,p,q; scanf("%d%d%d%d",&n,&m,&p,&q); for(int i=1;i<=p;i++) { int x,y; scanf("%d%d",&x,&y); a[x][y]=1; } for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j]; for(int i=1;i<=q;i++) { int x,y; int ans=0; scanf("%d%d",&x,&y); for(int j=1;j<=n;j++) for(int k=1;k<=m;k++) { if(j+x-1<=n&&k+y-1<=m) { int p=s[j+x-1][k+y-1]-s[j-1][k+y-1]-s[j+x-1][k-1]+s[j-1][k-1]; if(!p) ans++; } if(j+y-1<=n&&k+x-1<=m) { int p=s[j+y-1][k+x-1]-s[j-1][k+x-1]-s[j+y-1][k-1]+s[j-1][k-1]; if(!p) ans++; } } if(x==y) ans/=2; printf("%d\n",ans); } return 0;}
阅读全文
0 0
- 外星人
- 我是外星人
- 外星人游戏!!
- 外星人计数
- 外星人存在与否......----小话外星人(1)
- 《E.T.外星人》
- 外星人间谍的情报
- 外星人的信
- 美欲重启外星人“监听站”
- 外星人冯诺依曼【转】
- 外星人的驿站
- nyoj_外星人的供应站
- 外星人供给站
- 东南大学 38: 外星人来袭
- 外星人的供给站
- 【bzoj 2749】: [HAOI2012]外星人
- opecv cartoon(外星人模式)
- 【PAT】外星人的语言
- halcon变量,图像与C++的一些转换(未完待续)
- Cmd Markdown 最近发现的一个比较好的编辑器
- mac 下Shell终端配置
- oracle返回中文拼音首字母方法
- 应用MaxCompute实现变压器局部放电相位分析
- 外星人
- C语言的数据类型
- 关于日期格式的书写及对应含义(便于查找)
- android通过adb查看cup消耗
- HDU-6038 Function(思维)
- JDBC超时设置
- 【Java并发编程】并发编程大合集
- 欢迎使用CSDN-markdown编辑器
- 请求天气对话框无限轮播网络请求判断