AtCoder Regular Contest 061 DSnuke's Coloring
2016-09-12 16:36
316 查看
http://arc061.contest.atcoder.jp/tasks/arc061_b
题意:
H行W列的矩阵中,然后挖了n个洞,输出j(0-9)行,对于第i行输出,有多少个3*3区域中有i个洞;
思路:
对于一个黑色的格子,只有9个3*3的矩阵才能包含他。
所以只有处理m个黑格子就行了。
对于每个黑格子,我默认把3*3的左上角代表这个矩阵。
这样还不够,因为没有那么大的矩阵表示方法,所以换一个表示就是把矩阵中每个格子标记;
处理一下,最后输出就好了;
题意:
H行W列的矩阵中,然后挖了n个洞,输出j(0-9)行,对于第i行输出,有多少个3*3区域中有i个洞;
思路:
对于一个黑色的格子,只有9个3*3的矩阵才能包含他。
所以只有处理m个黑格子就行了。
对于每个黑格子,我默认把3*3的左上角代表这个矩阵。
这样还不够,因为没有那么大的矩阵表示方法,所以换一个表示就是把矩阵中每个格子标记;
处理一下,最后输出就好了;
#include <bits/stdc++.h> using namespace std; typedef long long LL; LL h,w,n; map<LL,LL>mp; LL ans[10]; LL dx[9]={-2,-2,-2,-1,-1,-1,0,0,0}; LL dy[9]={-2,-1,0,-2,-1,0,-2,-1,0}; void Add(LL x,LL y) { LL a,b; LL temp; for(int i=0;i<9;i++) { a=x+dx[i]; b=y+dy[i]; if(a<1||b<1||a>h-2||b>w-2) continue; temp=(h-2)*(b-1)+a; mp[temp]++; } } int main() { LL x,y; scanf("%lld%lld%lld",&h,&w,&n); for(LL i=0;i<n;i++) { scanf("%lld%lld",&x,&y); Add(x,y); } memset(ans,0,sizeof(ans)); ans[0]=(h-3)*(w-2)+w-2; LL temp; map<LL,LL>::iterator it; for(it=mp.begin();it!=mp.end();it++) { temp=it->second; ans[temp]++; ans[0]--; } for(LL i=0;i<=9;i++) { printf("%lld\n",ans[i]); } return 0; }
相关文章推荐
- AtCoder Regular Contest 080-D - Grid Coloring
- AtCoder Regular Contest 061 E - すぬけ君の地下鉄旅行【最短路】
- AtCoder Regular Contest 081 D - Coloring Dominoes
- AtCoder Regular Contest 080 D - Grid Coloring
- Atcoder Regular Contest 084
- atcoder regular contest D abs 思路
- AtCoder Regular Contest 089 E-GraphXY-构造题
- AtCoder Regular Contest 076 F - Exhausted? 霍尔定理+线段树
- AtCoder Regular Contest 082 E - ConvexScore 乱搞
- AtCoder Regular Contest 068 F - Solitaire 动态规划
- Atcoder Regular Contest 064 F Rotated Palindromes
- AtCoder Regular Contest 063 Integers on a Tree 树形dp+构造
- Atcoder Regular Contest 072 F Dam
- AtCoder Regular Contest D - Remainder Reminder 取余问题
- AtCoder Regular Contest 092 C - 2D Plane 2N Points 贪心 匈牙利算法模板
- AtCoder Regular Contest 095E - Symmetric Grid
- (最短路)AtCoder Beginner Contest 061 D - Score Attack
- AtCoder Regular Contest 098
- AtCoder Regular Contest 075 E - Meaningful Mean(树状数组)
- AtCoder Regular Contest 076 D Built?(kruskal)