原文链接https://www.cnblogs.com/zhouzhendong/p/HDU4858.html

题目传送门 - HDU4858

题意

  给定一个无向图 $n$ 。有 $m$ 条边。

  每一个点有一个权值。

  有 $Q$ 次操作,有两种类型:

  1.  给一个点的权值加上 $v$ 。

  2.  对于每条关于 $x$ 的无向边,累加另一端点的权值,并输出最终的累加和。(可能会有重边)

  $n\leq 100000, m\leq n+10$ ,  $Q$ 数据范围不详。

题解

  这题本来是个分块题。

  但是,由于 $m\leq n+10$ ,我们就有了一种复杂度正确的简易算法。

  我们先 dfs 跑出原图的一个生成树。于是剩余的边就最多 10 条了。

  我们对于每一个点维护一下除父亲外的权值和,以及单点权值和。

  询问的时候就是第一种信息和父亲的单点权值和加起来。

  修改的时候,首先修改一下自己的单点权值和,然后修改一下父亲的单点权值和,然后暴力修改非树边所指向的点的“除父亲外的权值和”,即可。

代码

#include <bits/stdc++.h>
using namespace std;
const int N=100025;
struct Gragh{static const int M=N*2;int cnt,y[M],nxt[M],fst[N];void clear(){cnt=1;memset(fst,0,sizeof fst);}void add(int a,int b){y[++cnt]=b,nxt[cnt]=fst[a],fst[a]=cnt;}
}g,g2;
int T,n,m,Q,fa[N],flag[N],vis[N],v[N],sontot[N];
void dfs(int x,int pre){fa[x]=pre;vis[x]=1;for (int i=g.fst[x];i;i=g.nxt[i])if (!vis[g.y[i]]){flag[i>>1]=1;dfs(g.y[i],x);}else if (!flag[i>>1]){flag[i>>1]=1;g2.add(x,g.y[i]);g2.add(g.y[i],x);}
}
int main(){scanf("%d",&T);while (T--){scanf("%d%d",&n,&m);g.clear();for (int i=1,a,b;i<=m;i++){scanf("%d%d",&a,&b);g.add(a,b);g.add(b,a);}memset(fa,0,sizeof fa);memset(flag,0,sizeof flag);memset(vis,0,sizeof vis);memset(sontot,0,sizeof sontot);memset(v,0,sizeof v);g2.clear();dfs(1,0);scanf("%d",&Q);while (Q--){int opt,x,y;scanf("%d",&opt);if (opt==0){scanf("%d%d",&x,&y);if (fa[x])sontot[fa[x]]+=y;v[x]+=y;for (int i=g2.fst[x];i;i=g2.nxt[i])sontot[g2.y[i]]+=y;}else {scanf("%d",&x);printf("%d\n",v[fa[x]]+sontot[x]);}}}return 0;
}

  

转载于:https://www.cnblogs.com/zhouzhendong/p/HDU4858.html

HDU4858 项目管理 其他相关推荐

  1. HDU-----(4858)项目管理(模拟)

    项目管理 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  2. linux 禅道服务器,Linux下如何搭建禅道项目管理软件

    第一步,下载禅道 禅道是基于PHP语言开发,所以运行禅道需要LNMP(Linux+Nginx+MySQL+PHP)或LAMP(Linux+Apache+MySQL+PHP)环境.还好禅道本身已经提供了 ...

  3. 变更控制管理流程图_干货丨项目管理流程及绘制规范要点

    1 什么是流程 流程是把一个或多个输入转换为对顾客有价值的输出的活动.简单地来说,流程其实就是"工作流转的过程",这些工作需要多个部门.多个岗位的参与和配合,这些部门.岗位之间会有 ...

  4. 项目管理中问题与对策探讨

    [摘要]以深圳市东深电子技术有限公司的项目管理现状为基础,剖析该公司在项目管理方面存在的弊端,并提出若干指导性建议. 一.存在问题 深圳市东深电子技术有限公司是一家以水行业计算机监控系统工程项目为主的 ...

  5. 项目管理和缺陷跟踪工具Redmine

    官网: http://www.redmine.org/ http://demo.redmine.org/ 下载: http://www.redmine.org/projects/redmine/wik ...

  6. 施工管理在计算机上的应用论文,【计算机专业毕业论文】关于计算机应用技术在工程项目管理中的应用...

    [计算机专业毕业论文]关于计算机应用技术在工程项目管理中的应用 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 [计算机专业毕业论文]关 ...

  7. 软件项目管理大作业_案例|P6软件在水电项目施工管理中的应用

    P6 广泛应用于国际大型工程项目中,利用先进的项目管理软件来进行项目管理显得尤为重要.今天这篇文章以美纳斯水电项目为例,从项目施工角度,介绍P6 项目管理软件进行项目施工技术管理,包括进度控制.技术文 ...

  8. 项目管理深入理解08--成本管理

    成本管理一章非常的重要,尤其是对于程序员来说,这方面非常的薄弱,但这部分知识无论是在项目管理中还是日常生活中都灰常重要,不然很难成为一个财务自由的程序员.此外,由于财务方面知识点比较多,特增加经济知识 ...

  9. 项目管理5大过程组,42个过程一句话讲解

    2019独角兽企业重金招聘Python工程师标准>>> 启动过程组:(1)制定项目章程:诞生项目,并为项目经理"正名": (2)识别干系人:搞清楚谁与项目相关: ...

最新文章

  1. FW: HTTP错误500显示具体的出错信息的方法
  2. 用宏定义实现函数值互换
  3. android 怎么初始化下拉框_第30讲:“二师兄”的成长历程之二,类属性的初始化...
  4. sgi 之vector
  5. Spring注解原理学习之@Size and @Pattern
  6. register_sysctl_table实现内核数据交互
  7. Android 系统(15)---Launcher启动过程
  8. vue2强制刷新,解决页面不会重新渲染的问题
  9. 华哥讲堂:解析智能电视语音控制功能
  10. win7c语言命令行编译,易语言命令行编译工具
  11. matlabR2020A mingw安装
  12. HDU 6080 度度熊保护村庄(计算几何+floyd)
  13. android开机加速器,安卓手机开机如何加速
  14. linux用ping命令测试网速,《iPhone》7用ping命令测试网速方法介绍
  15. 年金系数用计算机怎么算,年金系数是什么?怎么计算?
  16. MFC 108问题
  17. maven中实现代码单元测试覆盖率统计
  18. 企业生产管理集成的核心工具—MES管理系统
  19. 已搭建独立博客,请移步下面网址
  20. Python 基于tkinter和sqlite3的会员管理系统

热门文章

  1. 麦芒8能安装鸿蒙系统吗,首颗5G基带芯片麦芒8发布鸿蒙最新进展
  2. ajax传formdata类型的数据_JQuery.Ajax()的data参数类型
  3. linux安装.net core3.0,树莓派4安装net core3.0环境
  4. C语言程序设计蔺德军,C语言程序设计上机实验与习题解答(第2版)
  5. 基于Pytorch再次解析使用块的现代卷积神经网络(VGG)
  6. 【Web安全】XSS简介与XSS测试平台截取用户COOKIE的探索
  7. sqlserver2000 php5.4,PHP添加Mssql/sqlserver2000扩展,适用于Php5.2/Php5.3/Php5.4
  8. 条件限制select into_SQL全部知识点(夺回控制台掌控权,转义符,SELECT特定列,AND,OR,查询数值,比较运算)...
  9. python functools.reduce_Python-functools模块(reduce、partial、lru_cache)
  10. 网络推广专员浅析如何在日常网络推广过程中增加网站转化率?