牛客比赛-状压dp
链接:https://www.nowcoder.com/acm/contest/74/F
来源:牛客网
输入描述:
输入包含多组测试数据;
每组数据的第一行包含2个整数n和m (n <= 12, m <= 12 ),之间用空格隔开;
接下来的n行,每行m个数,表示n*m的比尔吉沃特领土。
输出描述:
输出一个整数n代表安排应用的方法。
(答案取膜100000000)
输入
3 3
1 1 1
0 1 1
1 0 0
输出
24
比赛时想到状压dp,但没心情写了,刚才试了试1A了= =今天也算写了一题
0一定是0,1有可能是1也有可能是0,用轮廓线处理就好了,复杂度O(n*m*m*2^m)
一直没写卡在如何使最高位归零真是zz了,1xxxx,&上一个01111就好了。
最后记得注意边界处理。
#include<bits/stdc++.h>
using namespace std;
#define LL long long
LL mod=;
int e[][];
LL dp[][(<<)+];
int main()
{
int n,m,i,j,k,p;
while(cin>>n>>m){
for(i=;i<n;++i)
for(j=;j<m;++j) cin>>e[i][j];
int cur=;
memset(dp,,sizeof(dp));
dp[][]=;
for(i=;i<n;++i)
{
for(j=;j<m;++j)
{
cur^=;
memset(dp[cur],,sizeof(dp[cur]));
for(k=;k<(<<m);++k)
{
dp[cur][(k<<)&((<<m)-)]=(
dp[cur][(k<<)&((<<m)-)]+dp[cur^][k]%mod)%mod;
if(e[i][j]){
if(j==){
if(!(k&(<<(m-))))
dp[cur][(k<<)&((<<m)-)|]=
(dp[cur][(k<<)&((<<m)-)|]+dp[cur^][k])%mod; }
else{
if(!(k&(<<(m-))))
{
if(!(k&)){
dp[cur][(k<<)&((<<m)-)|]=
(dp[cur][(k<<)&((<<m)-)|]+dp[cur^][k])%mod;
}
}
}
}
}
}
}
LL ans=;
for(k=;k<(<<m);++k)ans=(ans+dp[cur][k])%mod;
cout<<ans<<endl;
}
return ;
}
牛客比赛-状压dp的更多相关文章
- bzoj3380: [Usaco2004 Open]Cave Cows 1 洞穴里的牛之一(spfa+状压DP)
数据最多14个有宝藏的地方,所以可以想到用状压dp 可以先预处理出每个i到j的路径中最小权值的最大值dis[i][j] 本来想用Floyd写,无奈太弱调不出来..后来改用spfa 然后进行dp,这基本 ...
- 计蒜客 宝藏 (状压DP)
链接 : Here! 思路 : 状压DP. 开始想直接爆搜, T掉了, 然后就采用了状压DP的方法来做. 定义$f[S]$为集合$S$的最小代价, $dis[i]$则记录第$i$个点的"深度 ...
- 牛客练习赛49 B 筱玛爱阅读 (状压DP,子集生成)
链接:https://ac.nowcoder.com/acm/contest/946/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262875K,其他语言5257 ...
- 2019牛客多校第五场 F maximum clique 1 状压dp+最大独立集
maximum clique 1 题意 给出一个集合s,求每个子集的最大独立集的权值和(权值是独立集的点个数) 分析 n比较小,一股浓浓的暴力枚举每一个子集的感觉,但是暴力枚举模拟肯定会T,那么想一想 ...
- 牛客练习赛18E pocky游戏 状压dp
正解:状压dp+辅助dp 解题报告: 来还债辣!NOIp之后还是轻松很多了呢,可以一点点儿落实之前欠下的各种东西一点点提升自己!加油鸭! 是个好题,可以积累套路,启发性强,而且很难 哦而且状压它也是个 ...
- 计蒜客 31436 - 提高水平 - [状压DP]
题目链接:https://nanti.jisuanke.com/t/31436 作为一名车手,为了提高自身的姿势水平,平时的练习是必不可少的.小 J 每天的训练包含 $N$ 个训练项目,他会按照某个顺 ...
- 洛谷U14667 肝活动【比赛】 【状压dp】
题目描述 Yume 最近在玩一个名为<LoveLive! School idol festival>的音乐游戏.他之所以喜欢上这个游戏,是因为这个游戏对非洲人十分友好,即便你脸黑到抽不出好 ...
- 计蒜客 30994 - AC Challenge - [状压DP][2018ICPC南京网络预赛E题]
题目链接:https://nanti.jisuanke.com/t/30994 样例输入: 5 5 6 0 4 5 1 1 3 4 1 2 2 3 1 3 1 2 1 4 样例输出: 55 样例输入: ...
- 计蒜客习题:蒜头君的积木 (状压DP 枚举子集)
问题描述 蒜头君酷爱搭积木,他用积木搭了 n 辆重量为 wi的小车和一艘最大载重量为 W 的小船,他想用这艘小船将 n 辆小车运输过河.每次小船运载的小车重量不能超过 W.另外,小船在运载小车时,每辆 ...
随机推荐
- caffe自定义layer
caffe自带layers: http://caffe.berkeleyvision.org/tutorial/layers.html Layers: Image Data - read raw im ...
- Django--Web应用介绍/http协议
- 我的Android进阶之旅------>Android自定义View实现带数字的进度条(NumberProgressBar)
今天在Github上面看到一个来自于 daimajia所写的关于Android自定义View实现带数字的进度条(NumberProgressBar)的精彩案例,在这里分享给大家一起来学习学习!同时感谢 ...
- java正则匹配
java正则提取需要用到Matcher类,下面给出案例示例供参考 需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6import java.util.regex.Matche ...
- Mycat教程---数据库的分库分表
mycat介绍 介绍在官方网站上有比较详细的介绍,在这里复制粘贴没什么意思,大家到官网上看 官网链接 前置条件 本教程是在window环境下运行的,实际生产推荐在Linux上运行. 必备条件(自行安装 ...
- tomcat web工程 jar包冲突解决方法
目前在部署工程时,遇到了一个问题,报错信息如下: See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet ...
- Kattis - cokolada【水】
Kattis - cokolada[水] 题意 有一个人想吃巧克力,但是巧克力都是按照 2 的幂次的数量包装的,然后他想吃一定数量块的巧克力,然后可以敲碎,每次敲碎都分成两半,比如四块装的分成两块就是 ...
- 开发者需要知道的iOS 12
总体概况 iOS 12总体来看是对现有iOS的一次改进,并没有太多突破性的功能或者框架,但是Apple在底层做了很多优化的工作,优化了性能,提供了更强大的安全性,增强了AR.Siri体验,让人工智能更 ...
- windows下的DeepLearning环境搭建:Theano的安装
我的系统版本:windows8.1 64位 安装theano需要安装python.numpy等很多东西,为了简便,我这里用的是Anaconda 首先,清理电脑上的所有有关python的组件(可不清理, ...
- angularjs中directive声明scope对象的用法
总的来说用法 分三种: >1: scope: false --> 继承父域,实现 双向数据绑定 示例代码 可自测: <!DOCTYPE html> <html lang ...