树状数组
文章平均质量分 53
最菜的acmer
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #423Div. 2 A-E题解
A题:水题看题目然后模拟一下就好了#include <bits/stdc++.h> using namespace std; int main() { int n,o,t; int tmp=0; int ans=0; scanf("%d%d%d",&n,&o,&t); while(n--) { int x; scanf(原创 2017-07-12 21:22:36 · 374 阅读 · 0 评论 -
ZOJ - 4008离线+树状数组)
题解:先求加1-n点后的路径数用树状数组保存即可,接着保存下q个查询安装l从小到达排序一下接着删除点从1删除到l-1然后求出结果sum[r]的前驱就是答案删点的时候只接修改领结的点对应的值即可那么更改后因为前面的点已经没用了所以我们只要更改后面的数值即可#include<iostream> #include<cstring> #include<algorithm>...原创 2018-03-13 23:25:49 · 401 阅读 · 0 评论 -
ZOJ - 3949(树形dp)
题解:我们先求出所有根到所有树上路径的总值,最后我们需要求的是加到哪条边上面的值后权值最小,假设根是第0层,u是第n层,求第i层会开始变少那么,数值应该是 n-i+1-i<0 =》 (n+1)/2 < i那么如果当n是奇数的话那么应该从(n+1)/2+1层开始他的子树的路径要都要减去2,4,6,8。。。2*m,,如果当n是偶数的话i应该从第(n+1)/2层开始他的子树路径减少1,3,...原创 2018-03-27 21:25:15 · 294 阅读 · 0 评论