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

网站app服务器租用/优化手机流畅度的软件

网站app服务器租用,优化手机流畅度的软件,给企业建设网站的流程图,怎么用ps做网站图片http://cplusoj.com/d/senior/p/SS231109C 场上想到枚举点&#xff0c;然后最大值为高&#xff0c;然后可以求最大值。但是感觉计数会重 计数其实不会重&#xff0c;如图中&#xff0c;红色线段显然比蓝色线段优 所以我们枚举3叉点时没错的 #include<bits/stdc.h> usin…

http://cplusoj.com/d/senior/p/SS231109C

场上想到枚举点,然后最大值为高,然后可以求最大值。但是感觉计数会重


计数其实不会重,如图中,红色线段显然比蓝色线段优

在这里插入图片描述

所以我们枚举3叉点时没错的

#include<bits/stdc++.h>
using namespace std;
#ifdef LOCAL#define debug(...) fprintf(stdout, ##__VA_ARGS__)
#else#define debug(...) void(0)
#endif
#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
#define fi first
#define se second
//srand(time(0));
#define N 500010
//#define M
//#define mo
struct node {int mx, cnt; void init() { mx=-1e15; cnt=0; }node operator +(const node &A) const {if(A.mx>mx) return A; if(mx>A.mx) return (*this); return {mx, cnt+A.cnt}; }node add() { node A=(*this); A.mx++; return A; }
}ans, f[N]; 
void operator += (node &A, node B) { A=A+B; }
int n, m, i, j, k, T;
int u, v, c[N]; 
vector<int>G[N]; void dfs1(int x, int fa) {f[x]={0, 1}; for(int y : G[x]) if(y!=fa) {dfs1(y, x); f[x]+=f[y].add(); }debug("> %lld : %lld %lld\n", x, f[x].mx, f[x].cnt); 
}void dfs2(int x, int fa, node p) {debug("Shang %lld : %lld %lld\n", x, p.mx, p.cnt); int z=G[x].size(), i, j, k=0; vector<node>pre, lst, cao; node dp[3][2], ndp[3][2];vector<int>ve; pre.resize(z+2); lst.resize(z+2); ve.resize(z+2); for(auto &t : pre) t.init(); for(auto &t : lst) t.init(); for(auto y : G[x]) if(y!=fa) ve[++k]=y; pre[0]=p; for(i=1; i<=k; ++i) pre[i]=pre[i-1]+f[ve[i]].add(); for(i=k; i>=1; --i) lst[i]=lst[i+1]+f[ve[i]].add(); for(i=1; i<=k; ++i) dfs2(ve[i], x, (pre[i-1]+lst[i+1]).add()); if(c[x]<3) return ; int mx=pre[k].mx; debug("[%lld] %lld\n", k, mx); for(i=1; i<=k; ++i) cao.pb(f[ve[i]].add()); cao.pb(p); for(i=0; i<=2; ++i) for(j=0; j<=1; ++j) dp[i][j].init(); dp[0][0]={0, 1}; for(auto t : cao) {debug("# %lld %lld\n", t.mx, t.cnt); for(i=0; i<=2; ++i) for(j=0; j<=1; ++j) ndp[i][j].init(); for(i=0; i<=2; ++i) for(j=0; j<=1; ++j) {ndp[i][j|(t.mx==mx)]+=dp[i][j]; if(i<2) {node cur = {dp[i][j].mx+mx*t.mx, dp[i][j].cnt*t.cnt}; debug("** %lld(%lld %lld) %lld | %lld\n", cur.mx, dp[i][j].mx, mx*t.mx, cur.cnt, j); ndp[i+1][j]+=cur; }}for(i=0; i<=2; ++i) for(j=0; j<=1; ++j) dp[i][j]=ndp[i][j]; }debug("=# %lld %lld\n", dp[2][1].mx, dp[2][1].cnt); ans+=dp[2][1]; 
}signed main()
{freopen("tree.in", "r", stdin);freopen("tree.out", "w", stdout);#ifdef LOCALfreopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);#endif
//	T=read();
//	while(T--) {
//
//	}	n=read(); for(i=1; i<n; ++i) {u=read(); v=read(); G[u].pb(v); G[v].pb(u); ++c[u]; ++c[v]; k=max(k, c[u]); k=max(k, c[v]); }if(k<=2) return printf("0 1"), 0; node p; p.init(); dfs1(1, 0); dfs2(1, 0, {0, 1}); printf("%lld %lld\n", ans.mx, ans.cnt); return 0;
}
http://www.ho-use.cn/article/533.html

相关文章:

  • 化妆品应如何网站建设定位/如何去做网络营销
  • 马鞍山哪里做网站/企业关键词大全
  • 常州市建设工程质量监督站网站/优化排名工具
  • 著名建筑设计作品解析/牛排seo
  • 做网站IP/想学销售去哪培训
  • 在什么网站做公司人员增减/百度推广的步骤
  • 专门做辅助的网站/保定百度seo排名
  • 媒体网站推广方法/百度提交入口网址是什么
  • 公司网站制作公司倒闭/软文推广的100个范例
  • 中国网站设计公司/吸引人的营销标题
  • 危险网站怎么解除/刷移动端seo软件
  • 政府网站建设新模式济南网站建设哪家专业
  • 做网站需要的素材照片/关键词完整版免费听
  • 网站开发属于软件开发吗/老客外链
  • 数码产品网站建设计划书/seo简单优化操作步骤
  • 做公司网站的好处/百度排名优化专家
  • 网站更换域名如何操作/百度集团公司简介
  • 武汉便宜网站建设/北京seo诊断
  • 给个做的网站/最新新闻热点事件摘抄
  • 医院网站php源码/网站搜索引擎推广
  • 合肥蜀山网站开发/枣庄网站建设制作
  • 湖南微信管理系统/搜索引擎优化面对哪些困境
  • 响应式网站建设服务商/网络舆情监测平台
  • app开发网站建设公司哪家好/seo排名赚挂机
  • 郑州的网站建设公司哪家好/百度不收录网站
  • 贵州省 政府网站建设/seo技术网
  • 北京注册公司地址有什么要求/谷歌seo综合查询
  • php 网站开发心得/百度seo网站在线诊断
  • 公众号怎么做微网站/网站seo百度百科
  • 西安有哪些网站建设外包公司/美业推广平台