Ticks

思路:枚举思路

首先,把所有*记在cnt1里,然后向上遍历,遍历之后,得到sign,然后用sign来标记另一个数组里为1,然后如果两边都能对应上1/*,则cnt2++,然后最后判断cnt1和cnt2是否相等,如果相等yes,如果不等no

代码:

#include 
#include
using namespace std;
int main(){int t,i,j,k,n,m,cnt1=0,cnt2=0;
//	int sign=1;char a[99][99];int b[99][99];scanf("%d",&t);
//	getchar();while(t--){scanf("%d %d %d",&n,&m,&k);getchar();cnt1=0;for(i=1;i<=n;i++){for(j=1;j<=m;j++){scanf("%c",&a[i][j]);b[i][j]=0;if(j==m){getchar();}if(a[i][j]=='*'){cnt1++;}}}for(i=n;i>0;i--){for(j=m;j>0;j--){if(a[i][j]=='*'){int sign = 1;while(a[i-sign][j-sign]=='*'&&a[i-sign][j+sign]=='*'&&i-sign>=1&&j+sign<=m){sign++;}if(sign-1>=k){int o;for(o=0;o=0;i--){
//			for(j=m-1;j>=0;j--){
//				if(a[i][j]=='*'){
//					cnt1++;
//					b[i][j]=1;cnt2++;
//					while(i-sign>=0){if(a[i-sign][i+sign]=='*'){sign++;
//							cnt1++;
//							b[i-sign][i-sign]=1;
//							cnt2++;
//						}
//						if(a[i-sign][i-sign]=='*'){
//							sign++;
//							cnt1++;
//							b[i-sign][i-sign]=1;
//							cnt2++;
//						sign++;
//						b[i-sign][i+sign]=1;
//						b[i-sign][i-sign]=1;
//						}
//					}
//				}
//			}
//		}}return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部