博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pku 2965 The Pilots Brothers' refrigerator 第一周训练之枚举
阅读量:4604 次
发布时间:2019-06-09

本文共 1976 字,大约阅读时间需要 6 分钟。

和pku1753 一样的思路,可是自己敲了三四遍还是不出结果。就叫比较细心的GTL来帮忙看了看。。结果最重要的地方终于检查了出来,就是再change函数里面对要改变的那一点改变了两次。唉,,这错误找出来不容易啊。。。

思路:将每个点压缩进一维数组,然后每个点枚举他的两种状态(改变或者不改变),最后得出结果。

View Code
#include 
#include
#include
#define maxn 10 #define inf 99999999 using namespace std; int a[maxn*maxn]; char str[maxn][maxn]; struct node {
int x,y; }tmp[maxn*maxn],res[maxn*maxn]; int ans,k,len; void change(int num) {
int sh,yu,i,b; sh = num/4; yu = num%4; for (b = sh*4 ,i = 0; i < 4; ++i) {
//printf("%d ",b); if (b != num)//就是这里才开始没有察觉到,最后使了个简单的数据才发现的错误, //不容易啊。。。 a[b] ^= 1; b++; } //printf("\n"); for (b = yu,i = 0; i < 4; ++i) {
//printf("%d ",b); a[b] ^= 1; b += 4; } //printf("\n"); } bool isok() {
for (int i = 0; i < k; ++i) {
if (a[i] != 1) return false; } return true; } void dfs(int temp,int num) {
int i,j; if (temp == 1)//改变 {
change(num); tmp[len].x = num/4; tmp[len].y = num%4; len ++; } if (isok())//是否达到要求 {
if (ans > len) {
ans = len; for (j = 0; j < len; ++j) {
res[j] = tmp[j]; } } return ; } if (num >= 15) return ; for (i = 0; i < 2; ++i) {
dfs(i,num + 1); if (i == 1) {
change(num + 1); len --; } } } int main() {
int i,j; ans = inf; k = len = 0; for (i = 0;i < 4; ++i) {
scanf("%s",str[i]); for (j = 0; j < 4; ++j)//压缩紧一维数组 {
if (str[i][j] == '+') a[k++] = 0; else a[k++] = 1; } } for (i = 0; i < 2; ++i)//遍历 {
dfs(i,0); } printf("%d\n",ans); for (i = 0; i < ans; ++i) {
printf("%d %d\n",res[i].x + 1,res[i].y + 1); } return 0; }

转载于:https://www.cnblogs.com/E-star/archive/2012/02/23/2365365.html

你可能感兴趣的文章
SP1026 FAVDICE - Favorite Dice 数学期望
查看>>
NodeJS、NPM安装配置步骤(windows版本)
查看>>
【矩阵+十进制快速幂】[NOI2013]矩阵游戏
查看>>
Java一个简单的文件工具集
查看>>
蓝牙BLE扫描成功,log中打印出扫描到的设备
查看>>
一般处理应用页中绑定方法代码段
查看>>
无限鼠标没反应了
查看>>
CSU - 1356 Catch(dfs染色两种写法,和hdu4751比较)
查看>>
zabbix监控php-fpm的性能
查看>>
温故知新 div + css笔记
查看>>
针对降质模型中的模糊SR
查看>>
POJ1142Smith Numbers一道简单的数学题
查看>>
UIButton(改变Title和image位置)
查看>>
Linux-使用之vim编译安装出现的问题
查看>>
codevs 3314 魔法森林
查看>>
mac os x mysql 出现./mysql: unknown variable 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABL 问题...
查看>>
桐桐的贸易--WA
查看>>
历届试题 高僧斗法
查看>>
linux命令系列 stat & touch
查看>>
[Tools] Webstorm Github的配置与使用
查看>>