#\(\color{red}{\mathcal{Description}}\)

\(Link\)

现有\(n\)盏灯,以及\(m\)个按钮。每个按钮可以同时控制这\(n\)盏灯——按下了第i个按钮,对于所有的灯都有一个效果。按下\(i\)按钮对于第\(j\)盏灯,是下面\(3\)中效果之一:如果\(a[i][j]\)为1,那么当这盏灯开了的时候,把它关上,否则不管;如果为\(-1\)的话,如果这盏灯是关的,那么把它打开,否则也不管;如果是\(0\),无论这灯是否开,都不管。

现在这些灯都是开的,给出所有开关对所有灯的控制效果,求问最少要按几下按钮才能全部关掉。

#\(\color{red}{\mathcal{Solution}}\)

\(emmmm\)一开做这个题的时候是为了刷最短路水题的来着……结果发现好像需要状态压缩??等会儿,我都压完了还跑什么sb最短路啊,直接DP不就行了吗……我们发现这个题好像只要一维就行(你也找不出第二维啊),我们令\(dp_i\)表示到达状态\(i\)时所需要的最小步数,如果初始位置是全0状态,那么答案就是\(dp_{(1 << n)-1}\)(即\(n\)个灯都是开着的状态)。

然后就只要判断一下状态是否合法即可,转移时的状态转移方程就是$dp_{new} = min{dp_{last}+1} $

\(emmmm\)至于最短路什么的还是日后再说吧\(qwq\)

\(Code\)

//pks学习专用
#include <cstdio>
#include <iostream>
#include <algorithm> using namespace std ;
const int Inf = 1926081700 ;
const int MAXN = 12, MAXM = 1025 ;
int M, N, i, j, k, t, f[1 << MAXN], A[MAXM][MAXN] ; int main(){
cin >> N >> M ;
for(i = 1; i <= M; i ++)
for(j = 1; j <= N; j ++)
cin >> A[i][j] ;
fill(f + 1, f + MAXM + 1, Inf) ;
for(i = 0; i < (1 << N); i ++)
for(k = 1; k <= M; k ++){
t = i ;
for(j = 0; j < N; j ++)
if((A[k][j + 1] == 1 && !(i & 1 << j))||
(A[k][j + 1] == -1 && (i & 1 << j)))
t ^= (1 << j) ;
f[t] = min(f[t], f[i] + 1) ;
}
if(f[(1 << N) - 1] == Inf) cout << "-1" << endl ;
else cout << f[(1 << N) - 1] << endl ;
}

随机推荐

  1. 解决:springmvc maven 项目搭建完后没有src目录,而且maven导入很慢

    前言:在搭建springmvc maven项目中遇到的问题做总结,比如搭建后没有src,同时这里也解决了搭建后maven导入很慢的问题. 问题: 1.发现创建出来的maven项目没有src文件 ,而且 ...

  2. plSql读取Oracle数据库中文乱码

    新建环境变量,设置变量名:NLS_LANG,变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK,确定即可

  3. BZOJ4598: [Sdoi2016]模式字符串(点分治 hash)

    题意 题目链接 Sol 直接考虑点分治+hash匹配 设\(up[i]\)表示\(dep \% M = i\)的从下往上恰好与前\(i\)位匹配的个数 \(down\)表示\(dep \% M = i ...

  4. baidu地图api , 地理位置转 经纬度接口

    更多可以查看    http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding 地理编码示例: 以下是关于地理编 ...

  5. Leetcode算法比赛----First Unique Character in a String

    问题描述 Given a string, find the first non-repeating character in it and return it's index. If it doesn ...

  6. CSS transitions深入理解

    到底css transition是什么,我们来看w3c的解释: CSS Transitions allow property changes in CSS values to occur smooth ...

  7. Gartner发布最新魔力象限报告,微软领跑数据库市场(编译自TechRepublic)

    知名调研机构Gartner发布了最新的<2015年数据库管理系统魔力象限调研报告>.报告显示,微软.甲骨文和AWS是数据库市场的三大领导厂商. 此份报告对知名的商用以及开源数据库厂商进行了 ...

  8. 【转】网络管理员必知之:IP地址划分

    1.IP地址分类         IP地址有四个段,包括网络标识和主机标识两部分:netid+hostid.         IP地址应用分为A.B.C三类,D.E类是保留和专用的.         ...

  9. [翻译] JTBorderDotAnimation

    JTBorderDotAnimation https://github.com/jonathantribouharet/JTBorderDotAnimation JTBorderDotAnimatio ...

  10. 乘风破浪:LeetCode真题_017_Letter Combinations of a Phone Number

    乘风破浪:LeetCode真题_017_Letter Combinations of a Phone Number 一.前言 如何让两个或者多个集合中的随机挑选的元素结合到一起,并且得到所有的可能呢? ...