博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
男神的树
阅读量:6246 次
发布时间:2019-06-22

本文共 933 字,大约阅读时间需要 3 分钟。

男神的树

题目链接:

DFS

早上才写了一题...回来发现除了这题外其他都好简单= =

这题用vector存孩子会爆空间,所以想到用father[N]存父节点,lazy[N]数组存修改值(和线段树的lazy用法一样),vis[N]标记是否被dfs,再用dfs向上搞

//其实数据比较弱1e6就可以过,lazy没用LL好像也没问题,后来改了发1e6的,没改名次(╯‵□′)╯︵┻━┻耗时更长了什么鬼...

//这样做内存消耗125M,差不多要挂了= =

代码如下:

1 #include
2 #include
3 #include
4 #define N (int)(1e7+5) 5 using namespace std; 6 typedef long long LL; 7 int father[N],value[N],lazy[N]; 8 bool vis[N]; 9 int n,u,v;10 LL sum;11 LL dfs(int index){12 if(vis[index])return 0;13 vis[index]=1;14 if(father[index]==0){15 lazy[index]-=value[index];16 return abs(lazy[index]);17 }18 LL s=dfs(father[index]);19 value[index]+=lazy[father[index]];20 lazy[index]+=(lazy[father[index]]-value[index]);21 s+=abs(value[index]);22 return s;23 }24 int main(void){25 scanf("%d",&n);26 for(int i=0;i

 

转载于:https://www.cnblogs.com/barrier/p/5799730.html

你可能感兴趣的文章
我的友情链接
查看>>
cisco交换机IP/MAC***防范
查看>>
8、Python —— 输入输出
查看>>
我的友情链接
查看>>
[转]Shell 统计PV, UV ,独立IP
查看>>
Flash网页甘特图控件
查看>>
yii2 csrf验证以及token管理
查看>>
一步一步理解Java企业级应用的可扩展性
查看>>
存储非结构化数据之利器-minio
查看>>
苹果个人开发者账号申请
查看>>
SSH双机互信及错误解决大全
查看>>
adb命令详解
查看>>
php网页如何运作
查看>>
学艺不精 - 记一次性能问题排查
查看>>
Provisioning Services 7.6 入门到精通系列之五:PVS控制台安装
查看>>
awk工具
查看>>
设计模式-代理模式(Proxy)
查看>>
Windows Sharepoint services 3.0部署体验
查看>>
[分享] Mac 键盘和Pc键盘对照表
查看>>
windows下批量杀死进程
查看>>