博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tree POJ - 1741 (点分治)
阅读量:4702 次
发布时间:2019-06-09

本文共 1305 字,大约阅读时间需要 4 分钟。

板子

//#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f#define mem(a,b) memset(a,b,sizeof(a))#define ll long long#define sd(x) scanf("%d",&(x))#define sl(x) scanf("%lld",&(x))#define slf(x) scanf("%lf",&(x))#define scs(s) scanf("%s",s)#define rep(i,a,b) for(int i=a;i<=b;i++)#define per(i,a,b) for(int i=a;i>=b;i--)#define lowbit(x) x&(-x)#define ls now<<1#define rs now<<1|1#define lson l,mid,ls#define rson mid+1,r,rs#define All L,Rusing namespace std;const int maxn=2e6+10;struct edge{ int u,v,w,next;}e[maxn];int top,mub,root,Max,ans,n,k,cnt,tot=0;int g[maxn],Size[maxn],dist[maxn];bool vis[maxn];void make(int u,int v,int w){ e[++tot]=(edge){u,v,w,g[u]}; g[u]=tot;}void init(){ mem(g,0); tot=0; top=0; ans=0; mem(vis,0);}void get_root(int u,int f){ Size[u]=1; int ma=0; for(int i=g[u];i;i=e[i].next) { int v=e[i].v; if(v!=f&&!vis[v]) { get_root(v,u); Size[u]+=Size[v]; ma=max(ma,Size[v]); } } ma=max(ma,cnt-Size[u]); if(ma
k) j--; res+=j-i; i++; } return res;}void work(int u){ Max=n; get_root(u,-1); cnt=Size[u]; ans+=calc(root,0); vis[root]=true;// cout<<"root: "<
<

 

转载于:https://www.cnblogs.com/minun/p/11361842.html

你可能感兴趣的文章
实验三
查看>>
Mysql优化配置
查看>>
Spring Boot 学习笔记(三)
查看>>
Mac下安装MySQL-python
查看>>
cat 命令(转)
查看>>
ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法
查看>>
在远程机器上跑PowerShell脚本
查看>>
我的Java设计模式-策略模式
查看>>
C# 报表接口样例,简单实用
查看>>
C++常见内存错误及解决方案
查看>>
音视频学习路线规划(2015-11)
查看>>
使用delphi 开发多层应用(十八)使用Basic4android 访问RTC 服务的二进制流(照片)...
查看>>
Hello World!
查看>>
一、虚拟环境.二、路由配置主页与404.三、2.x路由分发.四、伪静态.五、request对象.六、FBV与CBV.七、文件上传....
查看>>
电费2
查看>>
定时任务 - quartz
查看>>
redmine 一键安装
查看>>
021-异步注册登录(检测用户名)
查看>>
gitlab、github账户密码修改后,记得修改本地账户的git凭据
查看>>
2019年春季学期第二周作业
查看>>