关闭

[置顶] 模板和学习笔记

----------------------------------- 点分治 一般步骤: 1.找到树的重心(避免当树退化成链时复杂度升高) 2.从重心出发分治统计路径 分治过程: 统计当前节点子树中的符合条件的路径数加到ans中 标记当前点避免重复 减去当前节点子树节点中的符合条件的路径数(这样剩下的就是经过当前节点的路径数,不会重复了) 在当前节点的子树中分别找到重心...
阅读(80) 评论(0)

[置顶] 日记<持续更新>

4.3 莫名想开一个日记,有时间就记一些不大不小的事,比如每天学了什么或者路遇哪位神犇 最主要的目的是要监督一下自己的学习进度 就酱...
阅读(423) 评论(4)

BZOJ 3629: [JLOI2014]聪明的燕姿

解题报告 题目范围应该是2*10e9,总之我数组开200是爆了一发TAT,还有数据组数什么的其实并没有输入…又贡献了一发WA...
阅读(41) 评论(0)

Codeforces 725D

把所有的队伍分成两种,一种是气球数多于自己的(当前排名比自己高的),一种是气球数不大于自己的 首先求出初始排名,然后肯定是要每次把气球给当前排名高于自己队的队伍(助人飞升),显然可以用堆维护,每次选出(t-w+1)最小的队伍 然后自己队伍的气球会减少,刷新自己的排名刷新答案并且把气球数多于自己队伍的队伍放入堆中#include #include #inclu...
阅读(21) 评论(0)

BZOJ 2006: [NOI2010]超级钢琴

Orz zzk 最直接的想法是找出所有不同的长度在[L,R]的子段然后选最大的k个加到答案中 但是太暴力没前途啊zzk教会我: 首先构造前缀和数组pre 定义一个三元组MAX(i,L,R)表示以i为右端点且左端点在[L,R]之间的使pre[i]-pre[t-1]最大的值 (等价于[L,R]中使pre[t-1]最小的值) 其中(L<=t<=R) 显然ans就是k个最大的这样的三元组的...
阅读(33) 评论(0)

51Nod 1241

第一眼想法是 ans=min(n-最长下降子序列,n-最长上升子序列) 然后发现找到的子序列相邻两位必须是相差 1 的 然后搞一下就好了(没考虑下降的貌似还是过了)#include #include using namespace std;int n,x,ans; int dp[50005];int main() { scanf("%d",&n);...
阅读(22) 评论(0)

BZOJ 3670: [Noi2014]动物园&&51nod 1277 字符串中的最大值

听说kmp的next数组可以用来建树,而且很有用...
阅读(62) 评论(0)

BZOJ 1565: [NOI2009]植物大战僵尸

拓扑+最小割 想画图解释的。。。可是画图不太好用啊 不如一起来膜神犇吧! #include #include #include #include #include #define wz(x,y) ((x-1)*m+y) #define INF 2e9 #define maxn 610 using namespace std; int read() { int a=0,f=1;ch...
阅读(267) 评论(0)

BZOJ 1477: 青蛙的约会

扩展欧几里得 我好菜啊恶补一波 列出方程(t*n+x)-(t*m+y)=kL (n-m)*t-kL=y-x 注意一下正负 #include #define LL long long using namespace std; LL x,y,m,n,l,a,b,c; LL gcd(LL a,LL b){return b==0?a:gcd(b,a%b);} LL exgcd(LL...
阅读(118) 评论(1)

BZOJ 2120: 数颜色&&2453: 维护队列【双倍经验】

分块大法好啊 (不会主席树也不会莫队我好菜啊) 用前驱数组记录位置i之前的第一个与它颜色相同的位置pre[i] 因为修改次数少,可以直接暴力搞 询问的话显然如果pre[i]不在[x,y]中就是新的颜色(++ans),所以对于整块可以以pre为关键字排序然后二分找即可 (两道题数据范围貌似都一样啊) #include #include #include #define mid (...
阅读(67) 评论(0)

BZOJ 3343: 教主的魔法

学习分块,先过一道题,感觉直接码代码可以更好理解思想 这题是最基本的操作 每次修改:如果两头在同一个块里直接暴力重构 不在同一个块里的话对中间完整的块的打标记 两头若有多余暴力重构 每次询问:如果两头在同一个块里直接暴力找一遍 不在同一块里对中间完整的块二分算答案 两头多出来的部分暴力找 #include #include #include #define N 100001...
阅读(56) 评论(0)

BZOJ 1143: [CTSC2008]祭祀river

建二分图,求最大独立集(点数减去最大匹配) 题目的模型好像是叫最长反链,对二分图各种不熟啊,补补补 #include #define N 105 using namespace std; int read() { int a=0,f=1;char c=getchar(); while(c'9'){if(c=='-')f=-1;c=getchar();} wh...
阅读(78) 评论(0)

BZOJ 1113: [Poi2008]海报PLA

水题 记得当初考试的时候是用堆水过去的... 正解单调栈 #include using namespace std; int n,top,ans; int s[250001]; int main() { scanf("%d",&n); for(int i=1;i<=n;++i) { int x,y; scanf("%d %d",...
阅读(47) 评论(0)

BZOJ 2502: 清理雪道

有源汇有上下界最小流 #include #include #include #include #include #define INF 2e9 #define N 110 #define M 12500 using namespace std; int read() { int a=0,f=1;char c=getchar(); while(c'9'){if(c=='-')f...
阅读(42) 评论(0)

BZOJ 4033: [HAOI2015]树上染色

树形dp f[i][j]表示以i为根时它的子树中有j个点为黑点的最大收益,那么将根从x变为y时,产生的贡献就是 (x及其子树中的黑点数*y及其子树中的黑点数+x及其子树中的白点数*y及其子树中的白点数)*边权v 记得开longlong #include #include #include #define LL long long #define N 2005 using namesp...
阅读(146) 评论(0)

偷偷水题应该没人看见吧

BZOJ 4035: [HAOI2015]数组游戏 听说是博弈论神题...
阅读(74) 评论(0)
51条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:5675次
    • 积分:558
    • 等级:
    • 排名:千里之外
    • 原创:52篇
    • 转载:0篇
    • 译文:0篇
    • 评论:9条
    友(p)情(y)链接
    最新评论