首页 > 其他分享 >7.20日

7.20日

时间:2023-07-20 14:13:33浏览次数:33  
标签:min int sum 7.20 dfs dp define

一、写了杭州电子科技大学的铜牌题,学了树形dp;

#include<bits/stdc++.h>
#define int long long
#define x first
#define y second
#define endl '\n'
#define pq priority_queue
using namespace std;
typedef pair<int,int> pii;

vector<int>e[400010];
int a[400010];
int dp[400010][3];//父亲,自己,儿子

void dfs(int u,int fu)
{
    dp[u][1]=a[u];
    int sum=0;
    for(auto t:e[u])
    {
        if(t==fu)continue;
        dfs(t,u);
        dp[u][1]+=min(min(dp[t][1],dp[t][2]),dp[t][0]);
        dp[u][0]+=min(dp[t][1],dp[t][2]);
        sum+=min(dp[t][1],dp[t][2]);
    }
    dp[u][2]=1e18;
    for(auto t:e[u])
    {
        dp[u][2]=min(dp[u][2],sum-min(dp[t][1],dp[t][2])+dp[t][1]);
    }
}

void solve()
{
    int n;cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i],dp[i][1]=dp[i][2]=dp[i][3]=0,e[i].clear();
    for(int i=1;i<n;i++)
    {
        int x,y;cin>>x>>y;
        e[x].push_back(y);
        e[y].push_back(x);
    }
    dfs(1,-1);
    cout<<min(dp[1][1],dp[1][2])<<endl;
}

signed main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int t;cin>>t;
    while(t--)
    {
        solve();
    }
    return 0;
}

 

二、刷科一题,明天考试。

三、看杭州电子科技大学二场多校,还有睿抗题解,整理错题。

四、有时间再学前端。

五、明天科一考试,下午牛客多校训练营,晚上打codeforces的div4竞赛。

标签:min,int,sum,7.20,dfs,dp,define
From: https://www.cnblogs.com/litianyu1969/p/17568206.html

相关文章

  • 在2023.7.20发生的一些事
    去Luogu交了一篇题解,其中关于有\(n\)层的满二叉树有一共有多少个节点的内容,一开始看错了写的是\(n^2\),审核打回说是\(2^n\),然后我又改成\(2^n\),结构审核又打回来说是\(2^n-1\)。虽然有我自己概念不清的原因在但是还是感觉有点无语(ˉ▽ˉ;).........
  • 【2023.07.20】成为渣男
    在约会了那么多女生后,我的内心逐渐趋向于平静,内心也不再痛苦了我对现在的女生是很失望的,好像每个人都是享乐主义我不是说享乐主义不好,但是她们给我的感受就是“这世上只有玩才是最重要的,抛弃了一切的责任和义务,只顾着自己开心就好”为什么失业了可以心安理得的啃老,为什么在花......
  • 集训游记 7.19-7.20 图论
    最小生成树MSTP5994[PA2014]Kuglarz考虑连边\(i,j\)表示花费代价知道区间\([i,j)\)的奇偶性.容易发现\(i,j\)联通就可以发现表示出\([i,j)\).考虑最终局面,一定要推出每个\([i,i+1)\)的奇偶性.要求每对\([i,i+1)\)联通.即整张图联通.最小生成树k条白边最小生成树......
  • Windows下MySQL 5.7.20的installer 模式安装
    一、安装Windows环境wrar_5.50.0.0_scp.exevcredist2013_x86.exeVC2015_x64.exeNDP452-KB2901907-x86-x64-AllOS-ENU.exeMicrosoft.NET4.0.zip二、installer模式安装MySQL         安装完成以后停止服务、改目录重新准备my.ini参数重新初......
  • 14.7.2014年41题真题讲解
    function.h////Createdby93757on2023/3/21.//#ifndefINC_1_TREE_FUNCTION_H#defineINC_1_TREE_FUNCTION_H#include<stdio.h>#include<stdlib.h>typedefintBiElemType;typedefstructBiTNode{BiElemTypeweight;//c就是书籍上的data......
  • MySQL 5.7.20 二进制版本的安装
    安装环境:数据库版本:5.7.20操作系统版本: CentOS7.9安装步骤:1.下载并上传MySQL软件到/server/tools[root@DB_MySQL~]#mkdir-p/s......
  • CentOS 7.4使用yum源安装MySQL 5.7.20
    CentOS7.4使用yum源安装MySQL5.7.20小牛教程 InnoDB存储引擎 2022年11月25日从CentOS7.0发布以来,yum源中开始使用Mariadb来代替MySQL的安装。即使你输入的是yumin......
  • MySQL 5.7.20详细安装教程(图文版)
    MySQL5.7.20详细安装教程(图文版)在自己在电脑上安装个MySQL的5.7.20版本,安装此版本主要是方便于平常使用。如图,选择自己电脑对应的版本进入官网进行下载。1、下载地址:My......