hdu5890 暴力DP(bitset常数优化)
题目连接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5890
这道题目我的队友当场暴力搜索写过,ORZ。赛后发现是bitset优化的DP,因为之前没写过这样的DP,所以记录一下。其实暴力的DP很好写,不过算一下复杂度,本质不同的询问有2W左右,可以开数组记录一下,每次暴力DP的代价是87*10*47*47大概4W左右,总复杂度8e8,一般是跑不过的。但是常数优化很强大有木有?何况bitset是自带的stl,用起来很方便。因为状态只有01两种,所以直接用bitset存储,状态转移的时候没加一个数,87个状态整体左移这个数的大小即可,复杂度为8e8/w,w据说是机器字长,w=8位左右正好可以卡过。还有其他优化方法本渣渣就不在介绍了,可以上X姐博客上看。
附上代码:
//#include <bits\stdc++.h>
//#pragma comment(linker, "/STACK:102400000,102400000")
#include <cstdio>
#include <cstring>
#include <iostream>
#include <cstdlib>
#include &