栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 1411 Anniversary

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 1411 Anniversary

#include <iostream>  #include <vector>  #include <algorithm>  #include <queue>  #include <string.h>  #include <stdio.h>  using namespace std;  bool IsValid(int index, int s, bool map[][40], int size)  {      int x = index / s;      int y = index % s;      if (x + size > s || y + size > s)          return false;      for (int i = x; i < x + size; i++)          for (int j = y; j < y + size; j++)   if (map[x][j] == true)       return false;      return true;  }  bool DFS(int index, int s, bool map[][40], int n, int size[], bool used[])  {      if (index >= s * s)          return true;      int x = index / s;      int y = index % s;      if (map[x][y] == true)          return DFS(index + 1, s, map, n, size, used);      bool failed[16];      memset(failed, false, sizeof(failed));      for (int i = 0; i < n; i++)          if (used[i] != true && failed[size[i]] != true)   if (IsValid(index, s, map, size[i]))   {       // map set to true       for (int j = x; j < x + size[i]; j++)for (int k = y; k < y + size[i]; k++)    map[j][k] = true;       used[i] = true;       if (DFS(index + 1, s, map, n, size, used))return true;       elsefailed[size[i]] = true;       used[i] = false;       // map set to false       for (int j = x; j < x + size[i]; j++)for (int k = y; k < y + size[i]; k++)    map[j][k] = false;   }   else   {       failed[size[i]] = true;   }      return false;  }  int main()  {      int t, s, n;      bool map[40][40];      int size[16];      bool used[16];      cin >> t;      while (t--)      {          cin >> s >> n;          for (int i = 0; i < n; i++)   cin >> size[i];          memset(map, false, sizeof(map));          memset(used, false, sizeof(used));          int total = 0;          for (int i = 0; i < n; i++)   total += size[i] * size[i];          if (total != s * s)   cout << "HUTUTU!n";          else          {   if (DFS(0, s, map, n, size, used))       cout << "KHOOOOB!n";   else       cout << "HUTUTU!n";          }      }  }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/379016.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号