07:画家问题

#include<iostream>
#include<string>
using namespace std;
int a[20][20];int b[20][20];
#define rep(i,j,k) for(int i=j;i<=k;i++)
int n;
string s[20];
void update(int i,int j)
{
    b[i][j]=1-b[i][j];
    b[i-1][j]=1-b[i-1][j];
    b[i+1][j]=1-b[i+1][j];
    b[i][j-1]=1-b[i][j-1];
    b[i][j+1]=1-b[i][j+1];
}
int judge(int x)
{
    rep(i,1,n) rep(j,1,n) b[i][j]=a[i][j];
    int sum=0;
    rep(i,1,n)
    {
        if(x%2)
        {
            update(1,i);
            sum++;
        }
        x/=2;
    }
    rep(i,1,n-1)
    rep(j,1,n)
    {
        if(b[i][j]==0)
        {
            update(i+1,j);
            sum++;
        }
    }
    rep(i,1,n)
    if(b[n][i]==0)
    return 300;
    return sum;
}
int main()
{
    cin>>n;
    rep(i,1,n)
    {
        string tmp;
        cin>>tmp;
        s[i]=" "+tmp;
    }
    rep(i,1,n)
    {
        rep(j,1,n)
        if(s[i][j]==‘w‘)
        a[i][j]=0;
        else
        a[i][j]=1;
    }
    int maxnum=300;
    rep(i,0,(1<<n)-1)
    {
        maxnum=min(maxnum,judge(i));
    }
    if(maxnum==300) cout<<"inf";
    else cout<<maxnum;
} 
时间: 2024-10-23 08:58:07

07:画家问题的相关文章

200道历年逻辑推理真题详解

200道历年逻辑推理真题详解 01.粮食可以在收割前在期货市场进行交易.如果预测谷物产量不足,谷物期货价格就会上升:如果预测谷物丰收,谷物期货价格就会下降.今天早上,气象学家们预测从明天开始谷物产区里会有非常需要的降雨.因为充分的潮湿对目前谷物的存活非常重要,所以今天的谷物期货价格会大幅下降. 下面哪个,如果正确,最严重地削弱了以上的观点? A.在关键的授粉阶段没有接受足够潮湿的谷物不会取得丰收. B.本季度谷物期货价格的波动比上季度更加剧烈. C.气象学家们预测的明天的降雨估计很可能会延伸到谷

百度房间卡是否可骄傲是快乐积分拉斯科

http://www.ebay.com/cln/ycn6646/-/167568259015/2015.02.07 http://www.ebay.com/cln/gon-n31/-/167197496017/2015.02.07 http://www.ebay.com/cln/hu_d027/-/167453250013/2015.02.07 http://www.ebay.com/cln/ywa2962/-/167301832012/2015.02.07 http://www.ebay.co

【Ext.Net学习笔记】07:后续

程序员必看书籍(转载) C++: Prata<C++ Primer Plus>:基础,第一本书.(之前的版本也可,不过推荐最新的) Lippman<Inside C++ Object Model>:初级,加深语言层次上的理解.不过有点小老了.里面的cfront编译器早退出江湖好久了.思想值得学习 侯捷<STL源码剖析>:第三本书,中级,深入STL Vandevoorde<C++ Template>:第四本,中级,范式编程 罗剑锋<Boost>两本

Android自动手绘,圆你儿时画家梦!

我的简书同步发布:Android自动手绘,圆你儿时画家梦! 从小就喜欢到处乱画,家里一米以下墙上就没有一块干净的地方(那是老房子啦~)~~(⊙﹏⊙)b.好了,废话不多说,进入主题.今天主要跟大家分享一下如何将一张图片转成手绘效果,并模拟画家动态绘制.先把最终效果图亮出来,觉得好的请点个赞,您的点赞是对我的最大鼓励(O(∩_∩)O哈哈~). 效果图如下: 再来张截图: 心动有木有! 原理 大概介绍一下实现原理.首先你得有一张图(废话~),接下来就是把这张图的轮廓提取出来,轮廓提取算法有很多,本人不

笔试算法题(07):还原后序遍历数组 &amp; 半翻转英文句段

出题:输入一个整数数组,判断该数组是否符合一个二元查找树的后序遍历(给定整数数组,判定其是否满足某二元查找树的后序遍历): 分析:利用后序遍历对应到二元查找树的性质(序列最后一个元素必定是根节点,从左向右第一个比根节点大的元素开始直到根节点之前的所有元素必定在右子树,之前的所有元素必定在左子树): 解题: 1 bool PostOrderCheck(int *array, int i, int j) { 2 /** 3 * 如快速排序一样,解决小子文件 4 * */ 5 if(j-i+1 ==

java进阶07 线程的让步与阻塞与同步

前面介绍了线程的一些基本知识,现在来说下线程的让步,阻塞,和同步 先说说让步 所谓让步,就是让调用者的线程暂停,让其他线程重新竞争CPU,包括调用者. 先看看代码 package Thread; public class ThreadYield { public static void main(String[] args){ MyThread5 rthread=new MyThread5(); Thread thread1=new Thread(rthread); Thread thread2

P1807 最长路_NOI导刊2010提高(07)

P1807 最长路_NOI导刊2010提高(07) 题目描述 设G为有n个顶点的有向无环图,G中各顶点的编号为1到n,且当为G中的一条边时有i < j.设w(i,j)为边的长度,请设计算法,计算图G中<1,n>间的最长路径. 输入输出格式 输入格式: 输入文件longest.in的第一行有两个整数n和m,表示有n个顶点和m条边,接下来m行中每行输入3个整数a,b,v(表示从a点到b点有条边,边的长度为v). 输出格式: 输出文件longest.out,一个整数,即1到n之间的最长路径.如

07:合影效果

07:合影效果 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念.如果他们站成一排,男生全部在左(从拍照者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排,请问他们合影的效果是什么样的(所有人的身高都不同)? 输入 第一行是人数n(2 <= n <= 40,且至少有1个男生和1个女生).后面紧跟n行,每行输入一个人的性别(男male或女female)和身高(浮点数

U-BOOT-2016.07移植 (第一篇) 初步分析

U-BOOT-2016.07移植 (第一篇) 初步分析 目录 U-BOOT-201607移植 第一篇 初步分析 目录 编译和移植环境 更新交叉编译工具 1 下载arm-linux-gcc 443 2 安装arm-linux-gcc 443 安装环境Ubuntu 910 下载u-boot-201607并解压 分析顶层Makefile 1 找出目标依赖关系 2 总结 初次编译u-boot 1 配置 2 编译 分析u-boot启动流程 1 分析startS 2 分析crt0S 3 总结 1. 编译和移