hdu
文章平均质量分 70
wintowanti
享受生活 享受学习
展开
-
hdu 4712 2种解发(状态dp| 随机化) 我又相信爱情了~~(第一发)
这个题目我们省赛的时候就已经做看过一次,但是那时候知道你n^2 一定是超时的,然后就gg了,这次在warm up上是发现了状态dp 然后估计了下复杂度大概是(2^20*20吧,然后就开始写了后面发现只向后面推冒失得不到答案,然后果断机智选择spfa的能向前个状态,然后发现这个时间是硬伤,第一组数据差不多2s才出来。这能交嘛?然后自己yy出向后退也可以,但是要记录每一个点最短和次短长度,对于已经有点原创 2013-09-10 16:16:48 · 1100 阅读 · 0 评论 -
hdu 4750 Count The Pairs 并查集+离线
我们对于边来按权值的大小升序排序,然后我们来考虑现有的一边E (u,v,cost),如果u,v.1,如果u,v 属于一个集合,那么这个边没有任何用处,因为集合内部的边可通过小于cost边联通,对于集合外面的点,会通过比cost大的边联通(还没加进来)。2,如果,u,v 不属于一个集合,那么A集合可通过E_cost边到达B集合,所以这条边能加pair 是add=num[u] *num[v],原创 2013-09-21 18:12:51 · 1476 阅读 · 0 评论 -
hdu 4737 线段树维护+二分
线段树维护从i到j 或的值,然后对于每一个i 二分最大j (满足单调性) i-j 所有小于m 总复杂度为(n*log(n)*log*(n))#include #include #include #define ll int#define lson i<<1#define rson i<<1|1using namespace std;ll const M = 100000+9;原创 2013-09-14 23:19:14 · 1060 阅读 · 3 评论 -
hdu 4733 G(x) 状态dp
这是个状态DP 首先我们设p的的二进制为 a1 a2 a3 a4 a5 a6 明显[p/2] 为 0 a1 a2 a3 a4 a5 然后我们设a3为p第一个为0的位数那么p就是a1 a2 0 1 1 [p/2]= 为 0 a1 a2 01 明显g(x) 为 a1 a2^a1 a2 1 0 0 明显p+1 的二进制为 a1 a2 1 0 0 ,[p+1/2]为 0 a1 a2 1 0 g(原创 2013-09-15 11:08:00 · 1886 阅读 · 2 评论 -
hdu 4738 Caocao's Bridges 割边无敌(trick)
比赛的时候一直没有做出来,后面看了wrong了40++ 其实这个题目trick 在于如果有一条权值为0的割边,你至少要派一个人去,这个就是全部了。。唉。。就看了一体还没做出555555#include#include#include#define M 1080#define inf 0x3f3f3f3fusing namespace std;struct G{ int he原创 2013-09-15 18:48:37 · 1239 阅读 · 0 评论 -
hdu 4734 数位dp
刚好近来学了数位dp刚好用上了,nice 用dp[i][j][k] 表示第i位用j时f(x)=k的时候的个数,然后需要预处理下,然后就很容易想了 dp[i+1][j][k+(1#include#include#define M 7000int dp[12][12][M];int tsum[12][12][M];void init(){ memset(dp,0,sizeof原创 2013-09-14 17:52:22 · 1301 阅读 · 0 评论 -
hdu 2089 不要62
基础数位dp 用dp[i][j] 表示滴i个数时以j结尾所应该统计的个数 明显每次递推的时候特殊考虑 4 和 6 2 但是在统计的时候需要注意前面是否有4 和62 来防止计算了。第一个数位#include#include#define M 10int dp[M][M];using namespace std;void init(){ dp[0][0]=1; for(in原创 2013-09-12 10:46:57 · 1041 阅读 · 0 评论 -
hdu 4722 good number 数位dp入门
明显dp[i][j][k] 表示i为取j的时候余数为k的个数 然后dp方程就显然可得了,我看其他人都是2位,少了j这个位,但是我认为有这位比较清楚啊,贴上代码#include#include#define M 25#define ll __int64ll dp[M][10][10];void init(){ memset(dp,0,sizeof(dp)); dp[0]原创 2013-09-12 18:00:09 · 1074 阅读 · 0 评论 -
hdu 4725 (spfa+建图) 明显要求最短路
如果按照自己建图点个数为(N^2) 明显这个复杂度是不行的,过后,可以把每一层分成上个层进入点,和到下层的进入点,只需要把某一个边变成C就可以了,比赛的时候收惨写了2个u 到 v 没写v 到u 结果wrong了一下午,后面发现有些层没点,但是自己的代码考虑到了,晚上才ac哎,#include#include#include#include#define inf 0x3f3f3f3f#de原创 2013-09-11 22:39:52 · 1664 阅读 · 0 评论 -
hdu 4758 ac自动机+dp
hdu 4758 ac自动机+dp原创 2013-10-24 08:31:24 · 1062 阅读 · 0 评论