NOIP之旅:NOIP2014篇
A. 联合权值
标签:思维题,图论
该题浑身上下都是坑 果然还是我太弱了。
首先看题看的一脸懵逼,然后根据数据(n个点 n-1条边)我们知道其实这就是棵树嘛qwq
任务目标:求出最大联合权值,求所有联合权值之和。
主流题解有两条路:思维+技巧,树形DP
思维+技巧:首先构建基本模型。以一个点为中心,与其直接相邻的点互相为可联合的点,因为显然它们与该点距离为1,根据树的性质它们彼此之间的路径必定经过该点,即相互距离为2。 那么枚举每个点的每条边进行结算。对于任务目标2,我们可以看样例得出某些.... ...目标为a*b+b*c+......b*a+c*b. 经过简单的思考,继续套用上文模型,定义s[o]为指定点邻点的权值之和,定义ABCDEFG等一干字母为邻点,那么对于该点答案为 val[A]*(s[o]-val[A]) + ...
顺便吐槽某些题解:这是乘法分配律,不是什么加法结合律
1 #include<cstdio> 2 #include<iostream> 3 #define maxn 500000 4 using namespace std; 5 6 struct edge{ 7 long long from,v; 8 }e[maxn]; 9 10 long long tot,first[maxn]; 11 void insert(long long u,long long v){ 12 tot++; 13 e[tot].from = first[u]; 14 e[tot].v = v; 15 first[u] = tot; 16 } 17 18 long long n,u,v,s[maxn],val[maxn],cnt1,cnt2,maxx[maxn],sum,ans; 19 int main(){ 20 scanf("%lld",&n); 21 for(long long i = 1;i < n;i++){ 22 scanf("%lld%lld",&u,&v); 23 insert(u,v); 24 insert(v,u); 25 } 26 27 for(long long i = 1;i <= n;i++){ 28 scanf("%lld",&val[i]); 29 } 30 31 for(long long i = 1;i <= n;i++){ 32 cnt1 = cnt2 = 0; 33 for(long long j = first[i];j;j = e[j].from){ 34 v = e[j].v; 35 s[i] += val[v]; 36 // printf("$ %d",val[v]); 37 if(val[v] >= cnt1){ 38 cnt2 = cnt1,cnt1 = val[v]; 39 // printf("##%d %d",cnt1,cnt2); 40 }else if(val[v] > cnt2) cnt2 = val[v]; 41 } 42 // cout << endl; 43 maxx[i] = cnt1*cnt2; 44 } 45 46 for(long long i = 1;i <= n;i++){ 47 ans = max(maxx[i],ans); 48 for(long long j = first[i];j;j = e[j].from){ 49 sum = (sum+(s[i]-val[e[j].v])*val[e[j].v]); sum %= 10007; 50 } 51 52 } 53 54 printf("%lld %lld\n",ans,sum); 55 56 // for(int i = 1;i <= n;i++) printf("%d ",maxx[i]); 57 58 return 0; 59 }
易证Leo_CT相当菜= =
转载于:https://www.cnblogs.com/Chorolop/p/7376553.html
NOIP之旅:NOIP2014篇相关推荐
- React Native填坑之旅--动画篇
React Native填坑之旅--Button篇 React Native填坑之旅--动画 React Native填坑之旅--HTTP请求篇 动画是提高用户体验不可缺少的一个元素.恰如其分的动画可 ...
- 第一学期ACM之旅总结篇
是我大一第一学期ACM之旅总结篇鸭,纪念逝去的青春: 自加入ACM集训队以来已有三个月之久,虽然一开始什么都不懂,但对ACM充满期待与向往.入队以后,通过和队员们一起学习以及各个学长的指导下,我慢慢地 ...
- Linux之旅----硬件篇
linux之旅----硬件篇(DIY) 记得第一次接触电脑应该是小学三年级,那时候的它对我来说只是一个游戏机的概念:极品飞车.红色警戒.CS.热血传奇.......陪我度过了小学懵懂的时光:泡泡堂.梦 ...
- CTF之旅WEB篇(3)--ezunser PHP反序列化
一.审题 对方朝你扔过来一串代码(当然这次又是蹭的题只说过程和思路): <?php highlight_file(__FILE__); class A{public $name;public $ ...
- ABAP项目砖家之旅-基础篇
ABAP项目砖家之旅-基础篇 前言 一.ABAP简介 二.ABAP开发工具 1.SAPgui 2.eclipse和HANA studio 三.相关搬砖经验 1.必须还是熟悉语法 2.复制粘贴写注释 3 ...
- ESP8266开发之旅 网络篇⑭ web配网
文章目录 1. 前言 2. Web配网(AP配网) 2.1 自定义AP配网 2.2 WiFiManager 3. 总结 授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大 ...
- ESP8266开发之旅 应用篇⑭ 局域网应用 ——炫酷RGB彩灯(WebSocket实现)
文章目录 1.前言 2.技术原理 3.ESP8266 源码 4. APP 授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成 ...
- ESP8266开发之旅 应用篇⑧Arduino版本 WiFi杀手
文章目录 1. 前言 授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... 共同学习成长QQ群 62 ...
- python 同花顺thstrader_Python 踩坑之旅进程篇其三pgid是个什么鬼 (子进程\子孙进程无法kill 退出的解法)...
代码示例支持 平台: Centos 6.3 Python: 2.7.14 1.1 踩坑案例 pid, ppid是大家比较常见的术语, 代表进程号,父进程号. 但pgid是个什么鬼? 了解pgid之前, ...
- 源码系列第1弹 | 带你快速攻略Kafka源码之旅入门篇
大家过年好,我是 华仔, 又跟大家见面了. 从今天开始我将为大家奉上 Kafka 源码剖析系列文章,正式开启 「Kafka的源码之旅」,跟我一起来掌握 Kafka 源码核心架构设计思想吧. 今天这篇我 ...
最新文章
- mysql字节对齐_结构体字节对齐-位域及其对齐
- php 跨域名存储cookie,实现跨域名Cookie
- 使用ping命令检查路由之解惑
- 前端又要失失失失失失失失失业了!
- 【Elasticsearch】es Timelion是Kibana中时间序列的可视化工具
- 吊打 IE、Firefox,谷歌 Chrome 十年封神记
- iOS底层探索之Runtime(四): 动态方法解析
- 二十三种设计模式[4] - 原型模式(Prototype Pattern)
- Qt程序运行时报错C:\user\administrator\SogouInput\Components\Error程序异常终止
- 羊毛之家,青龙脚本,几乎全部可用
- ANSYS CFD网格划分笔记3
- 痛心,京东程序员删库跑路获刑!
- Ncurses学习经历(九)屏幕操作
- 计算机保存文件快捷键,保存快捷键是什么,保存文档的快捷键
- PMP项目管理如何通过改革处理掉核心技术成果的潜在流失风险?
- 2020-01-04
- 类型多样的游戏特效网页特效素材,速来收藏
- abp zero mysql_ABP从入门到精通(2):aspnet-zero-core 使用MySql数据库
- Axure 9.0.0.3687
- 采用analysis-dynamic-synonym插件,动态文件的方式同步同义词