cf685B水题

#include<cstdio>
#include<cstring>
using namespace std;
inline void read(int &a){
    char c=getchar();int f=1;a=0;
    while(c>'9'||c<'0'){if(c=='-') f=-1;c=getchar();}
    while(c<='9'&&c>='0') a=(a<<1)+(a<<3)+c-48,c=getchar();
    a*=f;
}
inline int max(int a,int b){return a>b?a:b;}
const int MAXN=300010;
struct edge{int u,v,pre;}e[MAXN];
int n,q,head[MAXN],fa[MAXN],cnt,s[MAXN],P,ans[MAXN],m[MAXN],t[MAXN],B[MAXN];
inline void addedge(int U,int V){
    e[++cnt].u=U;e[cnt].v=V;e[cnt].pre=head[U];head[U]=cnt;
}
inline void getsum(int now){
    for(int i=head[now];i;i=e[i].pre)
        getsum(e[i].v),s[now]+=s[e[i].v],m[now]=max(m[now],s[e[i].v]);
    ++s[now];
}
inline void getans(int now){
    ans[now]=now;
    for(int i=head[now];i;i=e[i].pre){
        getans(e[i].v);t[now]=ans[e[i].v];
        B[e[i].v]=t[now];t[now]=fa[t[now]];
        while(t[now]!=now&&max(s[now]-s[B[e[i].v]],m[B[e[i].v]])>max(s[now]-s[t[now]],m[t[now]]))
            B[e[i].v]=t[now],t[now]=fa[t[now]];
        if(max(s[now]-s[B[e[i].v]],m[B[e[i].v]])<max(s[now]-s[ans[now]],m[ans[now]]))
            ans[now]=B[e[i].v]; 
    }
}
int main(){
    read(n);read(q);
    for(int i=2;i<=n;++i) read(fa[i]),addedge(fa[i],i);
    getsum(1);getans(1);
    while(q--) read(P),printf("%d\n",ans[P]);
    return 0;
}

 

 

太简单了不说思路

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Oracle 12c客户端的安装步骤如下: 1. 首先,从Oracle官方网站下载Oracle 12c客户端的安装文件。下载链接可以在Oracle官方网站的下载页面找到\[2\]。 2. 解压下载的安装文件,并找到setup.exe文件,双击运行该文件开始安装。 3. 在安装向导中,按照提示选择安装类型和安装位置。可以选择默认选项,或者根据需要进行自定义设置。 4. 在安装过程中,可能会要求输入Oracle数据库的连接信息。根据需要输入正确的主机名、端口号和服务名等信息。 5. 完成安装后,可以通过Oracle客户端提供的工具连接到Oracle数据库。可以使用SQL*Plus、SQL Developer等工具进行数据库操作。 6. 如果需要配置网络连接,可以编辑tnsnames.ora文件,添加数据库的连接信息。该文件通常位于NETWORK\ADMIN目录下\[5\]。 请注意,安装Oracle客户端需要具备管理员权限,并且需要根据实际情况进行相应的配置和设置。 #### 引用[.reference_title] - *1* [oracle 12C 《服务器、客户端安装》](https://blog.csdn.net/weixin_45775343/article/details/103422775)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-0f685b63c416c92083fb6373153299b4.142^v90^control_2,239^v3^control"}} ] [.reference_item] - *2* [oracle 12C 《服务器、客户端安装》](https://blog.csdn.net/weixin_45775343/article/details/103422775)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-0f685b63c416c92083fb6373153299b4.142^v90^control_2,239^v3^control"}} ] [.reference_item] - *3* [oracle 12C 《服务器、客户端安装》](https://blog.csdn.net/weixin_45775343/article/details/103422775)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-0f685b63c416c92083fb6373153299b4.142^v90^control_2,239^v3^control"}} ] [.reference_item] - *4* [oracle 12C 《服务器、客户端安装》](https://blog.csdn.net/weixin_45775343/article/details/103422775)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-0f685b63c416c92083fb6373153299b4.142^v90^control_2,239^v3^control"}} ] [.reference_item] - *5* [Oracle12c 配置](https://blog.csdn.net/lch2848508/article/details/60871623)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-0f685b63c416c92083fb6373153299b4.142^v90^control_2,239^v3^control"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值