首页 > 其他分享 >洛谷P5865 [SEERC2018] Tree

洛谷P5865 [SEERC2018] Tree

时间:2023-08-29 09:22:10浏览次数:45  
标签:洛谷 int P5865 Tree ans SEERC2018 101

P5865 [SEERC2018] Tree

题目传送门

分析

本题不难,只要枚举即可。假设两点之间的距离为树的端点,然后再去枚举其他点,符合的加入集合。若黑色点的个数超出了定义个数,那么就更新一遍。最后求最小值。

AC Code:

#include <bits/stdc++.h> //保命万能头
using namespace std; //命名空间
const int INF=0x3f3f3f3f; //方便后续使用
int main()
{
    int n,m,x,y,c[101][101],a[101],ans=INF;
    cin>>n>>m;
    for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) c[i][j]=INF;
    for(int i=1;i<=n;i++) 
    {
        cin>>a[i]; //输入
        c[i][i]=0;
    }
    for(int i=1;i<n;i++) 
    {
        cin>>x>>y; //还是输入
        c[x][y]=c[y][x]=1;
    }
    for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) c[i][j]=min(c[i][j],c[i][k]+c[k][j]);
    //开始枚举
    for(int i=1;i<=n;i++)
    {
        for(int j=i;j<=n;j++)
        {
            if(!a[j]||!a[i]) continue;
            int cnt=0; //初始化计数器
            for(int k=1;k<=n;k++)
            {
                if(a[k]&&c[i][k]<=c[i][j]&&c[k][j]<=c[i][j]) cnt++; //计数
            }
            if(cnt>=m) ans=min(ans,c[i][j]); //求最小值
        }
    }
    cout<<ans; //输出结果ans
    return 0; //好习惯
}
//求过!

标签:洛谷,int,P5865,Tree,ans,SEERC2018,101
From: https://www.cnblogs.com/cxy-xlf-1003/p/17663886.html

相关文章

  • 【LGR-156-Div.3】洛谷网校 8 月普及组月赛 I & MXOI Round 1 & 飞熊杯 #2(同步赛)
    【LGR-156-Div.3】洛谷网校8月普及组月赛I&MXOIRound1&飞熊杯#2(同步赛)\(T1\)luoguP9581宝箱\(100pts\)水题,模拟即可。intmain(){ inta,b,ans=0; cin>>a>>b; if((a<0&&b<0)||(a>0&&b>0)) { cout<<max(abs(a),abs......
  • 【主席树】洛谷 P3834 可持久化线段树 2
    【主席树】洛谷P3834可持久化线段树2题目链接:https://www.luogu.com.cn/problem/P3834主席树是可持久化线段树的一种,也叫做可持久化权值线段树,主要可以用来O(logn)求静态区间的第k小数。总所周知,普通线段树每次修改会遍历logn个点,那么我们在每次修改时都把这logn个点复制一份......
  • 洛谷100题计划 (15/100)
    洛谷100题计划(15/100)P1094[NOIP2007普及组]纪念品分组-洛谷|计算机科学教育新生态(luogu.com.cn)要使得分组最少,其实就是要让一个大的和一个小的放一起,如果大的和小的一起放超过了\(w\),那大的就应该单独放,所以排完序之后,我们可以用双指针从两边寻找可以放一起的......
  • 洛谷100题计划(10/100)
    洛谷100题计划(10/100)P1031[NOIP2002提高组]均分纸牌-洛谷|计算机科学教育新生态(luogu.com.cn)因为第\(1\)堆只能移动到第\(2\)堆,且第\(N\)堆只能移动到第\(N-1\)堆,所以直接从左边往右边转移就行,这里是都减了一个平均数,看所有堆都差多少,如果左右两个都没过平均数......
  • 【题解】洛谷 P1002 [NOIP2002 普及组] 过河卒
    原题链接解题思路这是一道经典的动态规划题目。如果尝试使用深度优先搜索(dfs)或广度优先搜索(bfs)做就会获得TLE(注意数据范围)。于是我们想到了更为高级的动态规划(DynamicProgramming,dp)。简略介绍动态规划算法的核心思想:把原问题分解为相对简单的子问题的方式求解复杂问题。......
  • 洛谷集合题单
    发现自己的基础代码能力还有待提高【数据结构1-3】集合-题单-洛谷|计算机科学教育新生态(luogu.com.cn)P5250【深基17.例5】木材仓库-洛谷|计算机科学教育新生态(luogu.com.cn)学习set的使用搬个知乎的STL教程(九):C++STL常用容器之set/multiset-知乎(zhihu.c......
  • 树链剖分 | 洛谷 P4114 Qtree1
    前言题目链接:洛谷P4114Qtree1前置知识:树链剖分题意给定一棵树,有修改边权和查询两点之间边权最大值两种操作,对于每个查询输出结果。解析已经在前置博客里提到,树链剖分可以将树上的任意一条路径划分成不超过\(O(\logn)\)条连续的链,保证划分出的每条链上的节点DFS序......
  • 普及模拟2 +【LGR-155-Div.3】洛谷基础赛 #3 &「NnOI」Round 2
    普及模拟2\(T1\)地址\(0pts\)简化题意:判断一个\(IP\)地址是否合法(数据保证字符串中存在且仅存在4个被字符分开的整数)#include<bits/stdc++.h>usingnamespacestd;#definelllonglong#definesortstable_sort#defineendl'\n'chars[100];intmain(){ freope......
  • 【洛谷 1157】组合的输出
    #组合的输出##题目描述排列与组合是常用的数学方法,其中组合就是从$n$个元素中抽出$r$个元素(不分顺序且$r\len$),我们可以简单地将$n$个元素理解为自然数$1,2,\dots,n$,从中任取$r$个数。现要求你输出所有组合。例如$n=5,r=3$,所有组合为:$123,124,125,134,135,145,......
  • 洛谷P5410 【模板】扩展 KMP(Z 函数)题解
    题目链接P5410【模板】扩展KMP(Z函数)-洛谷|计算机科学教育新生态(luogu.com.cn) 分析先考虑z数组设nx[i]为字符串b与b以b[i]开头的后缀最长公共前缀设i为当前需要求的位置当前i+nx[i]-1的最大值所对应的i为q p为i对应的位置当i大于q+nx[q......