关闭

[置顶] 模板和学习笔记

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

[置顶]

BZOJ 4035: [HAOI2015]数组游戏 听说是博弈论神题...
阅读(48) 评论(0)

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

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

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...
阅读(202) 评论(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...
阅读(24) 评论(1)

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

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

BZOJ 3343: 教主的魔法

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

BZOJ 1131: [POI2008]Sta

树形dp,水 (要是难的话我就做不来了,折腾了好久还是换了一种转移方式) #include #include #include #define N 1001005 #define LL long long using namespace std; int read() { int a=0,f=1;char c=getchar(); while(c'9'){if(c=...
阅读(31) 评论(0)

BZOJ 3876: [Ahoi2014]支线剧情

解题报告 #include #include #include #include #define N 305 #define M N*N #define INF 2e8 using namespace std; int read() { int a=0,f=1;char c=getchar(); while(c'9'){if(c=='-')f=-1;c=getchar();}...
阅读(31) 评论(0)

BZOJ 1356: [Baltic2009]Rectangle

没什么神奇的几何题 只要知道 一个矩阵四点共圆 + 两条对角线中点坐标相同 就好了 n2枚举所有可能被构成的对角线 然后从对角线里面挑就好了,但是再n2枚举对角线会爆(别像我一样做题忘记看数据范围) 尝试在同一个圆上来枚举(排序后可以做到),应该。不会炸吧。反正我a掉了(被卡精度了好气哦) #include #include #include #define RG register...
阅读(32) 评论(0)

BZOJ 2521: [Shoi2010]最小生成树&&2229: [Zjoi2011]最小割

相当于重点练了一下最小割的知识 ------------------------------------------------ 2229: [Zjoi2011]最小割 首先有个结论是这些点的最小割最多有n-1个(并不会证明) 然后就可以分治+最小割解决了 分治过程运用递归,对于每一层选择头(s)尾(t)跑最大流得出最小割,然后根据割集分出S集和T集继续分治即可 #incl...
阅读(36) 评论(0)

BZOJ 1003: [ZJOI2006]物流运输

刷题 #include #include using namespace std; int n,m,k,e,v[21],f[101],cost[101][101],dis[21][21]; bool flag[21],time[21][101]; void work() { memset(v,0,sizeof(v)); flag[1]=1; v[1]=0; ...
阅读(36) 评论(0)
46条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:3757次
    • 积分:500
    • 等级:
    • 排名:千里之外
    • 原创:46篇
    • 转载:0篇
    • 译文:0篇
    • 评论:9条
    友(p)情(y)链接
    最新评论