【JZOJ3861】【JSOI2014】支线剧情2

2024-02-27 01:20

本文主要是介绍【JZOJ3861】【JSOI2014】支线剧情2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Description

这里写图片描述

Data Constraint

这里写图片描述

Solution

这是一道树形dp的题。虽然我到死也没想出来……
我们设出f[x][0..1]。f[x][0]表示当前以x为根的子树全不放存档点的代价。f[x][1]表示当前以x为根的子树放了存档点的代价。f[x][0]的转移显然,我们来想想怎么转移f[x][1]。以x为根的子树若放了存档点,有3种情况:
1、当前的x的直接儿子y,假如它也放了存档点,那么就有f[y][1]+deep[y],即重新从1走到y,存个档后往下走。deep[y]表示从1走到y的代价。
2、当前的x的直接儿子y,假如它没放了存档点,而x放了存档点,那么就有f[y][0]+size[y]*value[t],即每次从x存档点往下走到y,那么x到y的边则走了size[y]次。size[y]表示以y为根的子树的叶子节点,value[t]表示x到y的边权。
3、当前的x的直接儿子y,假设y之前的x的直接儿子都不放存档点,而x放了存档点,y也放了存档点,那么就有k+f[y][1]+value[t]。因为y之前的x的直接儿子都不放存档点,而x,y放了存档点,那么直接从x往下走一个格直接存档就好了。k表示y之前的x的直接儿子的f[y’][0]的和。

Code

#include<iostream>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
const ll maxn=1e6+5;
ll first[maxn],last[maxn],next[maxn],f[maxn][2],value[maxn],size[maxn],deep[maxn];
ll n,i,t,j,k,l,x,y,z,num;
void lian(ll x,ll y,ll z){
    last[++num]=y;next[num]=first[x];first[x]=num;value[num]=z;
}
void dg(int x){
    ll t,k=0,l=0;
    if (!first[x]) size[x]++;
    for (t=first[x];t;t=next[t]){
        deep[last[t]]=deep[x]+value[t];dg(last[t]);
        size[x]+=size[last[t]];
        f[x][0]+=f[last[t]][0]+size[last[t]]*value[t];
        f[x][1]=min(f[x][1]+min(f[last[t]][1]+deep[last[t]],f[last[t]][0]+size[last[t]]*value[t]),k+f[last[t]][1]+value[t]);
        k+=f[last[t]][0]+size[last[t]]*value[t];
    }
    f[x][1]=min(f[x][0],f[x][1]);
}
int main(){
//  freopen("data.in","r",stdin);
    scanf("%lld",&n);
    for (i=1;i<=n;i++){
        scanf("%lld",&t);
        for (j=1;j<=t;j++)
            scanf("%lld%lld",&x,&y),lian(i,x,y);
    }
    dg(1);
    printf("%lld\n",f[1][1]);
}

这篇关于【JZOJ3861】【JSOI2014】支线剧情2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/750775

相关文章

开学季必看!这5部国漫剧情爽翻了!

转眼又到了开学季,相信很多朋友还没有适应紧张的学习生活,这时候看国漫放松就是一个很好的选择了。今天就给大家推荐5部最近热播的国漫,每部的剧情都能戳中你的爽点,下面就一起来看看吧! 《斗罗大陆2绝世唐门》 看点:魔法校园 纯爱高甜 改编自唐家三少的同名小说,由玄机科技制作,讲述霍雨浩等新一代史莱克七怪的成长故事。相信很多学生党都追过斗罗大陆动画第一部,唐三小舞可谓国漫顶流的男神

《黑神话:悟空》专题合集MOD/修改器/壁纸/音乐/CG剧情

《黑神话:悟空》专题合集」 链接:https://pan.quark.cn/s/d67857f4e308 包含内容: 《黑神话:悟空》MOD合集 《黑神话:悟空》修改器(风灵月影) 《黑神话:悟空》壁纸合集 《黑神话:悟空》3小时CG完整剧情合集 4K120帧最高画质!国语 简中字幕 附:4K 结尾动画合集 ​​​国语 简中字幕 《黑神话:悟空》主题曲 《黑神话

github有趣项目:renpy自制“剧情游戏”

之前的剧情游戏《完蛋!我被美女包围了》很是火热,一度登上Steam热销榜第一。Ren’Py(https://github.com/renpy/renpy) 是一个可视小说引擎,可以快速方便的制作类似剧情游戏。它是一个免费的游戏引擎,支持多端运行打包。支持3D镜头移动(是对于二维堆叠图像的,好像还不支持三维模型),Live2D等功能。支持的音频格式:Opus、Ogg Vorbis、MP3、MP2、F

利用GPT撰写游戏剧情:从灵感到成品的详细指南

游戏剧情是游戏体验中至关重要的一部分,一个引人入胜的故事可以让玩家沉浸在游戏世界中,提升游戏的整体吸引力和粘性。GPT(生成预训练变换器)作为一种先进的AI工具,可以显著提高游戏剧情创作的效率和质量。本文将详细介绍如何利用GPT撰写游戏剧情,从灵感捕捉到最终成品的全过程,帮助你打造出令人难忘的游戏故事。 1. 灵感捕捉与初步构思 寻找灵感 灵感是撰写优秀游戏剧情的起点。灵感可以来自许多来源,

力扣LCP 08.剧情触发时间

力扣LCP 08.剧情触发时间 前缀和 + 二分 对increase求前缀和 在前缀和数组上做二分 找到符合要求的最小时间 class Solution {public:vector<int> getTriggerTime(vector<vector<int>>& increase, vector<vector<int>>& requirements) {//第一维increase.si

流放之路 剧情 第八章

第八章 奇迹之墙 剧毒管道 德瑞的污水坑 →巨型锅炉 → 下水道出口 中转码头 中转码头 合成图 稻穗之门 帝国平原 日曜神殿第一层 日曜神殿第二层 月色回廊 古兵工厂 贵族花园 只有一条路 到头就是BOSS房间 月影广场 月影神殿一层 月影神殿二层 港湾大桥就一条路 中间BOSS房

流放之路 剧情 第七章

第七章 河畔断桥 危机叉路 堕道遗迹 寂静陵墓 1. 寂静陵墓 2. 罪孽之殿第一层 马雷格罗的藏身处 罪孽之殿第二层 兽穴 灰原 北部密林 1. 北部密林 2. 惊魂树洞 堤道 1. 堤道 2. 瓦尔古城 坠欲之殿1层 1. 2. 下楼梯 不是第二层 坠欲之殿2层 1. 坠欲之殿2层 2.下楼梯

流放之路 剧情 第六章

第六章 暮光海滩 海潮孤岛 炙热盐沼 卡鲁要塞 寂默山岭 禁灵之狱下层 薛朗之塔 一、二层 薛朗之塔 三、四层 监狱大门 ??密林 河道 湿地 南部密林 怨忿之窟深处 孤岛灯塔 惊海之王的海礁

流放之路 剧情 第四章

第四章 水道遗迹 一条路 干涸湖岸 漆黑矿坑 漆黑矿坑第二层 水晶矿脉 冈姆的幻境 愤怒之眼 冈姆的堡垒 1. 冈姆的堡垒 2. 德瑞索的幻境 欲望之眼 大竞技场 再有两个小地图到boss 一条路。 完成这个任务才开启 巨兽沼泽 巨兽沼泽第一层 巨兽沼泽第二层 育灵之室 奥瑞亚之道

流放之路 剧情 第三章

第三章 萨恩城废墟 贫民窟 火葬场 下水道 市集地带 激战广场 日曜神殿一层 日曜神殿第二层 不朽海港 乌旗守卫兵营 皇家花园 月影神殿第一层 沿着红地毯只有 一条路走 月影神殿第二层 1. 月影神殿第二层 2. 神权之塔第一层 神权之塔第二层 神权之塔三层 神权之塔第四层 神权之塔第五层 神权之塔第六层