zoukankan      html  css  js  c++  java
  • luogu P1270 "访问"美术馆

    传送门

    比较奇怪的树形背包

    首先需要处理读入的问题 这题史诗递归读入

    然后递归读入就不用建图

    这题特点是只有叶子有价值 所以背包就不太有用

    坑点就是这个人进去还得出来...

    而且不能把时间都用完(导致75)

    Time cost: 35min

    Code:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #include<cmath>
     5 #include<queue>
     6 #define ms(a,b) memset(a,b,sizeof a)
     7 #define rep(i,a,n) for(int i = a;i <= n;i++)
     8 #define per(i,n,a) for(int i = n;i >= a;i--)
     9 #define inf 2147483647
    10 using namespace std;
    11 typedef long long ll;
    12 typedef double D;
    13 #define eps 1e-8
    14 ll read() {
    15     ll as = 0,fu = 1;
    16     char c = getchar();
    17     while(c < '0' || c > '9') {
    18         if(c == '-') fu = -1;
    19         c = getchar();
    20     }
    21     while(c >= '0' && c <= '9') {
    22         as = as * 10 + c - '0';
    23         c = getchar();
    24     }
    25     return as * fu;
    26 }
    27 //head
    28 const int N = 1005;
    29 int n,V;
    30 struct node {
    31     int val,cst;
    32 }p[N<<4];
    33 int dp[N][N];
    34 
    35 #define ls x<<1
    36 #define rs x<<1|1
    37 void input(int x) {
    38     p[x].cst = read() << 1,p[x].val = read();
    39     if(!p[x].val) input(ls),input(rs);
    40 }
    41 
    42 int dfs(int x,int tot) {
    43     if(!tot) return 0;
    44     if(dp[x][tot]) return dp[x][tot];
    45     //sn
    46     if(p[x].val) return dp[x][tot] = min(p[x].val,(tot - p[x].cst) / 5);
    47     //pa
    48     rep(k,0,tot - p[x].cst)
    49         dp[x][tot] = max(dp[x][tot],dfs(ls,k) + dfs(rs,tot - p[x].cst - k));
    50     return dp[x][tot];
    51 }
    52 
    53 int main() {
    54     int V = read() - 1;
    55     input(1);
    56     printf("%d
    ",dfs(1,V));
    57     return 0;
    58 }
    View Code

     

    > 别忘了 总有人在等着你
  • 相关阅读:
    python中对一个列表进行乱序
    GPU比CPU慢?可能模型太简单
    VLAN之间单臂路由通信
    数据结构_顺序栈的代码实践
    MarkDown语法学习
    【转载】给想要入门渗透的人的忠告——schiz0wcingU
    SQL注入原理及绕过安全狗
    Python学习---字符串处理
    【转载】RAID写惩罚(Write Penalty)与IOPS计算
    Kali安装使用文泉驿字体
  • 原文地址:https://www.cnblogs.com/yuyanjiaB/p/9901122.html
Copyright © 2011-2022 走看看