zoukankan      html  css  js  c++  java
  • NOIP刷题Day1

    p1262 间谍网络

     分析:

     已知部分间谍收买的花费和间谍的编号求最少花费

     1.对于这种关系可能存在回路(环)所以缩一下点求一下强联通分量

     2.对新图判断一下又无可能全部收买只需要判断一下入度为0点是否可以收买

     3.若可以收买(tarjan时求出每个强连通分量的最小花费作为缩点后的新花费)sum求所有入度为0的点和

    P2294 [HNOI2005]狡猾的商人

      好题。。。并查集。。差分约束

     分析:

     一、加权并查集

      对于每次新加入i->j月账目之和可看做i->j之间的关系

      同时并查集加权动态维护前缀和若产生冲突输出false

     二、差分约束(spfa)

      对于每次加入的关系i->j建立正向边,j->i建立反向边;

      spfa不断更新min若出现负环即产生冲突输出false

    树形DP进阶:

     一、树形背包DP:

       P2014 选课https://www.luogu.org/problem/show?pid=2014

      分析:   

      1. 经典树形DP但需+背包思想。

      2.对于每节课均有一个限制条件(也能没有),我们可以以每个无限制的点为根结点建立一棵树,但是可能出现多棵树的情况

       因而我们可以建立一个虚拟节点(n+1)连接所有入度为一的点这样就转化为一棵树的DP问题,

      3.我们设状态f[u][v]表示在u节点容量为v的背包所能获得的最大价值

       所以 f[u][v]=max(f[u][v],son's f[u][k]+f[v][v-k]);    容量为v(包含当前节点)减去为儿子所留空间k并由儿子v的状态转移

       初始化为f[u][1]=w[u];但要注意我们新增加了一个虚拟节点这个节点在任何情况下都要选所以最终答案是f[n+1][m+1] 

     二、tarjan+树形DP

      P2515 [HAOI2010]软件安装

       1.缩一下点在进行树形

       2.DP注意状态设计和缩点时的处理

        

        

      

     

  • 相关阅读:
    Linux下的 .o、.a、.so文件
    第三章、主机规划与磁盘分区
    debian linux中文桌面系统安装
    C++开源库,欢迎补充。
    C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编号)
    C# CPU,硬盘,mac地址灯本地信息查询
    打造属于自己的支持版本迭代的Asp.Net Web Api Route
    PreApplicationStartMethodAttribute的使用
    Web Api in Orchard
    Dependency Injection in ASP.NET Web API 2 Using Unity
  • 原文地址:https://www.cnblogs.com/KVMX/p/7679340.html
Copyright © 2011-2022 走看看