【每日一题】Squares UVA - 201 暴力+输出坑 + 读文件模板

时间:2023-03-09 15:44:55
【每日一题】Squares UVA - 201 暴力+输出坑 + 读文件模板

题意 给你n*n的图,让你数正方形

题解:暴力for每个点,对于每个点从它出发顺时针走一个正方形。走完就ans[i]++;

坑:多输了一行******,然后在那里手摸样例,无限debug orz

#define _CRT_SECURE_NO_WARNINGS
#include<cmath>
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cstring>
#include<ctime>
using namespace std;
#define rep(i,t,n) for(int i =(t);i<=(n);++i)
#define per(i,n,t) for(int i =(n);i>=(t);--i)
#define mmm(a,b) memset(a,b,sizeof(a))
typedef long long ll;
const int maxn = 2e6 + ;
const ll mod = 1e9 + ;
void smain();
#define ONLINE_JUDGE
int main() {
//ios::sync_with_stdio(false);
#ifndef ONLINE_JUDGE
FILE *myfile;
myfile = freopen("C:\\Users\\acm-14\\Desktop\\test\\b.in", "r", stdin);
if (myfile == NULL)
fprintf(stdout, "error on input freopen\n");
FILE *outfile;
outfile = freopen("C:\\Users\\acm-14\\Desktop\\test\\out.txt", "w", stdout);
if (outfile == NULL)
fprintf(stdout, "error on output freopen\n");
long _begin_time = clock();
#endif
smain();
#ifndef ONLINE_JUDGE
long _end_time = clock();
printf("time = %ld ms.", _end_time - _begin_time);
#endif
return ;
} int n, m, k;
int h[][], v[][];
int ans[];
int tot;
int check(int x) {
int ret = ;
rep(i,,n-x)
rep(j, , n-x) {
int nr = i, nc = j;
int ok = ;
if (ok)rep(k, , x) { if (h[nr][nc])nc++; else ok = ; }
if (ok)rep(k, , x) { if (v[nr][nc])nr++; else ok = ; }
if (ok)rep(k, , x) { if (h[nr][nc-])nc--; else ok = ; }
if (ok)rep(k, , x) { if (v[nr-][nc])nr--; else ok = ; }
if (ok)ret++; }
return ret;
} void smain() {
int kase = ;
int first = ;
while (cin >> n >> m) {
if (first == )first = ;
else { cout << endl; puts("**********************************"); cout << endl; }
mmm(h, ); mmm(v, ); mmm(ans, );
while (m--) { char op;
int r, c;
cin >> op >> r >> c;
if (op == 'H') {
h[r][c] = ;
}
else v[c][r] = ;
rep(i, , n) {
ans[i]=check(i);
}
}
printf("Problem #%d\n\n", ++kase);
int fl = ;
rep(i, , n)if (ans[i])fl++;
if (!fl)printf("No completed squares can be found.\n");
else rep(i, , n)if (ans[i])printf("%d square (s) of size %d\n", ans[i], i); }
}
/* */