cf 1015 E1. Stars Drawing (Easy Edition)
Posted lishengkangshidatiancai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cf 1015 E1. Stars Drawing (Easy Edition)相关的知识,希望对你有一定的参考价值。
暴力把能填的都填,用vis数组标记,如果出现填不了的输出-1
#include<bits/stdc++.h> using namespace std; char graph[110][110]; int vis[110][110]; int xx[10010]; int yy[10010]; int si[10010]; int tot; int n,m; bool check(int i,int j,int k) { if(i-k<1||i+k>n||j-k<1||j+k>m) return false; return true; } int main() { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { getchar(); for(int j=1;j<=m;j++) { scanf("%c",&graph[i][j]); } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(graph[i][j]==‘*‘) { int index=-1; for(int k=1;check(i,j,k);k++) { if(graph[i+k][j]==‘*‘&&graph[i-k][j]==‘*‘&&graph[i][j+k]==‘*‘&&graph[i][j-k]==‘*‘) { index=k; vis[i][j]=vis[i+k][j]=vis[i-k][j]=vis[i][j+k]=vis[i][j-k]=1; } else break; } if(index!=-1) { xx[++tot]=i; yy[tot]=j; si[tot]=index; } } } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(graph[i][j]==‘*‘&&vis[i][j]==0) { printf("-1 "); return 0; } } } printf("%d ",tot); for(int i=1;i<=tot;i++) printf("%d %d %d ",xx[i],yy[i],si[i]); }
以上是关于cf 1015 E1. Stars Drawing (Easy Edition)的主要内容,如果未能解决你的问题,请参考以下文章
CF1108E1 Array and Segments (Easy version)(待更新)
CF1005E1 Median on Segments (Permutations Edition) 思维
CF1497E1 Square-free division (easy version)