解题:POI 2008 Station
题面
水水的换根裸题,不过以前还真没做过换根的题
换根的思想就是在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相关推荐
- 解题:POI 2008 Plot purchase
题面 原来看过然后没做,结果板板把这道题改了改考掉了,血亏=.= 首先看看有没有符合条件的点.如果没有开始寻找解,先把所有的大于$2*k$的点设为坏点,然后求最大子矩形,只要一个最大子矩形的权值和超过 ...
- [BZOJ 1124][POI 2008] 枪战 Maf
1124: [POI2008]枪战Maf Time Limit: 10 Sec Memory Limit: 162 MB Submit: 659 Solved: 259 [Submit][Stat ...
- java 离线gis开发_Web GIS离线解决方案
1.背景 在离线环境下(局域网中)的GIS系统中如何使用地图?这里的地图主要指的是地图底图,有了底图切片数据,我们就可以看到地图,在上面加上自己的业务数据图层,进行相关操作. 要在离线环境下看到GIS ...
- android+手机mac地址,Android 获取手机Mac地址,手机名称
/** * 获取手机mac地址 * 错误返回12个0 */ public static String getMacAddress(Context context) { // 获取mac地址: Stri ...
- [zz][ZOJ Monthly]October 2008解题报告
Connect4 Connect Four(Author: SONG, Yu[EZdestroyer]) 题目的背景就是Linux下的同名游戏,两个人在7*7的槽里轮流扔棋子,每次棋子都扔进某一列,棋 ...
- LeetCode 134.Gas Station 解题分析
题目来源: https://leetcode.com/problems/gas-station/description/ 题目描述: There are N gas stations along a ...
- NOIP 2008 普及组初赛试题 解题报告、题解及选择题思路,高质量
做题:https://ti.luogu.com.cn/problemset/1003 选择题 第 1 题 微型计算机中,控制器的基本功能是( A). A. 控制机器各个部件协调工作 B. 实现算术运算 ...
- [Leetcode] 774. Minimize Max Distance to Gas Station 解题报告
题目: On a horizontal number line, we have gas stations at positions stations[0], stations[1], ..., st ...
- 解题:POI 2013 Triumphal arch
题面 二分答案,问题就转化为了一个可行性问题,因为我们不知道国王会往哪里走,所以我们要在所有他可能走到的点建造,考虑用树形DP解决(这个DP还是比较好写的,你看我这个不会DP的人都能写出来=.=) 定 ...
最新文章
- 智能车大赛AI视觉组参考答案
- 程序员刚结婚3天,老婆疑似骗婚?聊天记录曝光,网友:拜金实锤
- 不同浏览器css引入外部字体的方式
- oracle中order by 2,关于oracle中ROWNUM和ORDER BY的问题(2)
- 正则表达式 Mather类的使用
- 如何让tableView保持顺畅
- 初试cocos2d-x坐标系
- iOS开发篇——OC之NSNumber数字对象讲解
- 环形数组求最大子数组之和
- Linux:Linux常用网络指令
- Ajax请求生成中文乱码问题
- gxworks2使用指令手册_编程软件GX-Works2公共篇操作手册三菱GX-Works2手册 - 广州凌控...
- x264码率控制介绍、配置及应用
- linux加静态路由命令,LINUX添加静态路由
- 2021iOS最新面试总结
- mac虚拟机搭建设置静态ip
- Unsafe code may only appear if compiling with /unsafe
- YAPI的安装和使用
- 专访铃盛(RingCentral)何必苍:以不断创新的MVP赋能未来混合办公
- 为什么程序员不那么爱说话
热门文章
- 职友集 进化者机器人_麦克风解决方案将发掘交互式机器人的无限潜力
- php获取微信图片访问权限,微信小程序访问图片出现403,图片防盗链的解决办法...
- Git使用出现git@github.com: Permission denied (publickey)
- SpringBoot集成WebSocket案例:服务端与客户端消息互通
- HashMap使用HashMap(int initialCapacity)初始化
- Android开发笔记(一百四十三)任务调度JobScheduler
- c语言 static变量和函数
- atoi的实现和 字符指针数组
- nodeJs 接收请求参数和发送请求参数
- 基于UPS效率进行准确的效用成本分析