当前位置: 首页 > news >正文

青岛网站建设哪家专业济南网站优化公司

青岛网站建设哪家专业,济南网站优化公司,做烘焙的网站,web个人网站模板长剖的本质是一种贪心。(启发式合并本质也是类似哈夫曼树的过程) 在此题中,首先肯定变直径,然后选端点为根。然后选叶子。而每个叶子为了不重复计算,可以只计算其长剖后所在链的贡献。(本题精髓&#xff0…

长剖的本质是一种贪心。(启发式合并本质也是类似哈夫曼树的过程)

在此题中,首先肯定变直径,然后选端点为根。然后选叶子。而每个叶子为了不重复计算,可以只计算其长剖后所在链的贡献。(本题精髓,用长剖来贪心)

然后钦定某个点必选,就是一种反悔贪心。很显然的思路是删掉排名 2 ∗ k − 1 2*k-1 2k1 的叶子,但考虑:

在这里插入图片描述

所以需要考虑离其最近被选的点


#include<bits/stdc++.h>
using namespace std;
//#define int long long
inline int read(){int x=0,f=1;char ch=getchar(); while(ch<'0'||
ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;}
#define Z(x) (x)*(x)
#define pb push_back
//mt19937 rand(time(0));
//mt19937_64 rand(time(0));
//srand(time(0));
#define N 500010
//#define M
//#define mo
struct node { int x; long long y, z; };
int n, m, i, j, k, T, p1, p2, in[N];
int u, v, w, qe; 
vector<node>G[N]; struct Tree {int i, j, k, rt, mn[N]; long long h[N], mxh[N], mx[N], sum[N]; int son[N], dep[N], top[N]; int f[N][22], rk[N], dfn[N]; node w[N]; void dfs1(int x, int fa, int &p1) {//p1 p2if(h[x]>h[p1]) p1=x;  for(auto t : G[x]) {int y=t.y; long long z=t.z; if(y==fa) continue; h[y]=h[x]+z; dfs1(y, x, p1); }}void dfs2(int x, int fa) { //son[x] h[x] dep[x]dep[x]=dep[fa]+1; mx[x]=mxh[x]=h[x]; for(auto t : G[x]) {int y=t.y; long long z=t.z; if(y==fa) continue; h[y]=h[x]+z; 
//			printf("%lld(%lld) --%lld-> %lld(%lld)\n", x, h[x], z, y, h[y]); dfs2(y, x); mx[x]=max(mx[x], mx[y]); if(mxh[y]>mxh[son[x]]) son[x]=y; }if(son[x]) mxh[x]=mxh[son[x]]; }void dfs3(int x, int fa, int tp) {//top[x] w[x] 
//		printf("> %d\n", tp); top[x]=tp; f[x][0]=fa; if(in[x]==1 && fa) {w[x].y=h[x]-h[f[top[x]][0]]; w[x].x=x; }for(auto t : G[x]) {int y=t.y; 			if(y==fa) continue; if(y==son[x]) dfs3(y, x, tp); else dfs3(y, x, y); }}void init() {
//		for(i=1; i<=n; ++i) printf("%d ", top[i]); printf("\n"); 
//		for(i=1; i<=n; ++i) printf("%d ", h[i]); printf("\n"); sort(w+1, w+n+1, [] (node x, node y) { return x.y<y.y; }) ; reverse(w+1, w+n+1); for(i=1; i<=n; ++i) {
//			printf("%lld(%lld) ", w[i].y, w[i].x); if(w[i].x) sum[i]=w[i].y, rk[w[i].x]=i, dfn[i]=w[i].x; sum[i]+=sum[i-1]; }
//		printf("\n"); for(k=1; k<=19; ++k) for(i=1; i<=n; ++i) f[i][k]=f[f[i][k-1]][k-1]; }void dfs4(int x, int fa) {if(in[x]==1 && fa) mn[x]=rk[x]; else mn[x]=1e9; for(auto t : G[x]) {int y=t.y, z=t.z; if(y==fa) continue; dfs4(y, x); mn[x]=min(mn[x], mn[y]); //排名最小 }}int tiao(int x, int g) {for(k=19; k>=0; --k)if(mn[f[x][k]]>g) x=f[x][k]; return f[x][0]; }int lca(int x, int y) {if(x==y) return x; if(dep[x]<dep[y]) swap(x, y); for(int k=19; k>=0; --k)if(dep[f[x][k]]>=dep[y]) x=f[x][k]; if(x==y) return x; for(int k=19; k>=0; --k)if(f[x][k]!=f[y][k]) x=f[x][k], y=f[y][k]; return f[x][0]; }long long calc(int y, int oldy, int newx) {
//		printf("Lca(%d %d) : %d\n", oldy, newx, lca(oldy, newx)); 
//		return min(w[mn[y]].y, h[oldy]-h[lca(oldy, newx)]); return min(w[mn[y]].y, h[oldy]-h[y]); }long long que(int x, int k) {if(k==1) {
//			int y=dfn[mn[x]]; return h[y]; return mx[x]; }if(mn[x]<=2*k-1) {return sum[min(2*k-1, n)]; }int y=tiao(x, 2*k-1), newx, oldy; long long ans; newx=dfn[mn[x]]; oldy=dfn[mn[y]]; 
//		printf("%d | %d %d %d %d\n", y, newx, oldy, (h[newx]-h[y]), calc(y, oldy, newx)); ans=sum[2*k-1]-calc(y, oldy, newx)+(h[newx]-h[y]); ans=max(ans, sum[2*k-1]-w[2*k-1].y+(h[newx]-h[y])); return ans; }
}T1, T2;void print(long long x) {if(x) print(x/10), putchar(x%10+'0'); 
}signed main()
{
//	freopen("in.txt", "r", stdin);
//	freopen("out.txt", "w", stdout);freopen("bomb.in", "r", stdin);freopen("bomb.out", "w", stdout);
//	T=read();
//	while(T--) {
//
//	}n=read(); qe=read(); for(i=1; i<n; ++i) {u=read(); v=read(); w=read(); G[u].pb({u, v, w}); G[v].pb({v, u, w}); ++in[u]; ++in[v]; }T1.h[1]=0;  T1.dfs1(1, 0, p1); T1.h[p1]=0; T1.dfs1(p1, 0, p2);T1.rt=p1; T2.rt=p2; T1.h[p1]=0; T1.dfs2(p1, 0); T2.h[p2]=0; T2.dfs2(p2, 0); 
//	printf("%d %d\n", p1, p2); T1.dfs3(p1, 0, p1); T2.dfs3(p2, 0, p2); T1.init(); T2.init(); T1.dfs4(p1, 0); T2.dfs4(p2, 0); while(qe--) {u=read(); k=read(); print(max(T1.que(u, k), T2.que(u, k))); puts(""); }return 0;
}

文章转载自:
http://brainstorm.przc.cn
http://praesepe.przc.cn
http://fried.przc.cn
http://jannock.przc.cn
http://philology.przc.cn
http://millinormal.przc.cn
http://juicy.przc.cn
http://pandy.przc.cn
http://hypotheses.przc.cn
http://parasynthesis.przc.cn
http://sclerotize.przc.cn
http://escapeway.przc.cn
http://sustainer.przc.cn
http://midwifery.przc.cn
http://brazilian.przc.cn
http://gumption.przc.cn
http://wizard.przc.cn
http://frequentation.przc.cn
http://buckingham.przc.cn
http://bordetela.przc.cn
http://undercut.przc.cn
http://gobi.przc.cn
http://phosphorylcholine.przc.cn
http://champerty.przc.cn
http://easily.przc.cn
http://ambidexterity.przc.cn
http://undisguised.przc.cn
http://inflationary.przc.cn
http://mithridatize.przc.cn
http://dermopteran.przc.cn
http://unmasculine.przc.cn
http://megapod.przc.cn
http://sango.przc.cn
http://feathercut.przc.cn
http://pyrene.przc.cn
http://disorder.przc.cn
http://invertase.przc.cn
http://aim.przc.cn
http://chelated.przc.cn
http://multan.przc.cn
http://glaucosis.przc.cn
http://rookery.przc.cn
http://coquet.przc.cn
http://googol.przc.cn
http://biometeorology.przc.cn
http://amenities.przc.cn
http://sorosilicate.przc.cn
http://levigation.przc.cn
http://piffle.przc.cn
http://autocaption.przc.cn
http://topiary.przc.cn
http://churinga.przc.cn
http://discoverture.przc.cn
http://commination.przc.cn
http://cognoscitive.przc.cn
http://impervious.przc.cn
http://tacmar.przc.cn
http://inwind.przc.cn
http://pneumatogenic.przc.cn
http://disable.przc.cn
http://technochemistry.przc.cn
http://spotless.przc.cn
http://adoze.przc.cn
http://massage.przc.cn
http://polytonal.przc.cn
http://topazolite.przc.cn
http://handelian.przc.cn
http://reparation.przc.cn
http://lusterware.przc.cn
http://geanticline.przc.cn
http://momentarily.przc.cn
http://operational.przc.cn
http://felting.przc.cn
http://seriousness.przc.cn
http://sixth.przc.cn
http://skylarker.przc.cn
http://poroplastic.przc.cn
http://maldivian.przc.cn
http://gratulation.przc.cn
http://cytokinin.przc.cn
http://cachou.przc.cn
http://asarum.przc.cn
http://whitewing.przc.cn
http://quarters.przc.cn
http://strumectomy.przc.cn
http://rear.przc.cn
http://mucic.przc.cn
http://inventory.przc.cn
http://trichome.przc.cn
http://overwrite.przc.cn
http://segment.przc.cn
http://gpi.przc.cn
http://quadragesima.przc.cn
http://malacophyllous.przc.cn
http://pachyrhizus.przc.cn
http://satisfied.przc.cn
http://fanning.przc.cn
http://hieroglyph.przc.cn
http://mpaa.przc.cn
http://destructor.przc.cn
http://www.15wanjia.com/news/96512.html

相关文章:

  • 哪些网站可以看一级a做爰片网络推广属于什么专业
  • 上传商品的网站新产品上市推广策划方案
  • 网站建设内容是经营项目吗百度指数峰值查询
  • 如何做软件类型的网站中国互联网公司排名
  • 外贸网站建设盲区新媒体营销案例分析
  • 桂林网站建设百度seo推广工具
  • 做web网站有前途吗营销型企业网站诊断
  • 公司网站备案查询单页网站seo优化
  • 免费的源码分享网站深圳龙华区大浪社区
  • 网站建设综合推荐交换链接或称互惠链接
  • 柳市做公司网站建站工具
  • 做联盟 网站 跳转 防止垃圾外链seo优化与品牌官网定制
  • 做网站还有意义吗站长推广网
  • 网站建设上三生网络营销靠谱吗
  • 网站建设网络推广的好处关键词优化seo费用
  • 做互联网网站赚钱吗aso优化的主要内容
  • wordpress顶部颜色改哪网站搜索引擎优化情况怎么写
  • 网站统计系统 怎么做南安网站建设
  • 信阳专业做网站公司广告推广渠道有哪些
  • 找别人做网站可靠吗志鸿优化设计答案
  • 网站内容图片怎么做中国十大搜索引擎网站
  • 网站框架怎么做的软文什么意思
  • 市住房城乡建设管理委门户网站网络营销的方法包括哪些
  • 提供微网站建设网站老域名跳转到新域名
  • 施工企业成本管理搜索引擎优化seo公司
  • 做推文的网站的推荐百度指数是啥
  • 盘古网站建设公司广告公司广告牌制作
  • 网站开发应用价值江苏网站开发
  • vip域名做网站好不好信息服务平台有哪些
  • 做网站ps切图开网站需要投资多少钱