刘汝佳紫书练习题4-2

对每一个点去遍历以它为右上定点每种大小的正方形是否存在

#include#include#include#includeusing namespace std;const int maxn = 15;struct point{bool h, v;}map[maxn][maxn];int ans[maxn];int n;bool issq(int x, int y, int s){for(int i = 0; i < s; i++){if(!map[x + i][y].v) return 0;if(!map[x][y + i].h) return 0;if(!map[x + i][y + s].v) return 0;if(!map[x + s][y + i].h) return 0;}return 1;}void solve(){for(int i = 1; i < n; i++){for(int j = 1; j < n; j++){int mk = min(n - i, n - j);for(int k = 1; k <= mk; k++){if(issq(i, j, k)) ans[k]++;}}}}int main(){//freopen("input.txt", "r", stdin);int m, kase = 1;while(scanf("%d%d", &n, &m) != EOF){memset(map, 0, sizeof(map));memset(ans, 0, sizeof(ans));for(int i = 0; i < m; i++){char t; int x, y;cin >> t >> x >> y;//cout << t << x << y << endl;if(t == 'H') map[x][y].h = 1;if(t == 'V') map[y][x].v = 1;}solve();if(kase - 1) printf("\n**********************************\n\n");printf("Problem #%d\n\n", kase++);bool text = 0;for(int i = 1; i < n; i++){if(ans[i]) {printf("%d square (s) of size %d\n", ans[i], i);text = 1;}}if(!text) printf("No completed squares can be found.\n");}return 0;}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值