树形+背包 奇奇怪怪的dp。

考试的时候费了半天劲把题读完后思路基本正解,

然而也不知道为什么脑子鬼畜了一下打了个非递归建树?

而且链式前向星建边?

岔路口和藏品都搞成节点?

自己给自己找麻烦Orz。

于是输入爆炸,无法调试。

比较简便的打法是把权值左右儿子几个藏品各多少钱都塞到结构体里,一边建树一遍跑dp(在每个馆里跑背包然后把儿子的价值树形dp到根);

然而还是有很多坑点

所以恐怖如斯如机房里的各路大神仍然没有超过40分的:

边权*2因为要逃跑;

时限-1因为要逃跑;

玄妙的数组大小;

Return见祖宗 ;

#include<cstdio>
#include<iostream>
using namespace std;
typedef long long ll;
int tl;
int f[1010][1010];
struct item
{
int dis;
int bny;
int lc,rc;
int vl[45],fee[45];
}e[610];
void build(int r)
{
scanf("%d%d",&e[r].dis,&e[r].bny);
e[r].dis*=2;
if(!e[r].bny)
{
e[r].lc=r*2;build(r*2);
e[r].rc=r*2+1;build(r*2+1);
for(int i=e[r].dis;i<=tl;i++)
for(int j=0;j<=i-e[r].dis;j++)f[r][i]=max(f[r][i],f[e[r].lc][j]+f[e[r].rc][i-j-e[r].dis]);
}
else
{
for(int i=1;i<=e[r].bny;i++)
scanf("%d%d",&e[r].vl[i],&e[r].fee[i]);
for(int i=1;i<=e[r].bny;i++)
for(int j=tl;j>=e[r].fee[i];j--)
if(j-e[r].fee[i]>=e[r].dis)
f[r][j]=max(f[r][j],f[r][j-e[r].fee[i]]+e[r].vl[i]);
return ;
}
}
int main()
{
scanf("%d",&tl);
tl--;
build(1);
cout<<f[1][tl]<<endl;
return 0;
}

Steal 偷天换日 题解(From luoguBlog)的更多相关文章

  1. [Jxoi2012]奇怪的道路 题解(From luoguBlog)

    题面 状压好题 1<= n <= 30, 0 <= m <= 30, 1 <= K <= 8 这美妙的范围非状压莫属 理所当然地,0和1代表度的奇偶 dp[i][j ...

  2. Hotel 旅馆 题解(From luoguBlog)

    考试前深陷分块泥潭所以刚开始以为是分块. 然而这题数据水到暴力卡常都能AC 正解:万物皆可线段树 节点存储区间长度.区间最长连续空房长度.从左往右最长连续空房长度.从右往左最长连续空房长度. 维护后三 ...

  3. Match 基因匹配 题解(From luoguBlog)

    N<=20000!N2的LCS要原地爆炸. 去您妈的优化考场上有分就行TLE60真香嘿嘿嘿 然而这显然是个板子只不过像我这样见识短浅的蒟蒻不知道罢了 正解: 某大佬的博客 转化为lis后二分 复 ...

  4. 题解 P3258 【[JLOI2014]松鼠的新家】(From luoguBlog)

    唯一能得分的题也被自己搞炸了,好的. 考场上读完题基本认定和lca脱不了干系,想了一会确认是树剖. 那么问题来了,考前一节课刚发现自己之前打的树剖是错的. 而且就算是错的我也没信心考场调出来. 于是打 ...

  5. 题解 P2605 【[ZJOI2010]基站选址】(From luoguBlog)

    线段树优化dp 数组f[i][j]表示在前i个村庄内,第j个基站建在i处的最小费用 根据交线牛逼法和王鹤松式可得方程 f[i][j]=min(f[k][j−1]+cost(k,i)) cost(k,i ...

  6. 偷天换日:网络劫持,网页js被伪装替换。

    偷天换日 3月12号石家庄一个客户(后面简称乙方)有几家门店,平台收银(web)有一些功能无法正常使用,平台有上千家门店在使用,到目前为止别的省份都没有此问题.远程协助发现,js日期控件无法正常调用, ...

  7. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  8. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  9. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

随机推荐

  1. pyenv-virtualenv环境搭建

    搞了个新服务器,搭个python环境 安装pyenv 直接上懒人脚本,不怕麻烦想手动装的就麻烦您自己查吧~ curl -L https://raw.githubusercontent.com/yyuu ...

  2. MyBatis 3实现时间段精确的查询(转)

    效果如下: 说明: 时间范围的查询会存在以下问题: 1.如果单纯采用年月日的形式会出现缺少最后一点的数据,比如要查询2015-09-16到2015-09-17,那么2015-09-17 01:00:0 ...

  3. linux 内核视频-英本网

    01.Linux内核学习入门        http://v.youku.com/v_show/id_XNjc1NzEzODAw.html02.Linux内核介绍            http:// ...

  4. PHP array_diff_ukey()

    定义和用法 array_diff_ukey() 返回一个数组,该数组包括了所有出现在 array1 中但是未出现在任何其它参数数组中的键名的值.注意关联关系保留不变.与 array_diff() 不同 ...

  5. D. Multiplication Table 二分查找

    刚做这道题根本没想到二分,最关键是没想出来怎样统计在这个矩阵中比一个数小的有几个怎么算.造成自己想了好久最后看了别人的提示才做出来.哎.好久不做题太弱了 #include<iostream> ...

  6. [Angular] Using ngTemplateOutlet to create dynamic template

    I can use <tamplete> syntax and a entry component as a container to create a dynamic component ...

  7. [Fri 26 Jun 2015 ~ Thu 2 Jul 2015] Deep Learning in arxiv

    Natural Neural Networks Google DeepMind又一神作 Projected Natural Gradient Descent algorithm (PRONG) bet ...

  8. javascript 获取当前对象

    <a href="dsfjlsdjf" onclick="testGet()"> 请教编写testGet()函数获取这个超链接href属性,限制例如 ...

  9. C语言函数--H

    函数名: harderr 功 能: 建立一个硬件错误处理程序 用 法: void harderr(int (*fptr)()); 程序例: /*This program will trap disk ...

  10. 安卓Recovery模式该怎么用?【转】

    本文转载自:http://android.baike.com/article-109914.html 安卓系统出了名的刷机刷机再刷机,说起刷机就不能不谈Recovery模式,这项刷机过程中最重要的一到 ...