博客
关于我
P2016 战略游戏(树形dp)
阅读量:414 次
发布时间:2019-03-05

本文共 2248 字,大约阅读时间需要 7 分钟。

????????????????????????????????????????????????????????????????????

????

?????????????????????????

  • ???????????????????????
  • ???????????????????DFS?????????????????????????
  • ?????????
    • f[u][0] ???? u ??????????????????
    • f[u][1] ???? u ?????????????????
  • ??????????????????????????????????????????????????????????????????????????????????
  • ???????????????????????
  • ????

    #include 
    #include
    using namespace std;int n;int adj[20000];int parent[20000];int children[20000][20000];int f[20000][2];void add_edge(int u, int v) { adj[u].push_back(v); adj[v].push_back(u);}void dfs(int u, int p) { parent[u] = p; for (int v : adj[u]) { if (v != p) { children[u].push_back(v); dfs(v, u); } }}int main() { cin >> n; adj.resize(n); for (int i = 0; i < n; ++i) { adj[i].clear(); } for (int i = 0; i < n; ++i) { int k, x1; cin >> x1 >> k; for (int j = 0; j < k; ++j) { int y1; cin >> y1; add_edge(x1, y1); } } parent[0] = -1; children[0].clear(); dfs(0, -1); for (int u = 0; u < n; ++u) { f[u][0] = 0; f[u][1] = 0; } stack
    stack; stack.push(0); bool visited[20000]; visited[0] = true; while (!stack.empty()) { int u = stack.top(); stack.pop(); vector
    child_indices; for (size_t i = 0; i < children[u].size(); ++i) { if (!visited[children[u][i]]) { child_indices.push_back(i); } } for (size_t i = 0; i < child_indices.size(); ++i) { int v = children[u][child_indices[i]]; if (!visited[v]) { visited[v] = true; stack.push(v); } } for (size_t i = 0; i < children[u].size(); ++i) { int v = children[u][i]; if (!visited[v]) { f[u][0] = f[v][1]; f[u][1] += f[v][0]; } } } int result = min(f[0][0], f[0][1]); cout << result << endl;}

    ????

  • ??????????????????????????
  • DFS????????????????????
  • ?????????????????????
  • ????????????????????????????????????????
  • ????????????????
  • ??????????????????????????????????

    转载地址:http://egpzz.baihongyu.com/

    你可能感兴趣的文章
    Postman 内置的动态变量
    查看>>
    Qt开发——QProgressBar/QProgressDialog进度条
    查看>>
    Postman 汉化(Postman中文版)
    查看>>
    Postman+Newman+Git+Jenkins实现接口自动化测试持续集成
    查看>>
    Qt布局管理详解(5种布局控件)
    查看>>
    Qt工程转化为Vs工程
    查看>>
    postman之参数化详解
    查看>>
    QT实现TCPServer连接多个客户端(附完整源码)
    查看>>
    Postman做接口测试:如何自动校验接口响应
    查看>>
    postman做接口自动化测试
    查看>>
    Postman入门到入土
    查看>>
    Postman入门到精通01
    查看>>
    postman入门基础 —— 接口测试流程
    查看>>
    Postman如何做接口测试:如何导入 swagger 接口文档
    查看>>
    Postman如何做接口测试:如何导入 swagger 接口文档
    查看>>
    Qlik助力新西兰最大私人医院提高病患护理水平
    查看>>
    Postman如何生成接口文档
    查看>>
    Postman学习之常用断言
    查看>>
    postman导入curl内容
    查看>>
    postman居然是用electron开发的,我们来认识下这个框架吧
    查看>>