问题描述

UVA11464


题解

第一直觉爆搜。

发现 \(N \le 15\) ,然后后面每行都可以通过第一行递推出来。

爆搜第一行,递推后面+check


\(\mathrm{Code}\)

#include<bits/stdc++.h>
using namespace std; template <typename Tp>
void read(Tp &x){
x=0;char ch=1;int fh;
while(ch!='-'&&(ch>'9'||ch<'0')) ch=getchar();
if(ch=='-') ch=getchar(),fh=-1;
else fh=1;
while(ch>='0'&&ch<='9') x=(x<<1)+(x<<3)+ch-'0',ch=getchar();
x*=fh;
} const int maxn=17;
const int INF=0x3f3f3f3f; int T,cas; int n;
int a[maxn][maxn],b[maxn][maxn]; int ans; int calc(){
int res=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i][j]==1&&b[i][j]==0) ++res;
}
}
return res;
} bool check(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
int k=a[i][j-1]+a[i][j+1]+a[i-1][j]+a[i+1][j];
if(k&1) return false;
}
}
return true;
} void rebuild(){
for(int i=2;i<=n;i++){
for(int j=1;j<=n;j++) a[i][j]=b[i][j];
}
} void dp(){
for(int i=2;i<=n;i++){
for(int j=1;j<=n;j++){
int k=a[i-1][j-1]+a[i-1][j+1]+a[i-2][j];
if(k&1) a[i][j]=1;
}
}
if(!check()){
rebuild();return ;
}
ans=min(ans,calc());
rebuild();
} void dfs(int step){
if(step==n+1){
dp();return;
}
if(a[1][step]){
dfs(step+1);return;
}
dfs(step+1);
a[1][step]=1;
dfs(step+1);
a[1][step]=0;
} void Init(){
read(n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
read(a[i][j]);
b[i][j]=a[i][j];
}
}
} void solve(){
dfs(1);
if(ans==INF) ans=-1;
printf("Case %d: %d\n",cas,ans);
} void reset(){
ans=INF;
memset(a,0,sizeof(a));//错误笔记:多测不清空,*****
memset(b,0,sizeof(b));
} int main(){
// freopen("UVA11464.in","r",stdin);freopen("UVA11464.out","w",stdout);
read(T);
while(T--){
++cas;
reset();
Init();solve();
}
return 0;
}

UVA11464 Even Parity 搜索+递推的更多相关文章

  1. P1466 集合 Subset Sums 搜索+递推+背包三种做法

    题目描述 对于从1到N (1 <= N <= 39) 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的.举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,每个子 ...

  2. [每日一题2020.06.14]leetcode #70 爬楼梯 斐波那契数列 记忆化搜索 递推通项公式

    题目链接 题意 : 求斐波那契数列第n项 很简单一道题, 写它是因为想水一篇博客 勾起了我的回忆 首先, 求斐波那契数列, 一定 不 要 用 递归 ! 依稀记得当年校赛, 我在第一题交了20发超时, ...

  3. 【CF607B】Zuma——区间dp(记忆化搜索/递推)

    以下是从中文翻译成人话的题面: 给定一个长度小于等于500的序列,每个数字代表一个颜色,每次可以消掉一个回文串,问最多消几次可以消完? (7.16) 这个题从洛谷pend回来以后显示有103个测试点( ...

  4. [位运算] [搜索] [递推优化] [计算几何] TEST 2016.7.15

    NOIP2014 提高组模拟试题 第一试试题 题目概况: 中文题目名称 合理种植 排队 科技节 源程序文件名 plant.pas/.c/.cpp lineup.pas/.c/.cpp scifest. ...

  5. [ACM_动态规划] 数字三角形(数塔)_递推_记忆化搜索

    1.直接用递归函数计算状态转移方程,效率十分低下,可以考虑用递推方法,其实就是“正着推导,逆着计算” #include<iostream> #include<algorithm> ...

  6. ACM/ICPC 之 简单DP-记忆化搜索与递推(POJ1088-滑雪)

    递推型DP 将每个滑雪点都看作起点,从最低点开始逐个由四周递推出到达此点的最长路径的长度,由该点记下. 理论上,也可以将每一点都看作终点,由最高点开始计数,有兴趣可以试试. //经典DP-由高向低海拔 ...

  7. 动态规划——数字三角形(递归or递推or记忆化搜索)

    动态规划的核心就是状态和状态转移方程. 对于该题,需要用抽象的方法思考,把当前的位置(i,j)看成一个状态,然后定义状态的指标函数d(i,j)为从格子出发时能得到的最大和(包括格子本身的值). 在这个 ...

  8. 由DAG到背包问题——记忆化搜索和递推两种解法

    一.问题描述 物品无限的背包问题:有n种物品,每种均有无穷多个.第 i 种物品的体积为Vi,重量为Wi.选一些物品装到一个容量为 C 的背包中,求使得背包内物品总体积不超过C的前提下重量的最大值.1≤ ...

  9. 洛谷P1240-诸侯安置+递推非搜索

    诸侯安置 这道题是一题递推题,一开始自己不知道,用了搜索,只过了三个样例: 两两相同的合并, 成 1,1,3,3,5,5........n*2-1; 然后我们会容易发现一种不同与搜索的动态规划做法. ...

随机推荐

  1. MYSQL 命令导出事件、存储过程、触发器

    普通导出某个数据库 mysqldump -u username -p passowrd databasename > file.sql 顺便导出事件 使用 –events 参数 mysqldum ...

  2. 201871010104-陈园园 《面向对象程序设计 (java)》第一周学习总结

    201871010104-陈园园   <面向对象程序设计  (java)>第一周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-dai ...

  3. 这样修改有哪些优缺点 wcf service via attribute setting vs config

    客户要恢复数据,结果就是block在某个阶段,在server端log一圈下来,发现原来是client端出了问题,就是这个log: ERROR - Identity check failed for o ...

  4. 【Linux命令】setterm命令修改虚拟机颜色显示(目录及背景颜色)

    VMware设置目录及颜色显示 进入linux界面,默认背景为黑色,字体为白色 一.setterm命令 setterm向终端写一个字符串到标准输出,调用终端的特定功能.在虚拟终端上使用,将会改变虚拟终 ...

  5. python TKinter的主窗口运行程序完毕后,怎么让其自动关闭

    如题: 在pycharm 调试Tkinter程序的时候,关闭右上角的X 实际上并未退出进程,长期以往 再大的内存也会被耗尽. 一般就是下面的代码: """ from tk ...

  6. 解决邮件发送错误:503 Error: need EHLO and AUTH first

    引用文章 https://blog.csdn.net/lingfeian/article/details/96731620 问题描述 2019-07-21 16:14:00.449 ERROR 966 ...

  7. @Transactional什么情况才生效

    只有runtimeexception并且没有被try catch处理的异常才会回滚. 想要回滚,不要去try 还有一个坑时逻辑上的问题,之前总以为插入,更新后,返回值为0,@Transactional ...

  8. 【LOJ#2162】【POI2011】Garbage(欧拉回路)

    [LOJ#2162][POI2011]Garbage(欧拉回路) 题面 LOJ 题解 首先有一个比较显然的结论,对于不需要修改颜色的边可以直接删掉,对于需要修改的边保留.说白点就是每条边要被访问的次数 ...

  9. Java开发桌面程序学习(七)——ImageView设置图片以及jar包读取fxml文件

    ImageView设置图片 JavaFx的ImageView,设置图片不能直接通过属性设置,只能通过代码来设置 ImageView设置图片 首先,我们让fxml对应的那个controller的java ...

  10. springboot 2.0 配置 spring.jackson.date-format 不生效

    展开 问题:application.properties中的如下配置不生效,返回时间戳 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss 原因分析: 拦截器 ...