正题


题目大意

nnn个点mmm条边,边上是0/10/10/1,求有多少种不同的长度为ddd的路径序列


解题思路

我们将ddd分为两半,定义fi,j,sf_{i,j,s}fi,j,s​表示从iii出发到jjj,路径序列状态sss是否可行。

然后我们可以用bitsetbitsetbitset来存储,这样时间就会变快即可通过本题目


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<bitset>
using namespace std;
const int N=100,D=(1<<11);
int n,m,d,ans;
bitset<N> g[D],f[D],a[2][N];
int main()
{scanf("%d%d%d",&n,&m,&d);int d1=(d+1)/2,d2=d-d1;for(int i=1;i<=m;i++){int x,y,w;scanf("%d%d%d",&x,&y,&w);x--;y--;a[w][x][y]=a[w][y][x]=1;}int MS=1<<d1;for(int i=n-1;i>=0;i--){for(int j=0;j<D;j++)g[j].reset();g[1][i]=1;for(int s=1;s<MS;s++)for(int j=0;j<n;j++)if(g[s][j]){g[s<<1]|=a[0][j];g[s<<1|1]|=a[1][j];}for(int s=0;s<MS;s++)f[s][i]=g[s|1<<d1].any();}for(int i=0;i<1<<d1;i++)for(int j=0;j<1<<d2;j++){ans+=(g[j|(1<<d2)]&f[i]).any();}printf("%d",ans);
}

jzoj1471-Y【bitset,dp,状压】相关推荐

  1. 【BZOJ】1076 [SCOI2008]奖励关 期望DP+状压DP

    [题意]n种宝物,k关游戏,每关游戏给出一种宝物,可捡可不捡.每种宝物有一个价值(有负数).每个宝物有前提宝物列表,必须在前面的关卡取得列表宝物才能捡起这个宝物,求期望收益.k<=100,n&l ...

  2. 【BZOJ 4565】 [Haoi2016]字符合并 区间dp+状压

    考试的时候由于总是搞这道题导致爆零~~~~~(神™倒序难度.....) 考试的时候想着想着想用状压,但是觉得不行又想用区间dp,然而正解是状压着搞区间,这充分说明了一件事,状压不是只是一种dp而是一种 ...

  3. #3864. Hero meet devil dp套dp + 状压 + 状态机

    传送门 文章目录 题意: 思路: 题意: 给你一个只包含ACGTACGTACGT的串sss,再给你一个mmm,第iii行输出有多少个长度为mmm且只包含ACGTACGTACGT的串与sss的lcslc ...

  4. [转]状态压缩dp(状压dp)

    状态压缩动态规划(简称状压dp)是另一类非常典型的动态规划,通常使用在NP问题的小规模求解中,虽然是指数级别的复杂度,但速度比搜索快,其思想非常值得借鉴. 为了更好的理解状压dp,首先介绍位运算相关的 ...

  5. CF 221 C Circling Round Treasures - dp - 状压

    题目大意: 给你一张网个图,每个位置是空地.障碍.炸弹.宝藏.起点之一. 规划一条从其点出发不包含炸弹的闭合路线(回路),并可获得最大的利润. 利润定义为路线内部的宝藏收益(可能为负数)之和减去路径长 ...

  6. bzoj4455 loj2091 [Zjoi2016]小星星 容斥原理+树形DP(+状压DP?)

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4455 https://loj.ac/problem/2091 题解 很不错的一道题.(不过在当 ...

  7. Educational Codeforces Round 80 (Rated for Div. 2)SZU cf集训round2 C~E(dp,状压+二分,树状数组+逆向思维)

    C. Two Arrays 题目大意:就是给定两个整数n和m.计算数组对的数量(a,b),使得: 1 .两个阵列的长度都等于m: 2 .每个数组的每个元素都是1到n(包括1和n)之间的整数: 从1到m ...

  8. SCUT - 254 - 欧洲爆破 - 概率dp - 状压dp

    https://scut.online/p/254 思路很清晰,写起来很恶心. #include<bits/stdc++.h> using namespace std; #define l ...

  9. 天上掉馅饼 期望dp+状压dp

    天上掉馅饼 (bonus) 题目描述 小G进入了一个神奇的世界,在这个世界,天上会掉下一些馅饼.今天,天上会随机掉下k个馅饼. 每次天上掉下馅饼,小G可以选择吃或者不吃(必须在下一个馅饼掉下来之前作出 ...

最新文章

  1. iOS iOS-System-Services(系统信息)
  2. python 欧氏距离_如何用NumPy计算欧氏距离?
  3. pta c语言 凯撒密码
  4. (6)散列冲突处理:链地址法
  5. 大数据之-Hadoop3.x_Hadoop之HDFS_DataNode的工作机制_原理---大数据之hadoop3.x工作笔记0077
  6. 【干货】2021年中国主要经济指标预测-中国科学院.pdf(附下载链接)
  7. linux中特殊符号分割,Shell_Linux Shell 中实现字符串切割的几种方法
  8. 英伟达日入2.3亿净赚8千万,挖矿业务断崖跳水,老黄喊话马斯克
  9. _DataStructure_C_Impl:共享栈
  10. mysql 数据库和表的增删改查
  11. Geos库学习之(一)——Geos库介绍和编译
  12. javascript scope chain
  13. Git命令使用出现Cannot update paths and switch to branch xxx at the same time解决方法
  14. unity overrideSprite的使用
  15. 5个最佳WordPress广告插件
  16. java 处理word,excel,pdf -javacode
  17. macOS实现词典正常查询维基百科
  18. RStudio 手动程序包安装
  19. 汇编语言--键盘扫描及显示实验(含代码解释)
  20. 【与公主对话】爱情的本质是什么

热门文章

  1. python跟java 效率_Python和Java该如何选择?老男孩Python人工智能
  2. 计算机信息处理教案,冀教版七年级信息技术第二课计算机--信息处理工具 教案...
  3. java压缩成.tar_java压缩tar.gz | 学步园
  4. java流的序列化_Java中的对象流和序列化介绍
  5. cas 4.2.7 官方手册_海城市地区,保险手册核验的简单流程
  6. .gpg 进程 linux,小知识之Linux系统中的最大进程数,最大文件描述,最大线程数...
  7. gesturedetector.java_android使用gesturedetector手势识别示例分享
  8. 磁带最优存储问题java实现_磁带的最优存储问题(贪心选择)
  9. java获取jsp对象的属性_java-从jsp el中的对象获取布尔属性
  10. 拓扑排序C++实现+实例解析(详解 兄弟们冲呀呀呀呀呀呀呀)