这个也不记得了,反正不难

/*
ID: zhangyc1
LANG: C++
TASK: wissqu
*/
#include <string>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <cmath>
using namespace std;char arrMatrix[4][5];
bool arrNewCow[4][4], bFound = false;
int arrCowNum[5] = {3, 3, 3, 4, 3};
int nValid = 0;
struct SRes
{char ch;int nRow, nCol;
};
SRes arrRes[16];void prepairData()
{for (int i = 0; i < 4; i++){scanf("%s", arrMatrix[i]);}memset(arrNewCow, 0, sizeof(arrNewCow));
}bool CheckPut(char ch, int nRow, int nCol)
{int nTop = nRow > 0 ? nRow - 1 : 0;int nBot = nRow < 3 ? nRow + 1 : 3;int nLft = nCol > 0 ? nCol - 1 : 0;int nRht = nCol < 3 ? nCol + 1 : 3;for (int i = nTop; i <= nBot; i++){for (int j = nLft; j <= nRht; j++){if (arrMatrix[i][j] == ch)return false;}}return true;
}void dfs(char ch, int nDepth, int nRow, int nCol)
{arrRes[nDepth].ch = ch;arrRes[nDepth].nRow = nRow;arrRes[nDepth].nCol = nCol;char chOld = arrMatrix[nRow][nCol];arrMatrix[nRow][nCol] = ch;arrNewCow[nRow][nCol] = true;arrCowNum[ch - 'A']--;if (nDepth == 15){if (!bFound){bFound = true;for (int i = 0; i < 16; i++)printf("%c %d %d\n", arrRes[i].ch, arrRes[i].nRow + 1, arrRes[i].nCol + 1);}nValid++;}else{for (int k = 0; k < 5; k++){if (arrCowNum[k] > 0){char chCur = k + 'A';for (int i = 0; i < 4; i++){for (int j = 0; j < 4; j++){if (!arrNewCow[i][j] && CheckPut(chCur, i, j))dfs(chCur, nDepth + 1, i, j);}}}}}arrMatrix[nRow][nCol] = chOld;arrNewCow[nRow][nCol] = false;arrCowNum[ch - 'A']++;
}void process()
{for (int i = 0; i < 4; i++){for (int j = 0; j < 4; j++){if (!arrNewCow[i][j] && CheckPut('D', i, j))dfs('D', 0, i, j);}}printf("%d\n", nValid);
}int main(){FILE *streamIn = freopen("wissqu.in","r",stdin);FILE *streamOut = freopen("wissqu.out","w",stdout);prepairData();process();fclose(streamIn);fclose(streamOut);return 0;
}

转载于:https://www.cnblogs.com/doublemystery/archive/2013/05/09/3068683.html

Wisconsin Squares [USACO]相关推荐

  1. USACO SEC.1.2 No.4 Palindromic Squares

    题意:输入一个进制b([2,20]),确定从[1,300]中哪些数的平方在该进制下是回文数 解法:核心部分是将十进制数转换为任意进制数,除x取余,逆序排列 /* ID: lsswxr1 PROG: p ...

  2. usaco Magic Squares

    我搜了一下康拓展开定理结果下面解释就是用这题的做例子.稍微改一下就行了.vis不仅记录了他是否被便利过了还可以顺便用来计数不过注意当m==0是vis[0]==0但是contor数为0的数列就是1234 ...

  3. usaco Palindromic Squares

    <pre name="code" class="cpp"><span style="font-family: Arial, Helv ...

  4. USACO Palindromic Squares 回文平方数

    原题自行百度. 这个题其实没啥难的,数据也很水,直接暴力即可. 唯一的关键在于转换进制,这个貌似跟数学联系比较紧.十进制数转换为n进制,方法就是原数除以进制,记下余数和商,用商接着除.直到商是零,然后 ...

  5. USACO 3.2 Magic Squares 魔板

    题目大意: 在成功地发明了魔方之后,拉比克先生发明了它的二维版本,称作魔板.这是一张有8个大小相同的格子的魔板: 1 2 3 4 8 7 6 5 我们知道魔板的每一个方格都有一种颜色.这8种颜色用前8 ...

  6. USACO 3.2 Magic Squares 魔板 (BFS-HASH)

    题意: 给定1234/换行/5678,用下面几种方法变到制定的数 "A":交换上下两行: "B":将最右边的一列插入最左边: "C":中央四 ...

  7. USACO The castle 小白代码-供参考(会不断更改代码)

    USACO The Castle.哇,这道题最后一问困扰了我好久,我刚开始以为拆墙的优先级是:以墙的朝向为优先级基准:E>N>S>W (这是错的❌,大错特错) 所以就一直就做不出来! ...

  8. jzoj 1594: 【USACO】The Chivalrous Cow(骑士牛)( 待加入)

    1594: [USACO] 题目描述 Farmer John traded one of his cows for a cow that Farmer Don called 'The Knight' ...

  9. 魔板 Magic Squares(bfs优化)

    [USACO3.2]魔板 Magic Squares 题目背景 在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板.这是一张有8个大小相同的格子的魔板: 1 2 3 4 8 7 6 5 题 ...

最新文章

  1. ttlsa教程系列之MySQL---MySQL/Galera集群-多主高可用性负载均衡
  2. query 防止ajax重复提交
  3. ajax传formdata类型的数据_JQuery.Ajax()的data参数类型
  4. eclipse安装m2e.sourcelookup插件debug第三方源码(spring)
  5. MSP430G2553需要注意的一些参数
  6. MVC系列——MVC源码学习:打造自己的MVC框架(一:核心原理)(转)
  7. Makefile 打印变量的值
  8. 华科10年保送生计算机考研复试机试
  9. 2017.3.31 棋盘制作 失败总结
  10. js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global)...
  11. python 并发_Python bin()
  12. linux运维实战案例,Linux运维实战练习案例20151220~20151231
  13. 百旺智能编码_【百旺开票软件税控盘版】百旺金税盘开票软件下载 v2020 最新版本-趣致软件园...
  14. RFID技术与应用 复习用
  15. DirectX 下载地址
  16. 高效能人士的七个习惯(二)七个习惯概论
  17. 计算机二级考风考纪主题班会,计算机二级C语言上机题库及答案(100套).doc
  18. 安装linux系统提示acpi,ACPI引起linux系统无故重启
  19. 乒乓球重拍轻拍怎么选
  20. 暴风集团入多个被执行人名单-千氪

热门文章

  1. sourcemap总结
  2. [转]vue全面介绍--全家桶、项目实例
  3. 进击的二维码 | ArcBlock 课堂预告
  4. 3 .6 .5 优化Ad-Hoc工作负载
  5. Win10无法使用小娜搜索本地应用问题的解决方案
  6. 招商银行信用卡中心华泰证券暑期实习软开笔试小结
  7. linux nexus 使用问题
  8. GIT文件的三种状态
  9. python学习 第一篇 基础
  10. BSD配置SSH服务