jzoj1471-Y【bitset,dp,状压】
正题
题目大意
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,状压】相关推荐
- 【BZOJ】1076 [SCOI2008]奖励关 期望DP+状压DP
[题意]n种宝物,k关游戏,每关游戏给出一种宝物,可捡可不捡.每种宝物有一个价值(有负数).每个宝物有前提宝物列表,必须在前面的关卡取得列表宝物才能捡起这个宝物,求期望收益.k<=100,n&l ...
- 【BZOJ 4565】 [Haoi2016]字符合并 区间dp+状压
考试的时候由于总是搞这道题导致爆零~~~~~(神™倒序难度.....) 考试的时候想着想着想用状压,但是觉得不行又想用区间dp,然而正解是状压着搞区间,这充分说明了一件事,状压不是只是一种dp而是一种 ...
- #3864. Hero meet devil dp套dp + 状压 + 状态机
传送门 文章目录 题意: 思路: 题意: 给你一个只包含ACGTACGTACGT的串sss,再给你一个mmm,第iii行输出有多少个长度为mmm且只包含ACGTACGTACGT的串与sss的lcslc ...
- [转]状态压缩dp(状压dp)
状态压缩动态规划(简称状压dp)是另一类非常典型的动态规划,通常使用在NP问题的小规模求解中,虽然是指数级别的复杂度,但速度比搜索快,其思想非常值得借鉴. 为了更好的理解状压dp,首先介绍位运算相关的 ...
- CF 221 C Circling Round Treasures - dp - 状压
题目大意: 给你一张网个图,每个位置是空地.障碍.炸弹.宝藏.起点之一. 规划一条从其点出发不包含炸弹的闭合路线(回路),并可获得最大的利润. 利润定义为路线内部的宝藏收益(可能为负数)之和减去路径长 ...
- bzoj4455 loj2091 [Zjoi2016]小星星 容斥原理+树形DP(+状压DP?)
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4455 https://loj.ac/problem/2091 题解 很不错的一道题.(不过在当 ...
- 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 ...
- SCUT - 254 - 欧洲爆破 - 概率dp - 状压dp
https://scut.online/p/254 思路很清晰,写起来很恶心. #include<bits/stdc++.h> using namespace std; #define l ...
- 天上掉馅饼 期望dp+状压dp
天上掉馅饼 (bonus) 题目描述 小G进入了一个神奇的世界,在这个世界,天上会掉下一些馅饼.今天,天上会随机掉下k个馅饼. 每次天上掉下馅饼,小G可以选择吃或者不吃(必须在下一个馅饼掉下来之前作出 ...
最新文章
- iOS iOS-System-Services(系统信息)
- python 欧氏距离_如何用NumPy计算欧氏距离?
- pta c语言 凯撒密码
- (6)散列冲突处理:链地址法
- 大数据之-Hadoop3.x_Hadoop之HDFS_DataNode的工作机制_原理---大数据之hadoop3.x工作笔记0077
- 【干货】2021年中国主要经济指标预测-中国科学院.pdf(附下载链接)
- linux中特殊符号分割,Shell_Linux Shell 中实现字符串切割的几种方法
- 英伟达日入2.3亿净赚8千万,挖矿业务断崖跳水,老黄喊话马斯克
- _DataStructure_C_Impl:共享栈
- mysql 数据库和表的增删改查
- Geos库学习之(一)——Geos库介绍和编译
- javascript scope chain
- Git命令使用出现Cannot update paths and switch to branch xxx at the same time解决方法
- unity overrideSprite的使用
- 5个最佳WordPress广告插件
- java 处理word,excel,pdf -javacode
- macOS实现词典正常查询维基百科
- RStudio 手动程序包安装
- 汇编语言--键盘扫描及显示实验(含代码解释)
- 【与公主对话】爱情的本质是什么
热门文章
- python跟java 效率_Python和Java该如何选择?老男孩Python人工智能
- 计算机信息处理教案,冀教版七年级信息技术第二课计算机--信息处理工具 教案...
- java压缩成.tar_java压缩tar.gz | 学步园
- java流的序列化_Java中的对象流和序列化介绍
- cas 4.2.7 官方手册_海城市地区,保险手册核验的简单流程
- .gpg 进程 linux,小知识之Linux系统中的最大进程数,最大文件描述,最大线程数...
- gesturedetector.java_android使用gesturedetector手势识别示例分享
- 磁带最优存储问题java实现_磁带的最优存储问题(贪心选择)
- java获取jsp对象的属性_java-从jsp el中的对象获取布尔属性
- 拓扑排序C++实现+实例解析(详解 兄弟们冲呀呀呀呀呀呀呀)