【LOJ】#3031. 「JOISC 2019 Day1」聚会

LOJ#3031. 「JOISC 2019 Day1」聚会

听说随机可过?

我想了很久想了一个不会被卡的做法,建出前\(u - 1\)个点的虚树,然后找第\(u\)个点的插入位置,就是每次找一条最长链,询问链的两个端点和u的虚树,如果u在链上那么二分找出u的位置,如果u不在链上且和链相连的点不在链上,那么建出那个点然后连上u,否则删除整条链,保留与u相连的那个点,继续这个操作

二分的代价应该最多是11,每次差不多删掉两个儿子是18/2 = 9

然而这个上限肯定跑不到,最后实测操作次数最多的数据点是21000+,有几个点19000,更多的在10000左右

还有一个2000的点跑了1998不知道发生了什么

#include "meetings.h"
#include <bits/stdc++.h>
#define fi first
#define se second
#define pii pair<int,int>
#define mp make_pair
#define pb push_back
#define space putchar(' ')
#define enter putchar('\n')
#define eps 1e-10
#define MAXN 2005
#define ba 47
//#define ivorysi
using namespace std;
typedef long long int64;
typedef unsigned int u32;
typedef double db;
template<class T>
void read(T &res) {
    res = 0;T f = 1;char c = getchar();
    while(c < '0' || c > '9') {
    if(c == '-') f = -1;
    c = getchar();
    }
    while(c >= '0' && c <= '9') {
    res = res * 10 +c - '0';
    c = getchar();
    }
    res *= f;
}
template<class T>
void out(T x) {
    if(x < 0) {x = -x;putchar('-');}
    if(x >= 10) {
    out(x / 10);
    }
    putchar('0' + x % 10);
}
set<int> to[2005];
bool vis[2005],finish[2005];
int dep[2005],S,T,fa[2005];
vector<int> v,line;
void getpos(int u,int fa) {
    v.pb(u);
    for(auto v : to[u]) {
    if(vis[v]) continue;
    if(v != fa) getpos(v,u);
    }
}
void dfs(int u) {
    for(auto v : to[u]) {
    if(v != fa[u]) {
        dep[v] = dep[u] + 1;
        fa[v] = u;
        dfs(v);
    }
    }
}
void getpara(int p) {
    v.clear();
    getpos(p,-1);
    dep[p] = 0;fa[p] = -1;
    dfs(p);
    S = p;
    for(auto t : v) {
    if(dep[t] > dep[S]) S = t;
    }
    dep[S] = 0;fa[S] = -1;
    dfs(S);
    T = p;
    for(auto t : v) {
    if(dep[t] > dep[T]) T = t;
    }
}
void pass_line(int a,int b) {
    dep[a] = 0;fa[a] = -1;
    dfs(a);
    int p = b;
    while(1) {
    vis[p] = 1;
    if(p == a) break;
    p = fa[p];
    }
}
void getline(int a,int b) {
    line.clear();
    dep[a] = 0;fa[a] = -1;
    dfs(a);
    int p = b;
    while(1) {
    line.pb(p);
    if(p == a) break;
    p = fa[p]; 
    }
}
void build(int u) {
    memset(vis,0,sizeof(vis));
    finish[u] = 1;
    int p = 0;
    while(1) {
    getpara(p);
    if(S == T) {
        to[S].insert(u);to[u].insert(S);break;
    }
    int m = Query(u,S,T);
    getline(S,T);
    bool f = 0;
    for(auto v : line) {
        if(v == m) {f = 1;break;}
    }
    if(!f && m != u) {
        build(m);to[m].insert(u);to[u].insert(m);break;
    }
    if(m == S) {to[u].insert(S);to[S].insert(u);break;}
    if(m == T) {to[u].insert(T);to[T].insert(u);break;}
    if(m == u) {
        
        int l = 1,r = line.size() - 1;
        while(l < r) {
        int mid = (l + r) >> 1;
        if(Query(u,line[mid],line[0]) == u) r = mid;
        else l = mid + 1;
        }
        int a = line[r],b = line[r - 1];
        to[b].erase(a);to[a].erase(b);
        to[b].insert(u);to[a].insert(u);
        to[u].insert(a);to[u].insert(b);
        break;
    }
    p = m;pass_line(S,T);vis[p] = 0;
    }
}
void Solve(int N) {
    to[0].insert(1);to[1].insert(0);
    for(int i = 2 ; i < N ; ++i) {
    if(!finish[i]) build(i);
    }
    for(int i = 0 ; i < N ; ++i) {
    for(auto v : to[i]) {
        if(v > i) Bridge(i,v);
    }
    }
}

转载于:https://www.cnblogs.com/ivorysi/p/10947459.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值