首页 > 其他分享 >CF2063C Remove Exactly Two

CF2063C Remove Exactly Two

时间:2025-01-23 09:00:50浏览次数:1  
标签:度数 CF2063C int Exactly Two back ++

前言

提供一个不需要分讨的 \(O(Tnlogn)\) 做法。

解题思路

首先会想到选出度数最大和次大的两个点删除。

但是注意到,有三个度数都为最大的点连在一起的时候,你不能先删中间的点。(可以随便举个例子手玩一下。)

这时有人就开始思考 dp 或者 分类讨论 了。

这时候想我这种没有思维的人就开始发力了。

假设要删的点为 \(x\) 和 \(y\),并且先删 \(x\) 点。

直接暴力枚举每个点作为 \(x\),并更新与之有连边的点的度数,再从剩下的点中选出度数最大的点计算答案,所有情况取最小值即可。

具体实现可以使用 multiset。

代码实现

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int a[N];
vector<int> v[N];
void solve(){
    int n, ans = 0;
    cin >> n;
    for(int i = 1; i <= n; i++) a[i] = 0;
    for(int i = 1; i < n; i++){
        int x, y;
        cin >> x >> y;
        a[x]++, a[y]++;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    multiset<int> s;
    for(int i = 1; i <= n; i++) s.insert(a[i]);
    for(int i = 1; i <= n; i++){
        int sum = 1;
        s.erase(s.find(a[i]));
        for(int y : v[i]){
            s.erase(s.find(a[y]));
            s.insert(a[y] - 1);
        }
        sum += a[i] - 1;
        sum += *s.rbegin() - 1;
        for(int y : v[i]){
            s.erase(s.find(a[y] - 1));
            s.insert(a[y]);
        }
        s.insert(a[i]);
        ans = max(ans, sum);
    }
    cout << ans << endl;
    for(int i = 1; i <= n; i++) v[i].clear();
}
int main(){
    int T;
    cin >> T;
    while(T--) solve();
    return 0;
}

标签:度数,CF2063C,int,Exactly,Two,back,++
From: https://www.cnblogs.com/huangweiliang/p/18687053

相关文章

  • 精通Stable Diffusion画图,理解LoRA、Dreambooth、Hypernetworks四大模型差异
    随着生成型AI技术的能力提升,越来越多的同行开始将注意力放在了通过AI模型提升研发效率上。业内比较火的AI模型有很多,比如画图神器Midjourney、用途多样的StableDiffusion,以及OpenAI此前刚刚迭代的DALL-E2,除了后者使用人数有限之外,前两个都有很多的开发者尝试。不过,对于研......
  • Swift Parameter-free Attention Network模型详解及代码复现
    研究动机在深度学习领域,超分辨率技术的发展面临着模型复杂度与推理速度之间的权衡。传统的基于注意力的超分辨率网络虽然能提高性能,但往往需要较大的感受野和参数化的注意力图,这可能导致推理速度下降。为了解决这一问题,研究人员提出了SwiftParameter-freeAttentionNetwo......
  • (翻译) 关于游戏网络,每个游戏程序需知 What Every Programmer Needs To Know About
    原文链接 https://gafferongames.com/post/what_every_programmer_needs_to_know_about_game_networking/ Haveyoueverwonderedhowmultiplayergameswork?Fromtheoutsideitseemsmagical:twoormoreplayerssharingaconsistentexperience(一致的体验)across......
  • 生成对抗网络(GAN,Generative Adversarial Network)——颠覆创作的黑科技!
    一、什么是生成对抗网络(GAN)?你是否曾经想过,人工智能不仅能够理解和分析数据,甚至还能创作出属于它自己的“艺术品”?生成对抗网络(GAN)正是这样一种神奇的黑科技,它让机器不仅能看懂数据,还能自己创造数据,甚至逼得你分不清它与人类创作的区别。简单来说,生成对抗网络是一种深度学习......
  • Explaining Graph Neural Networks for Vulnerability Discovery
    本篇论文题目为:ExplainingGraphNeuralNetworksforVulnerabilityDiscovery发表于CCS2021本文主要内容是介绍GNNs->前人对GNNs的应用与改进->提出一种对GNNs的评估解释本文并未实际构建一种方法去进行漏洞挖掘,而侧重于对GNNs在漏洞挖掘中的应用针对应用文献进行梳理:......
  • 新模型设计:Hybrid Quantum-Classical Neural Network (HQCNN) for Image Classificati
    新模型设计:HybridQuantum-ClassicalNeuralNetwork(HQCNN)forImageClassification目录新模型设计:HybridQuantum-ClassicalNeuralNetwork(HQCNN)forImageClassification引言1.HybridQuantum-ClassicalNeuralNetwork简介2.HybridQuantum-Classi......
  • In‐band Network Telemetry
    #卫星#遥测技术#INT一、INT是什么?INT,In‐bandNetworkTelemetry,带内网络遥监测。telemetry,英文原意是遥测技术。从其英文名称可以了解如下:a.In-band,说明监测指令及数据均在带内传输b.telemetry,说明是长距离,远程获取网络数据的方法。想象一下卫星在天上飞,地面遥测监控的......
  • VMWare-虚拟机Linux(CentOS),ping ip地址出现 Network is unreachable和name or service
    检查虚拟网络编辑器VMNet1(仅主机)勾选:将主机虑拟适配器连接到此网络;使用本地DHCP服务将IP地址分配给虚拟机这会在电脑上创建一个网络确认:在虚拟网络编辑器里,子网IP和子网掩码设置好;DHCP中网关不要选xxx.xxx.xxx.1确认(宿主局cmd——ipconfig):宿主机VMNet1的网关地址......
  • OSPF - 2、3类LSA(Network-LSA、NetWork-Sunmmary-LSA)
    前篇博客有对常用LSA的总结2类LSA(Network-LSA)DR产生泛洪范围为本区域作用: 描述MA网络拓扑信息和网络信息,拓扑信息主要描述当前MA网络中伪节点连接着哪几台路由。网络信息描述当前网络的掩码和DR接口IP地址。影响邻居建立中说到MA网络掩码需要一致,就是因为这里2类LS......
  • vue3项目yarn install遇到的info There appears to be trouble with your network con
    新接手的vue3项目在安装依赖的时候经常下载失败,报错Couldn'tfindpackage...onthe"npm"registry或者errorError:readECONNRESET1.可以改变当前的源查看当前使用的源yarnconfiggetregistry改变源yarnconfigsetregistryhttps://registry.npmmirror.com(推荐......