- 博客(8)
- 收藏
- 关注
原创 杭二中白马湖p1648邮局加强版
题目链接 #include<bits/stdc++.h> using namespace std; typedef long long LL; const int N = 1600 + 10; int s[N][N]; // 决策点 LL w[N][N], f[N][N]; LL S[N]; int a[N]; int n, m; // f[i][j] 表示前 i 个村庄建 ...
2018-05-12 22:35:58
499
原创 luogu3803【模板】多项式乘法(FFT)
题目链接 complex的解释 a[i].x , a[i].y 用 a b 来表示 a[i] 就是 a + bi 表示将 n 的单位负数根的 i 次幂代入多项式求出来的值 struct cp { double x, y; cp (double xx = 0, double yy = 0) { x = xx, y = yy; } }; 蝴蝶效应的解...
2018-04-19 22:01:33
376
原创 luogu2051[AHOI2009]中国象棋
题目链接 一个比较烦的分类讨论动态规划 注意事项: 每行每列最多两个 不能在一行的一个格子里放两个棋子(亲身经历) 把一个0变成1,把一个1变成2也是一种情况 #include<bits/stdc++.h> using namespace std; typedef long long LL; const LL MOD = 9999973; const LL N = 1...
2018-04-16 21:25:32
232
原创 luogu2577[ZJOI2005]午餐
题目链接 首先贪心,发现先把吃饭时间长的放在前面(证明略去) 如果吃饭时间相同,打饭时间少的放在前面 剩下部分一看就是一个背包,但直接开40000*40000爆空间和时间 考虑优化掉一维 用f[i][j] = k 表示前 i 个人在队伍 1 里正好花了 j 分钟的时候, 最早吃完的方法花了 k 分钟 这样就可以轻松过掉题目了 #include<bits/stdc++.h>...
2018-04-16 18:46:31
308
原创 luogu2704[NOI2001]炮兵阵地
题目链接 因为m <= 10,考虑状压DP 先dfs搜出所有可能状态 f[i][j][k] 表示上上行是 i, 上行是 j, 第 k 行取得的最大值 但如果直接开满数组,MLE 考虑滚动数组 此题只需保留2个状态,上上行,上行 所以用四层循环枚举——超时 考虑剪枝 放进上上行时先与题述条件对比 放入上行是与上上行和题述条件进行比较 。。。。。。 因为这个DP数组单调...
2018-04-15 22:22:29
247
原创 luogu3384【模板】树链剖分
题目链接 题目大意: 对一颗树进行四种操作 u 到 v 路径加 z u 到 v 路径之和 u 及 u 子树加 z u 及 u子树之和 考虑树链剖分套线段树(懒标记必须的) 每个点的重儿子是儿子当中子树大小最大的一个 进行两次dfs,分出链头及一些奇怪的东西 进行剖分时维护每个节点的size(子树大小和)值,dfs序,pre(与dfs序互为双射) 每一条链上的dfs序一定是连续的...
2018-04-15 20:03:03
238
原创 luogu3369【模板】普通平衡树(Treap/SBT)
题目链接 此题要求实现6种操作 插入x 删除x 查询x数的排名 查询排名为x的数 求x的前驱 求x的后继 既然题目已经明确指出了可以使用treap,那就写一个指针版不维护父节点的treap。 #include<bits/stdc++.h> #define N 100001 using namespace std; struct Treap { int val...
2018-04-15 19:13:36
303
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人