题面

水水的换根裸题,不过以前还真没做过换根的题

换根的思想就是在DFS中利用树的信息更新出当前点为根时的信息,具体来说一般是考虑子树外和子树内两部分

每个点的答案$ans$就是$ans[fa]+n-2*siz[nde]$

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 const int N=1000005;
 6 int noww[2*N],goal[2*N];
 7 int p[N],dep[N],siz[N];
 8 int n,t1,t2,cnt,ans;
 9 long long sum,maxd;
10 void link(int f,int t)
11 {
12     noww[++cnt]=p[f];
13     goal[cnt]=t,p[f]=cnt;
14 }
15 void DFS(int nde,int fth,int dth)
16 {
17     dep[nde]=dth,siz[nde]=1;
18     for(int i=p[nde];i;i=noww[i])
19         if(goal[i]!=fth)
20         {
21             DFS(goal[i],nde,dth+1);
22             siz[nde]+=siz[goal[i]];
23         }
24 }
25 void ANS(int nde,int fth,long long las)
26 {
27     if(las>=maxd) ans=nde,maxd=las;
28     for(int i=p[nde];i;i=noww[i])
29         if(goal[i]!=fth)
30         {
31             las=las+n-2*siz[goal[i]];
32             ANS(goal[i],nde,las);
33             las=las-n+2*siz[goal[i]];
34         }
35 }
36 int main()
37 {
38     scanf("%d",&n);
39     for(int i=1;i<n;i++)
40     {
41         scanf("%d%d",&t1,&t2);
42         link(t1,t2),link(t2,t1);
43     }
44     DFS(1,0,0);
45     for(int i=1;i<=n;i++) sum+=dep[i];
46     ANS(1,0,sum); printf("%d",ans);
47     return 0;
48 }

View Code

转载于:https://www.cnblogs.com/ydnhaha/p/9755791.html

解题:POI 2008 Station相关推荐

  1. 解题:POI 2008 Plot purchase

    题面 原来看过然后没做,结果板板把这道题改了改考掉了,血亏=.= 首先看看有没有符合条件的点.如果没有开始寻找解,先把所有的大于$2*k$的点设为坏点,然后求最大子矩形,只要一个最大子矩形的权值和超过 ...

  2. [BZOJ 1124][POI 2008] 枪战 Maf

    1124: [POI2008]枪战Maf Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 659  Solved: 259 [Submit][Stat ...

  3. java 离线gis开发_Web GIS离线解决方案

    1.背景 在离线环境下(局域网中)的GIS系统中如何使用地图?这里的地图主要指的是地图底图,有了底图切片数据,我们就可以看到地图,在上面加上自己的业务数据图层,进行相关操作. 要在离线环境下看到GIS ...

  4. android+手机mac地址,Android 获取手机Mac地址,手机名称

    /** * 获取手机mac地址 * 错误返回12个0 */ public static String getMacAddress(Context context) { // 获取mac地址: Stri ...

  5. [zz][ZOJ Monthly]October 2008解题报告

    Connect4 Connect Four(Author: SONG, Yu[EZdestroyer]) 题目的背景就是Linux下的同名游戏,两个人在7*7的槽里轮流扔棋子,每次棋子都扔进某一列,棋 ...

  6. LeetCode 134.Gas Station 解题分析

    题目来源: https://leetcode.com/problems/gas-station/description/ 题目描述: There are N gas stations along a ...

  7. NOIP 2008 普及组初赛试题 解题报告、题解及选择题思路,高质量

    做题:https://ti.luogu.com.cn/problemset/1003 选择题 第 1 题 微型计算机中,控制器的基本功能是( A). A. 控制机器各个部件协调工作 B. 实现算术运算 ...

  8. [Leetcode] 774. Minimize Max Distance to Gas Station 解题报告

    题目: On a horizontal number line, we have gas stations at positions stations[0], stations[1], ..., st ...

  9. 解题:POI 2013 Triumphal arch

    题面 二分答案,问题就转化为了一个可行性问题,因为我们不知道国王会往哪里走,所以我们要在所有他可能走到的点建造,考虑用树形DP解决(这个DP还是比较好写的,你看我这个不会DP的人都能写出来=.=) 定 ...

最新文章

  1. 智能车大赛AI视觉组参考答案
  2. 程序员刚结婚3天,老婆疑似骗婚?聊天记录曝光,网友:拜金实锤
  3. 不同浏览器css引入外部字体的方式
  4. oracle中order by 2,关于oracle中ROWNUM和ORDER BY的问题(2)
  5. 正则表达式 Mather类的使用
  6. 如何让tableView保持顺畅
  7. 初试cocos2d-x坐标系
  8. iOS开发篇——OC之NSNumber数字对象讲解
  9. 环形数组求最大子数组之和
  10. Linux:Linux常用网络指令
  11. Ajax请求生成中文乱码问题
  12. gxworks2使用指令手册_编程软件GX-Works2公共篇操作手册三菱GX-Works2手册 - 广州凌控...
  13. x264码率控制介绍、配置及应用
  14. linux加静态路由命令,LINUX添加静态路由
  15. 2021iOS最新面试总结
  16. mac虚拟机搭建设置静态ip
  17. Unsafe code may only appear if compiling with /unsafe
  18. YAPI的安装和使用
  19. 专访铃盛(RingCentral)何必苍:以不断创新的MVP赋能未来混合办公
  20. 为什么程序员不那么爱说话

热门文章

  1. 职友集 进化者机器人_麦克风解决方案将发掘交互式机器人的无限潜力
  2. php获取微信图片访问权限,微信小程序访问图片出现403,图片防盗链的解决办法...
  3. Git使用出现git@github.com: Permission denied (publickey)
  4. SpringBoot集成WebSocket案例:服务端与客户端消息互通
  5. HashMap使用HashMap(int initialCapacity)初始化
  6. Android开发笔记(一百四十三)任务调度JobScheduler
  7. c语言 static变量和函数
  8. atoi的实现和 字符指针数组
  9. nodeJs 接收请求参数和发送请求参数
  10. 基于UPS效率进行准确的效用成本分析