首页 > 其他分享 >D. Sasha and a Walk in the City

D. Sasha and a Walk in the City

时间:2024-07-19 21:45:32浏览次数:13  
标签:City Walk tem int Sasha next now 节点 dp

原题链接

题意

树中任意一条路径上黑色点的数量不超过两个,请问存在多少种树

分析

先随便找一个节点作为根节点,然后分类讨论

假如根到叶子节点的路径上有两个黑色节点,则不能再添加其他点了

如果根到叶子节点的路径上有一个黑色节点,则可以还可以在不在这条路径上的地方放黑色节点

在弄清楚规则后,就可以用dp了(真是万能啊,完全没有要用dp的intuition)

其实dp只能算一种主动运用的方法,当后者于前者有继承关系时,就可以用了,状态的设计也是很巧妙

code

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll mod=998244353;

int dp[300005][3]={0};
vector<int> G[300005];

void dfs(int now,int fa)
{
    dp[now][0]=1;
    dp[now][2]=0;

    int tem=1;
    for(auto next:G[now])
    {
        if(next==fa) continue;

        dfs(next,now);
        tem*=(1+dp[next][1]);
        dp[now][2]+=dp[next][2]+dp[next][1];
    }
    dp[now][1]=tem;
}

void solve()
{
    int n;
    cin>>n;

    for(int i=1;i<n;i++)
    {
        int x,y;

        cin>>x>>y;

        G[x].push_back(y);
        G[y].push_back(x);
    }

    dfs(1,1);

    cout<<dp[1][1]+dp[1][2]+1<<'\n';

    for(int i=1;i<=n;i++) G[i].clear();
}
int main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int t=1;
    cin>>t;
    while(t--) solve();
    return 0;
}

标签:City,Walk,tem,int,Sasha,next,now,节点,dp
From: https://www.cnblogs.com/pure4knowledge/p/18312419

相关文章

  • 关于centos 7安装binwalk的过程中产生的问题
    啊,kali机坏了,又安的centoso(╥﹏╥)o但是centos没有binwalk,它也不能像kali机一样之间install又在网上搜教程https://blog.csdn.net/qq_59344199/article/details/128022680第一步就出问题了再搜https://www.cnblogs.com/beimengRock/p/16026236.html#:~:text=在Linux下用sud......
  • Ingress Nginx集成进Skywalking
    注:本文使用的环境为:k3sversionv1.29.5+k3s1IngressNginxcontrollerv1.10.1Skywalking9.7.0-066457bskywalking-nginx-luav0.6.0  本文假设你已经在ingress-nginx命名空间下安装部署了IngressNginxcontroller方案  在介绍方案之前,我们先了解一下相关的背......
  • 高德解析城市的分析,根据高德的经纬度获取城市cityCode
    高德解析城市的分析,根据高德的经纬度获取城市cityCode高德解析城市的分析,根据高德的经纬度获取城市cityCodehttp://restapi.amap.com/v3/geocode/regeo?output=json&location=110.517039,18.817948&key=替换成自己的高德KEY&extensions=base1.高德返回城市(正常情况)江苏省南......
  • 「杂题乱刷2」CF1015D Walking Between Houses
    duel到的。题目链接CF1015DWalkingBetweenHouses解题思路一道细节题。思路很简单,肯定是一开始能走的越多越好,因此就有一种较好实现的方案,先每次走\(n-1\)格,但由于每次至少要走一格,因此如果不够走了就把能走的都走掉,之后全走\(1\)步即可。时间复杂度\(O(k)\)。参......
  • WAIC 2024,好city啊!
    7月4日,“以共商促共享•以善治促善智”为主题的2024世界人工智能大会暨人工智能全球治理高/级别会议(简称“WAIC2024”)在上海举办。天翼云携智算创新成果精彩亮相世博展览馆,全方位展现在人工智能领域的深厚实力。 智算领航,引领科技新方向AI时代,“云智一体”已成为行业共识,在“......
  • 使用Spring Boot集成SkyWalking监控
    使用SpringBoot集成SkyWalking监控大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在微服务架构中,监控和追踪系统的运行状况至关重要。ApacheSkyWalking是一款强大的APM(应用性能监控)工具,能够帮助我们实时监控和分析微服务的性能。本文将介绍如何在Spri......
  • Snow Walking Robot 的题解
    题目大意给你一个机器人和机器人的\(n\)个运动,要求你在给出的运动路径的基础上设计一种不会走重复的路径的方法,注意只能减少原来的步数而不能增加,其中\(1\len\le10^5\)。思路因为这道题目可以自由的配置路径并且要求机器人在最后回到原来的位置,那么就应该要到一种适合所有......
  • 夏日狂欢,铁威马众多惊喜福利来袭,这很city!
    随着618的尾声悄然落下你是否还在为错失的优惠而扼腕叹息?但请放下遗憾,精彩从未真正落幕。铁威马夏日狂欢季正是为你量身打造的专属福利时刻众多优惠活动接踵而至往下看⬇惊喜福利层出不穷快来参与吧~  以旧换新,焕新升级想要换新机的朋友们,铁威马夏日狂欢季为你提......
  • 卫星网络——Walker星座简单介绍
    一、星座构型介绍        近年来,随着卫星应用领的不断拓展,许多任务已经无法单纯依靠单颗卫星来完成。与单个卫星相比,卫星星座的覆盖范围显著增加,合理的星座构型可以使其达到全球连续覆盖或全球多重连续覆盖,这样的特性使得在全球通信或导航飞行任务中有着独特的优势,其......
  • autoware.universe源码略读(3.5)--perception:compare_map_segmentation/crosswalk_tra
    autoware.universe源码略读3.5--perception:compare_map_segmentation/crosswalk_traffic_light_estimatorcompare_map_segmentationcompare_elevation_map_filter_nodedistance_based_compare_map_filter_nodeletvoxel_based_approximate_compare_map_filter_nodeletvox......