假设圣诞树从1层到n层的排列形式是类似于一张链状的图,那么在其边缘衍生出的若干条指向下层某元素的边与链状图就组成了一张有向无环图(只能指向一个元素且下层元素不可指向上层)。对每个点进行记忆化搜索(状态转移:现在的值加上以下所连接的值),再取最大值即可。

//#include<pch.h>
#include <iostream>
#include <cstdio>
#include <bits/stdc++.h>
#include <map>
#include <algorithm>
#include <stack>
#include <iomanip>
#include <cstring>
#include <cmath>
#define DETERMINATION main
#define lldin(a) scanf_s("%lld", &a)
#define println(a) printf("%lld\n", a)
#define reset(a, b) memset(a, b, sizeof(a))
const int INF = 0x3f3f3f3f;
using namespace std;
const double PI = acos(-1);
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
const int mod = 1000000007;
const int tool_const = 19991126;
const int tool_const2 = 2000;
inline ll lldcin()
{ll tmp = 0, si = 1;char c;c = getchar();while (c > '9' || c < '0'){if (c == '-')si = -1;c = getchar();}while (c >= '0' && c <= '9'){tmp = tmp * 10 + c - '0';c = getchar();}return si * tmp;
}
///Untersee Boot IXD2(1942)
/**Although there will be many obstructs ahead,
the desire for victory still fills you with determination..**/
/**Last Remote**/
ll rel[200][200],gifts[200],dp[200];
bool vis[2000];
string tmp;
void deal(ll index)//处理读入的数据
{ll cnt = 0,tmp2=0;tmp += " ";for (int i = 0; tmp[i]; i++){if (tmp[i] == ' '){if (cnt == 0)gifts[index] = tmp2;elserel[index][tmp2] = 1;tmp2 = 0;cnt++;}elsetmp2 = tmp2 * 10 + (tmp[i] - '0');}
}
ll dfs(ll current,ll lim)//记忆化搜索
{ll &tmp5 = dp[current];if (vis[current])return tmp5;else{vis[current] = 1;for (int i = 1; i <= lim; i++){if (rel[current][i]){tmp5 = max(tmp5, dfs(i, lim)+gifts[current]);//状态转移方程//cout << tmp5 << endl;}}return tmp5;}
}
int DETERMINATION()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);ll n;cin >> n;cin.get();for (int i = 1; i <= n; i++){getline(cin, tmp);deal(i);tmp = "";}/*for (int i = 1; i <= n; i++)cout << gifts[i] << " ";cout << endl;for (int i = 1; i <= n; i++){for (int j = 1; j <= n; j++){cout << rel[i][j] << " ";}cout << endl;}*/for (int i = 1; i <= n; i++)dp[i] = gifts[i];ll ans = -1;for (int i = 1; i <= n; i++)ans = max(ans, dfs(i, n));cout << ans << endl;return 0;
}

UPC 圣诞树(DAG模型)相关推荐

  1. UVA103 dp基础题,DAG模型

    1.UVA103 嵌套n维空间 DAG模型记忆化搜索,或者 最长上升子序列. 2.dp[i]=max( dp[j]+1),(第i个小于第j个) (1) //DAG模型记忆化搜索 #include< ...

  2. (dag模型+最长路+字典序)嵌套矩形

    题目: 有 n 个矩形,每个矩形可以用两个整数 a, b 描述,表示它的长和宽.矩形 X(a, b) 可以嵌套在矩形 Y(c, d) 中当且仅当 a<c, b<d,或者 b<c, a ...

  3. css圣诞树 立体模型

    <!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8&qu ...

  4. 从Storm到Flink:大数据处理的开源系统及编程模型(文末福利)

    本文节选自CCF大数据教材系列丛书之<大数据处理>,本书由华中科技大学金海教授主编,包括大数据处理基础技术.大数据处理编程与典型应用处理.大数据处理系统与优化三个方面.本教材以大数据处理编 ...

  5. 从Storm到Flink:大数据处理的开源系统及编程模型

    开源系统及编程模型基于流计算的基本模型,当前已有各式各样的分布式流处理系统被开发出来.本节将对当前开源分布式流处理系统中三个最典型的代表性的系统:Apache Storm,Spark Streamin ...

  6. 区块链 Fisco bcos 智能合约(19)-区块链性能腾飞:基于DAG的并行交易执行引擎PTE

    在区块链世界中,交易是组成事务的基本单元. 交易吞吐量很大程度上能限制或拓宽区块链业务的适用场景,愈高的吞吐量,意味着区块链能够支持愈广的适用范围和愈大的用户规模. 当前,反映交易吞吐量的TPS(Tr ...

  7. 一文读懂Data Lake的概念、特征、架构与案例

    本文包括七个小节: 1.什么是数据湖: 2.数据湖的基本特征: 3.数据湖基本架构: 4.各厂商的数据湖解决方案: 5.典型的数据湖应用场景: 6.数据湖建设的基本过程: 7.总结.受限于个人水平,谬 ...

  8. Spark的协同过滤.Vs.Hadoop MR

    基于物品的协同过滤推荐算法案例在TDW Spark与MapReudce上的实现对比,相比于MapReduce,TDW Spark执行时间减少了66%,计算成本降低了40%. 原文链接:http://w ...

  9. codeforce gym 100548H The Problem to Make You Happy

    题意: Alice和Bob在一个有向图上玩游戏,每个人各自操作一个棋子,如果两个棋子走到一个点上,判定Bob输:如果轮到任何一方走时,无法移动棋子,判定该方输 现在Bob先走,要求判断胜负 题解 模型 ...

最新文章

  1. 速度前瞻运动控制c语言程序_整合实时运动控制及多颗相机连接,大幅提升光学影像检测速度...
  2. (花里胡哨)New Game!(牛客国庆集训派对Day1)
  3. document.write() 和writeln()方法注意事项
  4. php rc5,ThinkPHP 6.0 RC5 发布,多应用模式独立及中间件机制调整
  5. [UE4]图片按钮设置技巧
  6. 《长安十二时辰》带来的启示:行走江湖,数据泄露怎能不防?
  7. android 多媒体相册,朵朵多媒体相册免费版
  8. git使用puttygen生成公钥私钥
  9. 2019年上半年软件设计师上午试题及答案
  10. ERP实用技巧:物料清单编制------(转)
  11. css3动画按钮_CSS3的动画按钮
  12. 你不知道的网站图片存储格式-base64
  13. vs2012中将图片放到resource中进行调用
  14. eureka访问出现红色字体:THE SELF PRESERVATION MODE IS TURNED OFF
  15. UBI,MTD(Memory Technology Device),raw flash,emmc,Flash,Block Device
  16. PROE产品设计:20个机械设计知识点
  17. odoo----权限机制
  18. Linux服务器知识梳理
  19. swift 百度地图加载与百度地图电子围栏加载
  20. DeepLearningToolBox学习——NN(neural network)

热门文章

  1. C++ OpenCV 图像拼接融合
  2. 移动APP开发之技术选择
  3. pageable设置size_SpringdDataJpa如何创建一个不分页,但是排序的pageable
  4. C#海康威视SDK 2.0下载图片时遇到的问题
  5. Kali Linux mdk3WiFi洪水攻击 攻击路由器 生成虚假WiFi WiFi身份验证攻击可使连接WiFi的手机掉线重连抓包
  6. Typora + PicGo + Gitee 搭建图床
  7. 最常见的家居风水问题点评
  8. 定义一个数组,获取数组中的最大值和最小值
  9. python士兵突击_03_士兵开火
  10. 解决Ubuntu与Virtualbox虚拟机共享文件夹无权限的问题(保姆级)