上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 53 下一页
摘要: 博弈论+dp 从未做过博弈论。。。 思路是这样的,我们倒着考虑,分别设f[i]表示先手选了a[i]后能取得的最大值,g[i]表示先手取了a[i]后后手能获得的最大值 g[i]=f[mx],f[mx]是[i+1,n]中最大的f,因为现在先手选了a[i],那么后手就变成先手了,自然选最大能获得的收益,f 阅读全文
posted @ 2017-10-25 16:31 19992147 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 二分+期望dp 好神奇啊。。。出题人太神了! 我们发现dp之间的关系不满足是一个dag,那么我们只能用高斯消元,但是由于这里是取最小值,需要取min,也不能用高斯消元,于是我们想出了一个奇妙的方法 我们假设x为从0到n的期望花费,这是我们自己定的,如果我们选择回到起点,那么就强制用x的期望时间直接到 阅读全文
posted @ 2017-10-24 21:00 19992147 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 构造 想了好长时间。。。 答案是n+n/2 我们这么想,先把偶数位置炸一遍,所有坦克都在奇数位置,然后再把奇数炸一遍,坦克都到偶数去了,然后再炸一次偶数就都炸掉了。。。 好巧妙啊 奇偶讨论很重要 #include<bits/stdc++.h> using namespace std; int n; 阅读全文
posted @ 2017-10-24 09:57 19992147 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 矩阵乘法 。。。爆零了。。。 想到Floyd,却不知道怎么限制点数。。。 其实我们只要给Floyd加一维,dp[i][j][k]表示当前走过了i个点,从j到k的最短距离,然后这样可以倍增,最后看是否有i->i的距离<0 做dp或最短路之类的题的时候,如果限制条件较多,可以考虑加维度 #include 阅读全文
posted @ 2017-10-23 23:11 19992147 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 概率dp+记忆化搜索 dp[i][j][0]表示当前公主走公主赢的概率,dp[i][j][1]表示当前龙走公主赢的概率,然后剩下的就是一些细节的讨论,记忆化搜索很方便 #include<bits/stdc++.h> using namespace std; const int N = 1005; i 阅读全文
posted @ 2017-10-23 22:46 19992147 阅读(140) 评论(0) 推荐(0) 编辑
摘要: dp+置换 可以把排列分成几个循环,然后dp统计 dp[i][j]=dp[i-1][j-1]*(i-1)+dp[i-1][j],表示当前有i个元素,至少换j次,然后如果不在自己应该在的位置有i-1种情况,在自己位置上有1种情况,转移即可 话说vjudge也有100AC了。。。 #include<cs 阅读全文
posted @ 2017-10-23 22:44 19992147 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 序列dp 先开始想了一个类似区间dp的东西...少了一维 然后发现似乎不太对,因为女生的最大差和男生的最大差并不相等 dp[i][j][x][y]表示当前有i个人,j个男生,男生和女生的后缀最大差是x,女生和男生最大差是y,x,y>=0,转移详见代码,注意x-1<0时也可以转移,只不过要和x-1取m 阅读全文
posted @ 2017-10-20 10:49 19992147 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 容斥原理+哈希表 恰好k个,那么上容斥原理,我们先2^6枚举相同的位置,用哈希表判断有多少个对应位置相同的元素,然后用容斥原理计算,似乎这里的容斥没有那么简单,详见这里 http://www.cnblogs.com/candy99/p/mobius.html, 要乘上组合数计算 #include<c 阅读全文
posted @ 2017-10-20 10:44 19992147 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 区间dp 其实我们发现对于一段区间我们是这样构造的,每次我们会向两端放数,这样就有四种情况,且必须满足题意,初值是dp[i][i][0]=1,因为第一个人只有一种放法,不分左右。其实看见dp[i][i][0/1]=1时答案是16就改初值 #include<bits/stdc++.h> using n 阅读全文
posted @ 2017-10-19 21:47 19992147 阅读(149) 评论(1) 推荐(0) 编辑
摘要: 容斥原理+组合数学 看见这种恰有k个的题一般都是容斥原理,因为恰有的限制比较强,一般需要复杂度较高的方法枚举,而容斥就是转化为至少有k个,然后通过容斥原理解决 我们先选出k个元素作为交集,有C(n,k)种可能,那么剩下的n-k个元素既可以选也可以不选,一共有2^(n-k)种选法,每种选法对应了一个集 阅读全文
posted @ 2017-10-19 21:46 19992147 阅读(282) 评论(0) 推荐(1) 编辑
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 53 下一页