首页 > 其他分享 >2023秋季综合训练(三)

2023秋季综合训练(三)

时间:2023-11-19 20:35:46浏览次数:28  
标签:秋季 训练 int 访问 为根 2023 d2 节点 d1

问题 G: 夜刀与黑角
如果两个人全部访问则 ans = 4*(n-1)
考虑删除没有遍历的节点

对于角色A:
1.对于以u为根的节点,如果存在A需要访问的节点,则u必须要访问
2.对于以u为根的节点,如果存在B需要访问的节点x,dep[x]-dep[u]>=D,则u须要访问
3.其他情况,可以不用访问

dfs求每个节点是否需要访问,如果不需要则-2(一来一回)

点击查看代码
const int N=2e5+10;
vector<int> g[200010];
int n,D,ans;
//d1[u],A角色以u为根节点要到达的最远距离(深度)
int k1[N],k2[N],d[N],d1[N],d2[N];
void dfs(int u,int fa){
    //标记访问深度
    if(k1[u]) d1[u]=d[u];
    if(k2[u]) d2[u]=d[u];
    for(int v:g[u]){
        if(v==fa) continue;
        d[v]=d[u]+1;
        dfs(v,u);
        d1[u]=max(d1[u],d1[v]);
        d2[u]=max(d2[u],d2[v]);
    }
    if(u==1) return;
    //以u为根的子树A角色不用访问,则不用访问
    if(!d1[u]&&d2[u]-d[u]<D) ans-=2;//来回-2
    //同理
    if(!d2[u]&&d1[u]-d[u]<D) ans-=2;

}

void bu_f(){
    n=read(),D=read();   
    for(int i=1;i<n;i++){
        int x=read(),y=read();
        g[x].push_back(y);
        g[y].push_back(x);
    }
    //假设全部点都要遍历
    ans=4*(n-1);
    int m1=read();
    for(int i=1;i<=m1;i++){
        int x=read();
        k1[x]=1;
    }
    int m2=read();
    for(int i=1;i<=m2;i++){
        int x=read();
        k2[x]=1;
    }
    d[1]=1;
    //删掉不用遍历的点
    dfs(1,0);
    write(ans);
}

问题 I: Bessie看Mooloo

考虑d[i]到d[i+1]天转移要么是k+1,要么是d[i+1]-d[i],两则取最小即可

点击查看代码
LL a[100010];
LL ans,n,k;
void bu_f(){
    n=read(),k=read();
    for(int i=1;i<=n;i++) a[i]=read();
    ans=k+1;
    for(int i=2;i<=n;i++) {
        ans+=min(k+1,a[i]-a[i-1]);
    }
    cout<<ans;
}

标签:秋季,训练,int,访问,为根,2023,d2,节点,d1
From: https://www.cnblogs.com/bu-fan/p/17842569.html

相关文章

  • 2023-2024-1 20231306 《计算机基础与程序设计》第八周学习总结
    这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第八周作业这个作业的目标功能设计与面向对象设计、面向对象设计过程、面向对象语言三要素、汇编、编译、解释、执行作业正文https://www.cnblogs.com/......
  • 2023-2024-1 20232320 《网络空间安全导论》第二周学习总结
    教材学习内容总结本周我进行了《网络空间安全导论》第二章的学习,其中主要对密码学以及密码的概念和分类进行了讲述,也简述了密码学的发展的进展和方向,在学习中,我以思维导图的方式总结了以下要点:教材学习中的问题和解决过程问题1:shannon信息论有什么主要内容?问题1解决方案:问百......
  • 2023-2024-1 20231425《计算机基础与程序设计》第八周学习总结
    2023-2024-120231425《计算机基础与程序设计》第八周学习总结作业信息所属课程2023-2024-1-计算机基础与程序设计作业要求在哪里2023-2024-1计算机基础与程序设计八周作业作业目标学习教材《计算机科学概论》第9章《C语言程序设计》第7章并完成云班课测......
  • 2023-2024-1 20231422 《计算机基础与程序设计》第八周学习总结
    作业信息这个作业属于哪个课程2023-2024-计算机基础与程序设计这个作业要求在哪里2023-2024-计算机基础与程序设计这个作业的目标功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释、执行作业正文(https://www.cnblogs.com/Augenstern......
  • 2023-2024-1 20231312《计算机基础与程序设计》第8周学习总结
    作业信息这个作业属于哪个课程<班级的链接>2023-2024-1-计算机基础与程序设计|-这个作业要求在哪里<作业要求链接>2023-2024-1计算机基础与程序设计第6周作业|这个作业的目标《计算机基础概论》第9章《C语言程序设计》第7章|作业正文作业链接教材学习......
  • 2023-2024-1 20231325 《计算机基础与程序设计》第8周学习总结
    ###目录*作业信息*教材学习内容总结1.《计算机科学概论》第9章2.《c语言程序设计》第7章*基于AI的学习*学习心得*学习进度条作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业的要求在哪里1.学习《计算机科学概论》第9章并完成......
  • 2023-2024-1 20231304 《计算机基础与程序设计》第八周学习总结
    2023-2024-120231304《计算机基础与程序设计》第八周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第八周作业这个作业的目标功能设计与面向对象设计,面向对象设计过程,面向对象语言......
  • NOIP 2023
    NOIP2023不管怎么样,好像暂时不用退役了...进场前机房同学在看字符串,我奶了一手不会考字符串,然后进场一看abandon,有点想笑。开场看了一下,感觉T1是去年cspT1那种题,然后简单想了一下发现可以直接找出最小次小,大概十几分钟的时候过了样例。然后看T2,感觉和食物链有点像,仔细......
  • 2023-2024-1 20231304 《计算机基础与程序设计》第八周学习总结
    2023-2024-120231304《计算机基础与程序设计》第八周学习总结这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第八周作业这个作业的目标功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、......
  • 代码随想录算法训练营第十天 | ●28. 实现 strStr() ●459.重复的子字符串 ●字符串
    今日学习的文章链接和视频链接https://programmercarl.com/字符串总结.html#什么是字符串https://programmercarl.com/双指针总结.html#数组篇●28.实现strStr()varstrStr=function(haystack,needle){if(needle.length===0)return0;const......