cf1179D

链接

cf

思路

csdn

很玄学,正解是斜率优化dp,但被一个奇妙的贪心过了。

代码

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int _=5e5+7;
int n,siz[_],S,id;
ll f[_],ans;
vector<int> G[_];
void dfs1(int u,int fa) {
siz[u]=1;
for(auto v:G[u]) {
if(v==fa) continue;
dfs1(v,u),siz[u]+=siz[v];
}
}
void dfs2(int u,int fa) {
for(auto v:G[u]) {
if(v==fa) continue;
f[v]=f[u]+1LL*(siz[u]-siz[v])*siz[v];
dfs2(v,u);
}
if(f[u]>f[id]) id=u;
}
int main() {
scanf("%d",&n);
for(int i=1,u,v;i<n;++i) {
scanf("%d%d",&u,&v);
G[u].push_back(v),G[v].push_back(u);
}
S=1;
f[1]=0,dfs1(S,0),dfs2(S,0);
memset(siz,0,sizeof(siz));
memset(f,0,sizeof(f));
S=id;
f[1]=0,dfs1(S,0),dfs2(S,0);
ans=1LL*n*(n-1)/2+f[id];
cout<<ans<<"\n";
return 0;
}

cf1179D的更多相关文章

  1. CF1179D Fedor Runs for President [DP,斜率优化]

    Codeforces 思路 考虑把连的那两个点中间的链提出来,那么就会变成一条链,链上的每个点挂着一棵子树的形式. 设那些子树的大小为\(S_1,S2,\cdots\),那么新加的简单路径个数就是 \ ...

  2. Codeforces Round #569 题解

    Codeforces Round #569 题解 CF1179A Valeriy and Deque 有一个双端队列,每次取队首两个值,将较小值移动到队尾,较大值位置不变.多组询问求第\(m\)次操作 ...

  3. 在$CF$水题の记录

    CF1158C CF1163E update after CF1173 很好,我!expert!掉rating了!! 成为pupil指日可待== 下次要记得合理安排时间== ps.一道题都没写的\(a ...

随机推荐

  1. laravel框架中Job和事件event的解析

    本篇文章给大家带来的内容是关于laravel框架中Job和事件event的解析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在做项目的时候,一直对Job和Event有个疑惑.感觉两 ...

  2. Music模块

    micro:bit中,MicroPython提供一个Music模块,提供播放音乐的方法,但值得注意的是,控制板上并没有蜂鸣器,所以要外接蜂鸣器,才能听到效果 ,一般接到pin0端口,和gnd地,rob ...

  3. Flask高级

    关于Flask启动,和请求处理 #关于后端服务的启动,无非就是启动实现了WSGI协议的socket #关于flask启动的无非就是下面两段代码 #加载配置,创建Flask对象 app = Flask( ...

  4. Prometheus 编写告警规则案例

    Prometheus 编写告警规则案例 注:确保alertmanager配置完毕! 1.创建编辑文件:vim /usr/local/prometheus/rules/node.yml # groups ...

  5. .net Core 学习笔记(增加Nlog日志)

    https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2  (日志下载) https://github.com ...

  6. 2019-11-29-C#-直接创建多个类和使用反射创建类的性能

    原文:2019-11-29-C#-直接创建多个类和使用反射创建类的性能 title author date CreateTime categories C# 直接创建多个类和使用反射创建类的性能 li ...

  7. BAT: Windows批处理更改当前工作路径

    最近项目上需要获取文件夹下所有文件信息,因为文件夹是在server上,所以想用批处理bat来获取该路径下所有文件信息,然后通过任务计划管理去每天自动运行bat去更新文件信息内容. 获取文件夹下所有文件 ...

  8. 微信页面script标签添加crossorigin=“anonymous”导致页面加载失败

    公司一个微信企业号项目,突然出现页面数据加载失败,页面报错信息如下 意思是前端向服务端发送跨域资源请求访问这个js文件,但是服务端并不同意,所以服务端拒绝访问这个地址. 后来发现将crossorigi ...

  9. python 学习之 基础篇三 流程控制

    前言: 一. python中有严格的格式缩进,因为其在语法中摒弃了“{}”来包含代码块,使用严格的缩进来体现代码层次所以在编写代码的时候项目组要严格的统一器缩进语法,一个tab按键设置为四个空格来缩进 ...

  10. QGraphicsItem鼠标精准拾取(pick/select)研究

    在QT场景视图中,一个2D图形项是一个QGraphicsItem,我们可以通过继承来定义我们自己的图形项. 主要有以下三个虚函数需要重点关注: 1)   边界矩形(必须实现) virtual QRec ...