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