关闭
当前搜索:

[组合数 DP] HDU 4532 湫秋系列故事——安排座位

一种典型的组合数DP  f[i][j]表示前i种数值排列有j个不合法间隙的方案数 然后枚举第i个分成几块k 有l块塞入j个不合法空隙中进行转移 答案即为f[n][0] 不过还要乘以排列数 #include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; type...
阅读(402) 评论(0)

[DP 贪心] 51Nod 1673 树有几多愁

如果我们确定了每个叶子之间的相对大小关系,就可以用贪心来解决这个问题了。 对于每一个祖先,它的编号一定大于它的所有儿子。 我们从大到小来枚举所有编号(这里指相对大小)。 令dp[i]表示i这个状态的节点可以得到的最大乘积。 有dp[i]可以转移到dp[i+j],其中j这个状态仅有一个节点,并且那个节点的权值是可以算出来的。 令f[i]表示i这个状态的节点全部向根染色后最终会有多少点被染色...
阅读(271) 评论(0)

[线性筛 质因数分解] 51Nod 1643 小Q的家庭作业

#include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; typedef long long ll; const int P=1e9+7; const int N=10000005; int prime[664580],num; int vst[N],d[N]; i...
阅读(298) 评论(0)

[均摊 线段树] UOJ #228. 基础数据结构练习题

靠信仰做题 其实很好感性的理解复杂度 想象数列是一排山峰高低不平 可以用O(K*n)次开根把他们削平 区间加操作不过是把其中一段整体抬高  只要在这段两边多做常数次就能把他削平 Evan可是用偏导证明的 %%% #include #include #include #include #define mid ((l+r)>>1) using namespace std; type...
阅读(507) 评论(0)

[分块] BZOJ 2122 工作评估

比较好的一道分块题 重要结论F(i,j,x0)=min( G(i,j), x0+S(i,j)) 详见:http://blog.csdn.net/u011542204/article/details/51504804 #include #include #include #include #include #define dprintf(...) fprintf(stderr,__VA...
阅读(428) 评论(0)

[缩树 主席树] BZOJ 4539 [Hnoi2016]树

hnoi的大数据结构题 把每一个残基缩一下 变成一颗大树  每次新增 查询一下是在哪个残基上 这里要用主席树求子树第k大 然后记一下到fat的权值 然后就各种细节搞lca #include #include #include using namespace std; typedef long long ll; inline char nc(){ static char b...
阅读(188) 评论(0)

[线段树 扫描线 鬼畜] BZOJ 3228 [Sdoi2008]棋盘控制 && BZOJ 1905 Soldier 士兵控制的棋盘

这种题目太恶心  把坐标轴转一下 就是裸的扫描线 但是是网格 很恶心 我用线段树算出无边界的情况 分奇数列和偶数列算两次 然后四个边界算一下去掉 四个角重复减的算一下 加回去 #include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; typedef l...
阅读(344) 评论(0)

[最大费用可行流 || 单纯形] BZOJ 3118 Orz the MST

首先很容易根据树边非树边的大小关系列出线性关系 然后对偶一下 可以用线性规划 也可以跑费用流 把对偶后的线性约束写出来 建图就不难看懂了 #include #include #include using namespace std; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2...
阅读(739) 评论(0)

[较复杂的数位DP] HDU 4507 吉哥系列故事——恨7不成妻

较复杂的数位DP 我们不止记录个数,还记录和,平方和进行转移  然后就是简单的数位DP了 #include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; typedef long long ll; inline char nc(){ static char ...
阅读(199) 评论(0)

[数位DP] HDU 3555 Bomb

数位DP详见:http://blog.csdn.net/u014609452/article/details/52598675 #include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; typedef long long ll; inline char nc(...
阅读(158) 评论(0)

[数位DP] HDU 2089 不要62

简单的数位DP 数位DP的简单思想 从低位到高位开始枚举 每次状态有两种 即 到当前位与上限n一模一样 和 到当前位已经小于n 那么就可以枚举当前位进行转移 因为 到当前位与上限n一模一样 只有一种状况 所以不特意储存 代码中dp数组都表示 到当前位已经小于n dp[2] 表示 已经出现62 dp[1] 表示 上一位是6 dp[0] 表示其他 记一个flag表示 n前几位是否出现...
阅读(101) 评论(0)

[几何] UR #16 B.破坏蛋糕

详见官方题解 #include #include #include #include #include #include #define dprintf(...) fprintf(stderr,__VA_ARGS__) using namespace std; typedef long long ll; typedef long double ld; const ld ...
阅读(185) 评论(0)

[矩阵快速幂 数学] UR #16 A.破坏发射台

其实那个不考虑对角是可以手推的 考虑对角只能dp了 详见官方题解以及百度文库:...
阅读(167) 评论(0)

[概率DP] Codeforces 453A Little Pony and Expected Maximum

比较简单的概率题 f(k)=(k/n)^m-f(k-1) #include #include #include using namespace std; int n,m; inline double Pow(double a,int b){ double ret=1; for (;b;b>>=1,a*=a) if (b&1) ret*...
阅读(142) 评论(0)

[五维偏序 分块 bitset] HihoCoder #1236 2015北京网络赛 J Scores

题目链接:http://hihocoder.com/problemset/problem/1236?sid=873407 求五维偏序,强制在线 b[i][j]表示第i维前j块的状态 #include #include #include #include #include #define dprintf(...) fprintf(stderr,__VA_ARGS__)...
阅读(345) 评论(0)

[无源汇上下界最小费用可行流 差分费用流] BZOJ 1061 [Noi2008]志愿者招募

摘自:几种网络流问题的关系和"志愿者招募"问题的新理解 只要在上下界可行环流上加上费用, 就可以很好的解决这个问题. 具体的见图方法如下: A[i]表示第i天需要的志愿者数目, (s[i], t[i], w[i])表示每种志愿者开始, 结束的时间和费用. 这样, edge(i, i + 1) 表示第i天的限制, 流量限制为[A[i], +inf], 费用0. 对于每种志愿者, e...
阅读(549) 评论(0)

[无源汇最大费用可行流 差分费用流] Codeforces 717G Bubble Cup 9 - Finals G. Underfail

类似志愿者招募的建图方法 用一个点表示差分 然后用流量表示出差分的和 然后在l,r+1之间连边 这是个无源汇最大费用可行流 我是这么做的 建个超级源汇 让每条正权的边流满 这些流通过超级源汇流 那么流量不平衡 所以再跑遍T-S的最小费用最大流 因为是最大流,所以源汇的流量都为零 最小费用,也就是反悔最少,费用最大 #include #include #in...
阅读(452) 评论(0)

[构造] Codeforces 717E Bubble Cup 9 - Finals E. Paint it really, really dark gray

这是一道递归构造的题 先构造完子树,然后可以通过走father来调整自己 因为1没有father 需要特判 走一个儿子来调整 #include #include #include using namespace std; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2){ p2=(p...
阅读(263) 评论(0)

[随机化 构造] Codeforces 717H Bubble Cup 9 - Finals H. Pokermon League challenge

随机化...不明觉厉 #include #include #include using namespace std; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) return...
阅读(213) 评论(0)

[矩阵快速幂加速DP] Codeforces 717D Bubble Cup 9 - Finals D. Dexterina’s Lab

fx 表示 异或和为x的概率 然后DP一下 #include #include #include using namespace std; const int N=150; struct Matrix{ int n; double a[N][N]; Matrix(int in=0,int f=0){ n=in; for (int i=0;...
阅读(448) 评论(1)
27条 共2页1 2 下一页 尾页
    个人资料
    • 访问:309226次
    • 积分:12399
    • 等级:
    • 排名:第1311名
    • 原创:969篇
    • 转载:3篇
    • 译文:0篇
    • 评论:54条
    最新评论