BZOJ 4712: 洪水 挖坑待补
Code:
#include<bits/stdc++.h>
#define setIO(s) freopen(s".in","r",stdin)
#define maxn 200001
#define inf 1000000000
#define lson (now<<1)
#define rson ((now<<1)|1)
using namespace std;
char ask[10];
int hd[maxn],to[maxn<<1],nex[maxn<<1],V[maxn],DP[maxn];
int siz[maxn],hson[maxn],top[maxn],ln[maxn],dfn[maxn],fa[maxn],bot[maxn];
int edges,n,Q,tim;
void add(int u,int v)
{
nex[++edges] = hd[u], hd[u] = edges,to[edges] = v;
}
void dfs1(int u,int ff)
{
siz[u]=1,fa[u]=ff;
for(int i=hd[u];i;i=nex[i])
{
int v=to[i];
if(v==ff) continue;
dfs1(v,u);
siz[u]+=siz[v];
if(siz[v]>siz[hson[u]]) hson[u]=v;
}
}
void dfs2(int u,int tp)
{
ln[++tim]=u,dfn[u]=tim,top[u]=tp;
if(hson[u])
dfs2(hson[u],tp),bot[u]=bot[hson[u]];
else
bot[u]=u;
for(int i=hd[u];i;i=nex[i])
{
int v=to[i];
if(v==fa[u]||v==hson[u]) continue;
dfs2(v,v);
}
}
void dfs(int u)
{
int sum=0;
for(int i=hd[u];i;i=nex[i])
{
int v=to[i];
if(v==fa[u]||v==hson[u]) continue;
dfs(v);
sum+=DP[v];
}
DP[u]=min(V[u],sum);
} int sumv[maxn],lmin[maxn],val[maxn];
void pushup(int now)
{
sumv[now]=sumv[lson]+sumv[rson];
lmin[now]=min(lmin[lson],sumv[lson]+lmin0[rson]);
}
void build(int l,int r,int now)
{
if(l>r) return;
if(l==r)
{
int u=ln[l],sum=0;
for(int i=hd[u];i;i=nex[i])
{
int v=to[i];
if(v==fa[u]||v==hson[u]) continue;
sum+=DP[v];
}
if(sum==0)
val[u]=V[u];
else
val[u]=min(V[u],sum);
pushup(now);
return;
}
int mid=(l+r)>>1;
build(l,mid,lson);
build(mid+1,r,rson);
pushup(now);
}
int query(int l,int r,int now,int L,int R)
{
if(l>=L&&r<=R)
} int main()
{
setIO("input");
scanf("%d",&n);
for(int i=1;i<=n;++i) scanf("%d",&V[i]);
for(int i=1,u,v;i<n;++i)
{
scanf("%d%d",&u,&v),add(u,v),add(v,u);
} dfs1(1,0),dfs2(1,1),dfs(1),DP[0]=inf, build(1,n,1); scanf("%d",&Q);
while(Q--)
{
scanf("%s",ask);
if(ask[0]=='C')
{ }
if(ask[0]=='Q')
{ }
}
return 0;
}
BZOJ 4712: 洪水 挖坑待补的更多相关文章
- bzoj 4712: 洪水
[权限题][https://www.lydsy.com/JudgeOnline/status.php?problem_id=4712&jresult=4] 这道动态\(dp\)终于不是独立集/ ...
- bzoj 4712 洪水——动态DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4712 因为作为动态DP练习而找到,所以就用动态DP做了,也没管那种二分的方法. 感觉理解似乎 ...
- bzoj 4712 洪水 —— 动态DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4712 设 f[x] = min(∑f[u] , a[x]),ls = ∑f[lson] 矩阵 ...
- BZOJ 4712 洪水 (线段树+树剖动态维护DP)
题目大意:略 题目传送门 数据结构好题,但据说直接上动态DP会容易处理不少,然而蒟蒻不会.一氧化碳大爷说还有一个$log$的做法,然而我只会$log^{2}$的.. 考虑静态时如何处理,设$f[x]$ ...
- BZOJ 4712 洪水 动态dp(LCT+矩阵乘法)
把之前写的版本改了一下,这个版本的更好理解一些. 特地在一个链的最底端特判了一下. code: #include <bits/stdc++.h> #define N 200005 #def ...
- 4712: 洪水 基于链分治的动态DP
国际惯例的题面:看起来很神的样子......如果我说这是动态DP的板子题你敢信?基于链分治的动态DP?说人话,就是树链剖分线段树维护DP.既然是DP,那就先得有转移方程.我们令f[i]表示让i子树中的 ...
- 【总结】 BZOJ前100题总结
前言 最近发现自己trl,所以要多做题目但是Tham布置的题目一道都不会,只能来写BZOJ HA(蛤)OI 1041 复数可以分解成两个点,所以直接把\(R^2\)质因数分解一下就可以了,注意计算每一 ...
- 【BZOJ2013】【JSOI2008】球形空间产生器
看chty代码 原题: BZOJ挂了--等好了补上题面 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以最快的速度确定这 ...
- 【牛客OI赛制测试赛3】 毒瘤xor
牛客OI赛制测试赛3 毒瘤xor 传送门 题面,水表者自重 Solution 前缀和简单题(挖坑待补) 代码实现 #include<stdio.h> #define int long lo ...
随机推荐
- Java web如何定位工程路径
一 项目路径的获得 System.getProperty("user.dir"); 可以获得当前用户的工作目录,即在哪个地方启动的java程序,返回就是当前目录 二 web项目根目 ...
- 相克军_Oracle体系_随堂笔记 PPT
http://www.cnblogs.com/jyzhao/category/581259.html http://download.csdn.net/detail/yzj149286454/8960 ...
- [转]十五天精通WCF——第十一天 如何对wcf进行全程监控
说点题外话,我们在玩asp.net的时候,都知道有一个叼毛玩意叫做“生命周期”,我们可以用httpmodule在先于页面的page_load中 做一些拦截,这样做的好处有很多,比如记录日志,参数过滤, ...
- IntelliJ IDEA 16 EAP新特性一览
IntelliJ IDEA 16 EAP新特性一览 作者:chszs,未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs IntelliJ I ...
- IntelliJ IDEA 14注冊码
User:xring Key:21423-V4P36-U7W8K-8CYUK-93HXA-MKGZ5 User:arix Key:52998-LJT74-J7YEX-UPVT3-Q5GUF-5G4B5 ...
- android获取当前软件版本号号和版本号名称
<span style="font-size:18px;">/** * 获取本地软件版本号 */ public static int getLocalVersion(C ...
- 加密学教程(Cryptography Tuturials)文件夹
加密学教程(Cryptography Tuturials) 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致&quo ...
- js的内建arguments数组
调用函数时,只需在函数名后加一对用于传递参数的括号即可.var result = sum(1,2) 如果调用参数(a,b)的时候没有给值,则值默认为undefined.即使传递参数过多,多余的部分也会 ...
- oc29--property修饰符
// // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject /* 如果给一个属性同时提供了g ...
- RTP协议分析和详解
一.RTP协议分析 第1章. RTP概述 1.1. RTP是什么 RTP全名是Real-time Transport Protocol(实时传输协议).它是IETF提出的一个标准,对应的RF ...