【HDOJ】2319 Card Trick】的更多相关文章

水题,STL双端队列. /* 2319 */ #include <iostream> #include <cstdio> #include <cstring> #include <deque> #include <algorithm> using namespace std; int main() { int n, t; int i, j, k; deque<int> Q; #ifndef ONLINE_JUDGE freopen(&…
概率DP的题目,一直就不会做这类题目.dp[s]表示状态为s的时候再买多少张牌可以买全,表示的是一个期望值.dp[s] = 1 + P(empty) * dp[s] + P(had) * dp[s] + P(new) * dp[nst].从而可以解dp[s]. /* 4336 */ #include <iostream> #include <sstream> #include <string> #include <map> #include <queu…
[BZOJ3526][Poi2014]Card Description 有n张卡片在桌上一字排开,每张卡片上有两个数,第i张卡片上,正面的数为a[i],反面的数为b[i].现在,有m个熊孩子来破坏你的卡片了!第i个熊孩子会交换c[i]和d[i]两个位置上的卡片.每个熊孩子捣乱后,你都需要判断,通过任意翻转卡片(把正面变为反面或把反面变成正面,但不能改变卡片的位置),能否让卡片正面上的数从左到右单调不降. Input 第一行一个n.接下来n行,每行两个数a[i],b[i].接下来一行一个m.接下来…
[算法]数位DP [题解]动态规划 题目要求的是大整数……没办法只写了小数字的,感觉应该没错. 大题框架是最大值最小化的二分问题. 对于每一块要求count(b)-count(a-1)≥s 已知a如何计算b?令now=count(a-1)+s,求的就是满足count(b)≥now的最小b了. 虽然看上去只是不等式的移项,但其实上是一种差分思想:将b-a≥s转化为b≥a+s,避免计算b和a的差. 然后每次求出b后,b+1就是新的起点,也就是count(b)=count(a`-1),不需要重新计算.…
概率DP/数学期望/状压DP/容斥原理 kuangbin总结中的第14题 好神奇的做法……题解看kuangbin的代码好了…… //HDOJ 4336 #include<cstdio> #define rep(i,n) for(int i=0;i<n;++i) #define F(i,j,n) for(int i=j;i<=n;++i) #define D(i,j,n) for(int i=j;i>=n;--i) ; <<N]; int main(){ int n…
其实是求树上的路径间的数据第K大的题目.果断主席树 + LCA.初始流量是这条路径上的最小值.若a<=b,显然直接为s->t建立pipe可以使流量最优:否则,对[0, 10**4]二分得到boundry,使得boundry * n_edge - sum_edge <= k/b, 或者建立s->t,然后不断extend s->t. /* 4729 */ #include <iostream> #include <sstream> #include <…
概率DP/数学期望 kuangbin总结中的第7题 其实跟UVA 11762 Race To 1 那道题差不多……直接推下公式,然后倒推即可 Trick:有的点可能是p1[i][j]==1……这样的点是永远不会走出去的……所以也不能走到……遇到这样的点直接跳过就好了TAT 但是!!浮点数不能直接判定相等……应该写成 fabs(1-p[i][j][0])<eps 来判定!!!sad…… //HDOJ 3853 #include<cmath> #include<cstdio> #…
状态DP显然可以解,发现T了,不知道优化后能不能过.然后发现费用流可以解.trick是对need拆解成need/K, need%K两种情况讨论. /* 4312 */ #include <iostream> #include <sstream> #include <string> #include <map> #include <queue> #include <set> #include <stack> #include…
题目链接 Problem Description The magician shuffles a small pack of cards, holds it face down and performs the following procedure: 1.The top card is moved to the bottom of the pack. The new top card is dealt face up onto the table. It is the Ace of Spade…
DP/四边形不等式 裸题环形石子合并…… 拆环为链即可 //HDOJ 3506 #include<cmath> #include<vector> #include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> #include<algorithm> #define rep(i,n) for(int i=0;i<n;++i) #define…