首页 > 其他分享 >P2899 [USACO08JAN] Cell Phone Network G

P2899 [USACO08JAN] Cell Phone Network G

时间:2024-02-20 17:25:19浏览次数:28  
标签:USACO08JAN min ll next Cell Phone add now 节点

原题链接

题解

一开始我想的是每个节点要么建,要么不建,可是这样一来不好转移,因为有如下情况(黑色代表建站)

于是我们换一个角度思考,我们发现一个点要能通网,有三种情况:
1.自己建站
2.儿子建站
3.父亲建站

Code

#define ll long long
#include<bits/stdc++.h>
using namespace std;
vector<ll> G[100005];
ll f[100005][4]={0};

inline void read(ll &x) {
    x = 0;
    ll flag = 1;
    char c = getchar();
    while(c < '0' || c > '9'){
        if(c == '-')flag = -1;
        c = getchar();
    }
    while(c >= '0' && c <= '9') {
        x = (x << 3) + (x << 1) + (c ^ 48);
        c = getchar();
    }
    x *= flag;
}

inline void write(ll x)
{
    if(x < 0){
        putchar('-');
        x = -x;
    }
    if(x > 9)
        write(x / 10);
    putchar(x % 10 + '0');
}

void ss(ll now,ll fa)
{
    f[now][0]=0;
    f[now][1]=1;
    f[now][2]=0;
    ll add=2e17;
    for(auto next:G[now])
    {
        if(next==fa)continue;
        ss(next,now);
        add=min(add,f[next][1]-min(f[next][1],f[next][0]));
        f[now][0]+=min(f[next][1],f[next][0]);
        f[now][1]+=min(min(f[next][1],f[next][0]),f[next][2]);
        f[now][2]+=min(f[next][1],f[next][0]);//因为父亲建站可能会出现连环空,所以如果当前节点是空节点不能转移
    }
    f[now][0]+=add;
}

int main()
{
    ll n;
    read(n);
    for(ll i=1;i<n;i++)
    {
        ll x,y;
        read(x); read(y);
        G[x].push_back(y);
        G[y].push_back(x);
    }

    ss(1,0);

    write(min(f[1][1],f[1][0]));
    putchar('\n');
    return 0;
}

标签:USACO08JAN,min,ll,next,Cell,Phone,add,now,节点
From: https://www.cnblogs.com/pure4knowledge/p/18023592

相关文章

  • iPhone 16全系配置抢先曝光:首发史上最强A18/A18 Pro、标配8GB内存
    iPhone16后摄像头模组重回垂直排列的消息得到了证实。MR抢先曝光了iPhone16系列四款机型的核心配置,一起来看看。今年,iPhone16、16Plus和16Pro、16ProMax将分别升级A18、A18Pro芯片,采用台积电“N3E”增强型3nm工艺。A18系列芯片的一大变化是将采用“升级版神经引擎”,并大......
  • electron 下网页获取 micphone 权限
    网页获取麦克风或摄像头权限我们只需调用navigator.mediaDevices.getUserMedia方法就可唤起浏览器用户授权constuseMicphone=async()=>{try{letmediaStream=awaitnavigator.mediaDevices.getUserMedia({audio:true});if(mediaStream){conso......
  • 苹果iPhone手机Trollstore巨魔2必备神器Misaka.ipa签名安装支持iOS15.5~16.6.1错误如
    文末附工具链接和视频介绍引言上一篇,介绍了哪些设备可以安装巨魔2:巨魔TrollStore2已经支持更多版本和型号A12-A17今天继续实战介绍,如何在iPhone上安装巨魔TrollStore2的前置工作,通过Misaka来安装巨魔TrollStore2,先进行Misaka.ipa签名安装。Misaka支持哪些iOS版本和方式......
  • think-cell Round 1 题解 (A~F)
    think-cellRound1.目录A.MaximiseTheScore排序后输出所有奇数位之和.B.PermutationPrinting\(1,n,2,n-1\cdots\).C.LexicographicallyLargest注意到对于一个\(a_i\)来说\([a_i+1,a_i+i]\)中的所有数都可以被选中,那么问题变给若干区间,每个区间选一个数要......
  • 记一次 iPhone 美区充值余额
    代理软件(都需要美区)参见iPhone软件整理美区礼品卡购买教程注册一个美区AppleID账号进AppleID官网修改为免税区,第一步设置好则无需修改打开支付宝,切换地区为旧金山点出境(Coupon)点折扣礼卡最下面更多大牌折扣礼卡购买applestore礼品卡充值成功......
  • think-cell Round 1
    叮!你的橙名体验卡已到期~Asort以后,是奇数项之和。Code#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;intmain(){ ios::sync_with_stdio(false); cin.tie(0); intt; cin>>t; while(t--){ intn; cin>>n; vector<ll>v(n......
  • 记一次 iPhone 美区充值余额
    代理软件(都需要美区)参见iPhone软件整理机场名称简介Glados老牌的提供商Speeds99没用过自建机场利用Cloudflare搭建,见个人博客美区礼品卡购买教程注册一个美区AppleID账号进AppleID官网修改为免税区,第一步设置好则无需修改打开支付宝,切换地......
  • 为了将照片导入iPhone并保留时刻信息漫漫之路
    由于Android对EXIF信息的管理混乱,导致Android转iPhone后在相册看照片时间线一片混乱,特开此篇......
  • 记一次 iPhone 美区购买代理软件
    代理软件(都需要美区)参见iPhone软件整理机场名称简介Glados老牌的提供商Speeds99没用过自建机场利用Cloudflare搭建,见个人博客美区礼品卡购买教程注册一个美区AppleID账号进AppleID官网修改为免税区,第一步设置好则无需修改打开支付宝,切换地......
  • iPhone 16外观设计图曝光:重回iPhone X时代
    爆料人MajinBu在社交平台上曝光了iPhone16系列标准版设计图,有设计师依据设计图绘制了iPhone16渲染图。iPhone16最大变化是回归了iPhoneX时代的竖排双摄设计风格,提供了多彩配色,两颗摄像头分别是主摄和超广角。业内人士指出,iPhone16和iPhone16Plus之所以采用竖排双摄,是为......