2023-07-15力扣每日一题

链接:

1377. T 秒后青蛙的位置

题意:

一个n节点无向树,遍号1到n,青蛙从顶点1开始**(第0秒在顶点1)**

每过一秒:

青蛙等概率跳到该节点的子节点,如果该节点没有子节点则原地不动

只跳子节点或者留在原地,即题目中的不跳回访问过的节点

解:

n才100,数据贼小,纯纯的模拟,感觉不太像困难题~~(膨胀)~~

实际代码:

#include
#include
using namespace std;
void check(vector& tree)//即使检查 
{
    cout<<"===checking==="<>& edges, int t, int target)
{
    vectortree(n+1,0.0L);tree[1]=1;//存储概率状态 
    vector>e (n+1,vector());//更改边存储结构 
    vectorbook(n+1,false);book[1]=true;//访问记录 
    for(auto edge:edges)//调整层次结构 
    {
        e[edge[0]].push_back(edge[1]);//无向 
        e[edge[1]].push_back(edge[0]);
        //cout<now = {1};//i秒时的点集 
    for(int i=1;i<=t;i++)
    {
        vectortemp;//临时点集 
        for(auto point:now)
        {
            int lg=e[point].size();
            for(auto p:e[point]) if(book[p])lg--;//叶子结点数量 
            for(auto p:e[point])//遍历-相邻-结点 
            {
                if(book[p]) continue;//跳过已访问 
                //cout<<"update"<>n;
    vector> edges;
    for(int i=1;itemp;
        int a,b;cin>>a>>b;
        temp.push_back(a);
        temp.push_back(b);
        edges.push_back(temp);
    }
    int t,target;cin>>t>>target;
    
    double ans=frogPosition(n,edges,t,target);
    cout<

限制:

  • 1 <= n <= 100
  • edges.length == n - 1
  • edges[i].length == 2
  • 1 <= ai, bi <= n
  • 1 <= t <= 50
  • 1 <= target <= n

你可能感兴趣的:(力扣每日一题,leetcode,算法)