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

wamp做的网站标签图标中石化两学一做网站

wamp做的网站标签图标,中石化两学一做网站,网盟推广与信息流,舟山网站建设企业https://codeforces.com/contest/2063/problem/C 牢记一棵树上两个节点如果相邻,它们有一条边会重叠,两个节点延伸出去的所有不同边是两个节点入度之和-1而不是入度之和,那么如果这棵树上有三个节点它们的入度都相同,那么优先选择非相邻的两个节点才能使所有不同边的数量最大!!…

https://codeforces.com/contest/2063/problem/C
牢记一棵树上两个节点如果相邻,它们有一条边会重叠,两个节点延伸出去的所有不同边是两个节点入度之和-1而不是入度之和,那么如果这棵树上有三个节点它们的入度都相同,那么优先选择非相邻的两个节点才能使所有不同边的数量最大!!

然后思路就是:暴力

template<class Info>
struct SegmentTree {int n;std::vector<Info> info;SegmentTree() : n(0) {}SegmentTree(int n_, Info v_ = Info()) {init(n_, v_);}template<class T>SegmentTree(std::vector<T> init_) {init(init_);}void init(int n_, Info v_ = Info()) {init(std::vector(n_, v_));}template<class T>void init(std::vector<T> init_) {n = init_.size();info.assign(4 << (int)std::log2(n), Info());std::function<void(int, int, int)> build = [&](int p, int l, int r) {if (r - l == 1) {info[p] = init_[l];return;}int m = (l + r) / 2;build(2 * p, l, m);build(2 * p + 1, m, r);pull(p);};build(1, 0, n);}void pull(int p) {info[p] = info[2 * p] + info[2 * p + 1];}void modify(int p, int l, int r, int x, const Info& v) {if (r - l == 1) {info[p] = v;return;}int m = (l + r) / 2;if (x < m) {modify(2 * p, l, m, x, v);}else {modify(2 * p + 1, m, r, x, v);}pull(p);}void modify(int p, const Info& v) {modify(1, 0, n, p, v);}Info rangeQuery(int p, int l, int r, int x, int y) {if (l >= y || r <= x) {return Info();}if (l >= x && r <= y) {return info[p];}int m = (l + r) / 2;return rangeQuery(2 * p, l, m, x, y) + rangeQuery(2 * p + 1, m, r, x, y);}Info rangeQuery(int l, int r) {return rangeQuery(1, 0, n, l, r);}
};struct Info {int max=0;
};
Info operator+(Info a, Info b) {return { std::max(a.max,b.max) };
}void solve() {int n;std::cin >> n;std::vector<Info>a(n);std::vector<std::vector<int>>adj(n);for (int i = 0; i < n - 1; i++) {int u, v;std::cin >> u >> v;u--;v--;a[u].max++;a[v].max++;adj[u].push_back(v);adj[v].push_back(u);}SegmentTree<Info>t(a);int ans = 0;for (int i = 0; i < n; i++) {t.modify(i, { 0 });for (int j = 0; j < adj[i].size(); j++) {int x = adj[i][j];t.modify(x, { a[x].max - 1 });}ans = std::max(ans, a[i].max + t.rangeQuery(0, n).max);t.modify(i, { a[i]});for (int j = 0; j < adj[i].size(); j++) {int x = adj[i][j];t.modify(x, { a[x].max });}}std::cout << ans-1 << "\n";
}int main() {std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0);int t = 1;std::cin >> t;while (t--) {solve();}return 0;
}

http://www.yayakq.cn/news/787316/

相关文章:

  • 网站登记表网站删除关键词
  • 做网站有什么专业术语合肥网站建设哪家好
  • 高清做网站插图云南网站优化排名
  • 建设网站前需要的市场分析网站改版了
  • 网站做百度推广需要什么材料婚车租赁
  • 上海网站建设制作公司网站建设项目安排计划表
  • 网站建设公司如何签单网站一年续费多少钱
  • 中小企业网站制作流程外贸网站怎么做
  • 生活常识网站源码vps 网站 需要绑定域名吗
  • 攀枝花建设集团网站亚马逊网站联盟
  • 工程造价信息价在什么网站查江镇做包子网站
  • 临海如何制作公司网站框架申请公司
  • 做衣服网站免费网络营销课程
  • 医疗器械类网站前置审批材料模板青岛互联网企业
  • 咸阳网站建设制作打开浏览器历史记录
  • 免费行情软件app网站大全做电影网站如何盈利
  • 郑州网站搭建的公司专门做网上链接推广的网站
  • 定制网站和模板建站重庆市建设工程造价管理协会官网
  • 晋城商城网站开发设计多少钱需要交个人所得税
  • 用wordpress仿一个网站关于友谊的连接
  • 怎样优化网站做网站分几种
  • 浙江网站怎么做推广网站建设应具备的技能
  • 西安可以做网站的做外贸在哪个网站好
  • 沽源网站建设案例网站数据库空间增大
  • 杭州企业网站专业设计手工制作玩具
  • led网站模板知名建筑设计网站
  • 站长之家网站建设建设通查项目经理
  • 上上上海网站设计根域名服务器
  • 做精彩网站分析的方向是wordpress网站微信公众号推送
  • 青岛高端网站开发公司温州市建设工程招投标网站