搜索场 day1 A 求和
A 求和
时间限制: 1 Sec 空间限制: 256 MB
输入输出文件名:A.in,A.out
题目描述
给出一棵以1为根的有n个节点的树,树上每条边都有其边权。
求所有点对之间的路径上的边权和的总和。
输入格式:
第一行为n
接下来n-1行,每行三个整数,分别表示一条边的两端点编号和边权。(编号为1..n)
输出格式:
输出一个数字表示总和
输入样例
4
1 2 10
2 3 10
1 4 20
输出样例
130
样例解释
1->2:10 , 1->3:20 , 1->4:20 , 2->3:10 , 2->4:30 , 3->4:40 , 总和为130。
数据范围
对于30%的数据,1<=n<=300
对于80%的数据,1<=n<=3000
对于100%的数据,1<=n<=100000,边权为<=100的正整数。
#include<cstdio> #include<cstring> #define ll long long using namespace std; const int N=100010; struct node {int next,to,p; }e[N*2]; int first[N],book[N],size[N]; int cnt=0; ll sum=0; int n;void insert(int v,int u,int p) {e[++cnt].to=v;e[cnt].next=first[u];first[u]=cnt;e[cnt].p=p;e[++cnt].to=u;e[cnt].next=first[v];first[v]=cnt;e[cnt].p=p; }void dfs1(int x) {book[x]=1;size[x]=1;for(int i=first[x];i;i=e[i].next){if(book[e[i].to]==0){dfs1(e[i].to);size[x]+=size[e[i].to];}} }void dfs(int x) {book[x]=1;for(int i=first[x];i;i=e[i].next){if(book[e[i].to]==0){sum+=(ll)e[i].p*size[e[i].to]*(n-size[e[i].to]);dfs(e[i].to);}} }int main() {freopen("A.in","r",stdin);freopen("A.out","w",stdout);scanf("%d",&n);int v,u,p;for(int i=1;i<=n-1;i++){scanf("%d %d %d",&u,&v,&p);insert(u,v,p);}memset(book,0,sizeof(book));dfs1(1);memset(book,0,sizeof(book));dfs(1);printf("%lld\n",sum); }
View Code
谢谢师兄(czl)教导。
转载于:https://www.cnblogs.com/12fs/p/7349613.html
搜索场 day1 A 求和相关推荐
- 【万字干获】阿里妈妈搜索推荐广告预估模型2021思考与实践
省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 知识图谱在美团推荐场景中的应用实践 搜索场景下的智能实体推荐 机器学习在B站推荐系统中的应用实践 小红书推荐系统 ...
- 小程序碰上浏览器搜索入口!
据网友爆料,在12月28日,(也就是微信6.6.1版本发布当天)最新发布的安卓8.1版本QQ浏览器的搜索栏中,出现了一个专供微信小程序的垂直搜索,即小程序在移动端QQ浏览器场景获得了一个搜索形态的入口 ...
- 在Excel中怎样快速对数据进行求和?分享4种求和方法
在Excel表格当中,其实有很多求和方式,然而今天我们不聊那些五花八门用不上的,说说实际,就聊我们大家在职场当中可能会遇到的{求和方式},希望大家能够喜欢 1. SUM自动相加求和 这也是最基础了求和 ...
- SharePoint 2013 企业搜索架构示例
博客地址:http://blog.csdn.net/FoxDave 本文参考自微软官方的Chart,我们来看一下企业中对于不同规模SharePoint搜索的场的架构是什么样的. 对于搜索场的规模 ...
- DingTalk「开发者说」第6期 边聊边做场景群
视频地址:一键回看 目录 一.什么是"场景群" 二.群聊开放的核心能力介绍 三.从产品架构解读群聊会话开放 四.解决方案案例解读 五.场景群实践 六.Q&A 正文: 一.什 ...
- 《Linux命令行与shell脚本编程大全》(第三版)读书笔记
第一部分 Linux命令行 第三章.基本的bash shell命令 bash手册 man 命令 例子: man cat 空格翻页.回车下一行.左右键看右侧(左侧)内容.q退出 info info in ...
- linux命令行和shell脚本编程大全笔记
第1章 初识Linux shell 内存存储单元按组划分成很多块,这些块称作页面(page) Linux操作系统将运行中的程序称为进程.进程可以在前台运行,将输出显示在屏幕上,也 可以在 ...
- 深度学企业linux awk命令详解与应用(下篇)
开篇语: 我们在<一篇速学企业linux awk命令详解与应用(上篇)>中介绍了 awk 的基本用法,其实在awk 脚本程序中,还支持使用一些编程语言,比如变量.数组.分支结构(if-th ...
- shell脚本编程笔记(十二)—— gawk程序
一. 简介 虽然sed是非常方便自动修改文本文件的工具,但其也有自身的限制.通常你需要一个用来处理文件中的数据的更高级工具,它能提供一个类编程环境来修改和重新组织文件中的数据,这正是gawk能够做到的 ...
- linux的gawk命令
目录 1.awk 简介 2.awk 概述 3. 工作原理 4.gawk程序的可用选项 5.基础使用示例 5.1 使用数据字段变量: 5.2 指定分隔符 5.3 在程序脚本中使用多个命令 5.4 从文件 ...
最新文章
- U盘如何量产成USB-CDROM
- java获取数据库的列名,类型等信息
- vs2008中如何在项目属性中切换“图形形式”和“控制台形式”——即调出或消除黑窗口
- matlab 数据保存为txt excel mat
- OpenCV仿射变换Affine Transformations
- js 让浏览器全屏模式的方法launchFullscreen
- 机器学习之数据集划分——训练集测试集划分,划分函数,估计器的使用
- Python中print函数的使用
- FlashFXP设置文件传输速度
- 图神经网络入门:GCN论文+源码超级详细注释讲解!
- 大学计算机基础相关书籍,大学计算机基础
- c# FlexCell自动换行
- WIN10计算机不支持3D游戏怎么办,教您如何在win10系统中启用3D加速?
- vue error The code generator has deoptimised the styling exceeds the max of 100KB
- 阿里云部署nginx
- 共阳极数码管与共阴极数码管联合使用来循环显示数字00-99。
- 多个pdf如何快速合并成一个?
- 零基础学java(6)——面向对象的基本特征
- B站哔哩哔哩:11 月 22 日上午九时正起恢复在香港联交所买卖
- 金蝶实习(十一)——简单的二次开发
热门文章
- 云计算将逐渐成为支撑SaaS应用的基础
- 4.寻找两个正序数组的中位数
- HTML - 元素/标签和属性基础
- 在optenstack配置nova
- Linux重启nfs出现没有权限,Linux NFS搭建与错误提示解决
- 初始化请求例子_当一个http请求来临时,SpringMVC究竟偷偷帮你做了什么?
- 蓝桥杯2017年第八届C/C++省赛B组第一题-购物单
- Android viewpager + fragment实现fragment之间的切换
- 7-8 统计工龄 (20 分)
- Android:JNI与NDK(二)交叉编译与动态库,静态库