【题目链接】
  https://www.lydsy.com/JudgeOnline/problem.php?id=5285
【题解】
  考虑最后一个影响一个二进制位的数。
  如果出现“&0”,那么之前所有的操作都不能影响它。同理“|1”也是。
  另外两种状态“&1”,“|0”不会影响前面的状态。
  所以从后往前枚举每一位的运算符。如果是“&”所有为0的位置不用再做下去,是“|”所有为1的位置不用做下去。所以一次询问的复杂度是O(N∗M)O(N∗M)O(N*M)的。
  总复杂度:O(N∗M∗Q)O(N∗M∗Q)O(N*M*Q)。

# include <bits/stdc++.h>
# define    N       1010
# define    M       5010
# define    P       1000000007
using namespace std;
int read(){int tmp=0, fh=1; char ch=getchar();while (ch<'0'||ch>'9'){if (ch=='-') fh=-1; ch=getchar();}while (ch>='0'&&ch<='9'){tmp=tmp*10+ch-'0'; ch=getchar();}return tmp*fh;
}
int n,m,q,ans;
char s[N][M],t[M];
int use[N][M],mul[N];
int solve(int k, int cnt){if (cnt==0) return mul[k];if (k==0){for (int i=1; i<=cnt; i++)if (t[use[k][i]]=='1')return 0;return 1;}int nex=0, flag=true, num=0;for (int i=1; i<=cnt; i++){ // ^if (s[k][use[k][i]]=='0'){if (t[use[k][i]]=='1'){flag=false; break;}}else use[k-1][++nex]=use[k][i];}if (flag) num=num+solve(k-1,nex);nex=0, flag=true;for (int i=1; i<=cnt; i++){ // vif (s[k][use[k][i]]=='1'){if (t[use[k][i]]=='0'){flag=false; break;}}else use[k-1][++nex]=use[k][i];}if (flag) num=(num+solve(k-1,nex))%P;return num;
}
int main(){n=read(), m=read(); q=read();mul[0]=1;for (int i=1; i<=n; i++)mul[i]=mul[i-1]*2%P;for (int i=1; i<=n; i++)scanf("\n%s",s[i]+1);while (q--){scanf("\n%s",t+1);for (int i=1; i<=m; i++) use[n][i]=i;ans=solve(n,m);printf("%d\n",ans);}return 0;
}

[bzoj5285][Hnoi2018]寻宝游戏【复杂度分析】相关推荐

  1. bzoj 5285: [Hnoi2018]寻宝游戏

    Description Solution 把输入的 \(n\) 个二进制数看作一个大小为 \(n*m\) 的矩阵 把每一列压成一个二进制数,其中最高位是最下面的元素 然后就有了 \(m\) 个二进制数 ...

  2. HNOI2018寻宝游戏

    https://www.luogu.org/problemnew/show/P4424 题解 我们首先按位考虑. 如果有一位最终的结果为1,那么我们可以把树的序列看成一个二进制数,先出现的在底位,后出 ...

  3. 2021年第一季度中国电竞行业网络关注度分析报告

    新浪游戏联合新浪舆情通推出<中国电竞行业网络关注度分析报告·2021年Q1版>,本报告通过大数据视角透视2021年第一季度中国电竞行业发展现状,对中国电竞行业热度.细分行业信息传播规律.人 ...

  4. 基于Python语言的PUBG游戏数据可视化分析系统

    [success]写于2019年大作业[/success] 博客链接:https://www.iamzlt.com/?p=299 代码链接请到博客链接内查看. 摘要 随着网络技术的兴起和普及,网络游戏 ...

  5. 06:寻宝_第1集:寻宝游戏!

    06:寻宝 Let's kick things off with something a bit unusual: a virtual scavenger hunt. 让我们从一些不寻常的事情开始:虚 ...

  6. 学习:关于游戏用户流失分析方法

    三步骤: 流失分析 游戏次日流失分析 游戏中长期流失分析 part 1 流失分析 定位流失用户,挖掘流失用户流失前的最后行为,从而发现导致这类流失的原因 需求开发的重要前提: 1. 与需求方(运营)明 ...

  7. 几十款游戏的简单分析

    文章目录 一. 介绍 二. 影响游戏体验的因素 三. 游戏能爆火的因素 1.影响游戏爆火因素的排名 2.玩游戏的两种经典心理 3.经典案例分析 Qq农场 植物大战僵尸 水果忍者 召唤神龙 羊了个羊 4 ...

  8. 【每日一学】复杂度分析

    文章目录 目标 什么是数据结构 复杂度分析 目标 建立时间复杂度.空间复杂度意识,写出高质量的代码 能够设计基础架构 提高编程技能 训练逻辑思维 什么是数据结构 广义:一组数据的存储结构 | 操作数据 ...

  9. 卷积神经网络的复杂度分析

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | Michael Yuan@知乎(已授权) 来源 | htt ...

最新文章

  1. open的O_DIRECT选项
  2. 使用机器学习方法预测IBM员工流失数据模型
  3. bean加载时调用@value时会出现空指针异常_SpringMVC全局异常处理机制
  4. android 颜色填充工具栏,Android工具栏颜色未由colorPrimary设置
  5. WPF绘制光滑连续贝塞尔曲线
  6. 关于开发中的常用手段(个人建议)
  7. 【HDU - 3081】Marriage Match II(网络流最大流,二分+网络流)
  8. 类的static成员并用其实现一个单例模式
  9. Android 2019最新面试实战总结
  10. 当年黄光裕有多么霸气?一张合影令人震撼,现任首富王健林成小弟
  11. C#:实现Euclidean distance欧氏距离算法(附完整源码)
  12. 恢复Surface Pro 高级电源设置里各类配置项提高外接电源模式下的性能(外接电源莫名很卡,拔掉电源又正常,实则被降频)
  13. 一维数组和二维数组的定义及用法
  14. 用Python制作一条五彩蟒蛇
  15. 如何经营好一家公司?这些管理要点请收下
  16. [微信] 微信商户号 资金解决方案 自动提现 关闭
  17. 移动宽带没有公网IP?不,它有公网IPv6,你只需要……
  18. Java内部锁(synchronized)中类锁和对象锁
  19. Paddle2.0让你成为诗词大师-PaddlePoetry
  20. XCTF攻防世界BABYRE逆向

热门文章

  1. 班级优化大师显示网络或服务器异常,希沃班级优化大师常见问题总汇
  2. 计算机版音乐教学反思,音乐教学反思(通用3篇)
  3. Python - GPA的计算
  4. 专访天冕科技许文彬:以超5000万用户为基础,构建完善的隐私计算数据应用生态
  5. 什么是非同质化代币(non-fungible token)?关于NFT你需要知道的一切
  6. elasticsearch-数据聚合
  7. session Storage
  8. mixly 添加micropython_Mixly For Mac
  9. 记录个tomcat启动报错问题,Unable to process Jar entry
  10. 解决Python使用playsound播放音频报错:在用引号括起的字符串不能指定额外的字符