https://ac.nowcoder.com/acm/contest/12482/D


题意:https://blog.csdn.net/zstuyyyyccccbbbb/article/details/115171072在原题的基础上进行了限制一些点不可放置。

思路:对这些不可放置的结合到预处理的st[]中去。这里需要将st[][]开成二维,记录第i列,j状态的可行性。

细节:

1.将不可存放转化成二进制数累加(记为temp),遍历所有进行【状态&temp】,如果==1即说明包含了不可存放的状态,要标记不成立

2.由于不可存放的限制对原来的单列/单行的可行性产生影响。

如:

temp: 0 0 1 0 1 0 0 (标1的即为X)

j: 0 1 0 1 0 0 0

这样直接判j的连续0的奇偶性会产生问题,所以要进行x==(j|temp),再进行和x的连续0奇偶性判断,其结果对j的状态进行标记

#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
#include<cmath>
#include<map>
#include<unordered_map>
#include<set>
#include<cstdio>
#include<algorithm>
#define debug(a) cout<<#a<<"="<<a<<endl;
using namespace std;
const int maxn=13;
typedef int LL;
typedef pair<LL,LL>P;
inline LL read(){LL x=0,f=1;char ch=getchar();   while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;}
bool st[maxn][1<<maxn];///每一列的可行状态
long long dp[maxn][1<<maxn];
bool map1[maxn][maxn];
int main(void)
{LL n,m,k;while(scanf("%d%d%d",&n,&m,&k)!=0){if(n==0&&m==0&&k==0) break;memset(map1,0,sizeof(map1));for(LL i=1;i<=k;i++){LL x,y;scanf("%d",&x);scanf("%d",&y);map1[x][y]=true;}for(LL i=1;i<=m;i++){///枚举每一列LL temp=0;for(LL j=1;j<=n;j++){///该列的每一行if(map1[j][i]) temp+=(1<<(j-1));}for(LL j=0;j<(1<<n);j++){///该列的全状态st[i][j]=true;if( j&(temp) ) {st[i][j]=false;continue;}LL x=j|temp;///细节LL cnt=0;for(LL k=1;k<=n;k++){if( ( 1<<(k-1) ) &x ){if(cnt&1){st[i][j]=false;break;}else cnt=0;}else cnt++;}if(cnt&1) st[i][j]=false;}}memset(dp,0,sizeof(dp));dp[0][0]=1;for(LL i=1;i<=m;i++){for(LL j=0;j<(1<<n);j++){for(LL k=0;k<(1<<n);k++){if((j&k)==0&&st[i][j|k]==true){dp[i][j]+=dp[i-1][k];}}}}printf("%lld\n",dp[m][0]);}
return 0;
}

涛酱和策策的游戏again(by良心出题人wzc)(思维+状压dp)相关推荐

  1. Newcoder 110 E.Pocky游戏(状压DP)

    Description 社交活动中有nnn个男孩和nnn个女孩. 他们玩的其中一场比赛是通过pockypockypocky传递橡皮筋(pockypockypocky是一种长条饼干). 与正常的社交活动 ...

  2. NowCoder110E Pocky游戏 状压DP

    传送门 题意:给出$N$个数和一个长为$M$.所有数在$[1,N]$范围之内的正整数序列$a_i$,求出这$N$个数的一种排列$p_1...p_N$使得$\sum\limits_{i=2}^M |p_ ...

  3. 牛客练习赛$18E\ pocky$游戏 状压$dp$

    正解:状压$dp$ 解题报告: 传送门$QwQ$ 首先注意下题目,这个$a_i$不是个排列,,,我开始想了好久说这不是傻逼题直接做嘛然后一看样例发现我是傻逼$/dk$ 一个套路,看到绝对值问题一般就是 ...

  4. 18. 涛酱和策策的游戏again

    题目链接:涛酱和策策的游戏again 状压,枚举 m m m 这一维,压 n n n 这一维从上一层伸过来的那些格子的位置.可以先预处理出没有障碍的情况下的可行状态,转移的时候枚举上一位伸下来和这一维 ...

  5. 浙江农林大学第十九届程序设计竞赛暨天梯赛选拔赛-D 涛涛和策策的游戏(尼姆博弈)

    浙江农林大学第十九届程序设计竞赛暨天梯赛选拔赛-D 涛涛和策策的游戏 链接:https://ac.nowcoder.com/acm/contest/7872/D 来源:牛客网 题目描述 涛涛和策策打码 ...

  6. 浙江农林大学第十九届程序设计竞赛暨天梯赛选拔赛 涛涛和策策的游戏 (尼姆博弈)

    链接:https://ac.nowcoder.com/acm/contest/7872/D 来源:牛客网 题目描述 涛涛和策策打码累了的时候会聚在一起van游戏. 某一天他们又凑在一起玩游戏了,因为最 ...

  7. ubantu 黑屏_策魂三国游戏出现黑屏怎么处理 处理方案一览

    策魂三国游戏出现黑屏怎么处理 处理方案一览.策魂三国是一款非常好玩的游戏,许多玩家被其优秀的内容和有趣的玩法所吸引.但是近日有小伙伴反应黑屏无法安装,小编这里整理了一些黑屏的原因和方法,下面就分享给大 ...

  8. ubuntu中make头文件找不到_和平精英:游戏中找不到人怎么办?这些技巧帮你练出“火眼金睛”...

    大家好,欢迎来到<刺激实战教室>,我是你们的老朋友刺激哥.俗话说,电子竞技不需要视力,而这句话也是<和平精英>的一个"痛点".在<和平精英>这款 ...

  9. 金字塔造人游戏java_我要造人游戏最新版预约v1.0-游戏下载

    我要造人是一款非常好玩的模拟经营游戏,游戏名为我要造人,但是这个造人不是大家想象中的那个造人,这个造人其实就是字面意思,众所周知的是人类是由数百种元素以一定的比例构成的,那么假如我们将这些元素倒推的话 ...

最新文章

  1. PHP Socket配置以及实例
  2. OpenCV中SVM的使用
  3. Chrome 技术篇-console控制台检测xpath、css唯一性
  4. win10中Android Studio (不含SDK) 安装后如何相关错误跳坑指南
  5. python对工作效率的提升_使用了这个几个Python内置小工具,可以让你的工作效率提升一倍...
  6. !Important:CSS中!important的作用用于Ie6.0 与Ie7.0、firefox
  7. Install marvel and head plugin for ealsticsearch
  8. Linux: .bash_profile 与 .bashrc 的区别
  9. 服务器的运行速度突然变慢的原因一般有如下几个方面:
  10. exchange创建邮箱组_Exchange 2010 如何创建通讯组
  11. html菜单栏向左展开与收起,网页左侧固定菜单栏的展开与收起
  12. 登录和访问EI(Engineering Village)数据库查找文献
  13. 前端Jest自动化测试
  14. 华硕t100ha刷linux,华硕T100一键重装win7系统教程
  15. mysql判断用户名和密码是否正确_怎样分别判断用户名和密码是否正确
  16. java编写程序防止电脑屏幕休眠
  17. Suspending MMON slave action kewrmapsa_ for 82800 seconds
  18. Spanning-tree guard features配置案例
  19. java实现高德地图app_入门指南-高德地图手机版 | 高德地图API
  20. Linux 统计一段时间内的文件大小

热门文章

  1. 快加入「我的最爱」吧 Python 开发者不容错过的30 个Github 开源专案(下)
  2. 全球当下最厉害的14位程序员,说没听过简直离谱~
  3. 攻防世界misc高手进阶区刷题记录
  4. 魔兽世界以前的服务器找不到了,魔兽世界怀旧服服务器彻底崩溃,玩家游戏人物消失服务器全部不见...
  5. 全棉时代的私域保卫战
  6. 文件翻译改名,将名称从中文翻译成英文的方法
  7. pymysql——Python连接SQL
  8. 使用通达信level2接口自动交易下单有什么特点?
  9. Android 消息总线汇总(一)
  10. 越学越有趣:『手把手带你学NLP』系列项目02 ——语义相似度计算的那些事儿...