题意:求个树形依赖背包 思路:对于环用tarjan缩点即可。 c++ include using namespace std; const int maxn = 2010; struct edge{ int to; int nxt; }edge[maxn]; int w[maxn]; int v[m ...
分类:
其他好文 时间:
2018-08-04 20:25:22
阅读次数:
148
tarjan缩点后,第一问答案显然是入度为零的点得个数第二问:考虑到 没有入度或出度为0的点 的图强连通, 所以答案就是max{入度为零的个数,出度为零的个数} (把出度为零的连到入度为零的点,然后剩下为零的随便连一连就可以) ...
分类:
Web程序 时间:
2018-08-02 23:07:40
阅读次数:
227
tarjan缩点,然后按照拓扑序,做1号点能到达的点的答案具体做法是对每个点记一个min[i],max[i],vis[i]和ans[i]做拓扑序的时候,假设在从u点开始做,有边u到v,如果vis[u]=1,则则 vis[v]=1(初始时vis[bel[1]]=1); 更新在v点及以前买进的最小进价: ...
分类:
其他好文 时间:
2018-08-02 23:02:50
阅读次数:
224
题意:给一个有向图,问要从0号点能到达所有点所需要经过路径的最小权值和是多少,然而,若两点强联通,则这两点互相到达不需要花费。保证0号点能到达所有点 tarjan缩点以后直接取每个点入边中花费最小的即可。 ...
分类:
其他好文 时间:
2018-08-02 22:50:15
阅读次数:
134
题目链接:http://codeforces.com/contest/999/problem/E 题目: 题意:给你n个城市,m条单向边,问你需要加多少条边才能使得从首都s出发能到达任意一个城市。 思路:tarjan缩点,结果就是缩点新建的图中入度为0的点的数量。 代码实现如下: ...
题目背景 原《工资》重题请做2397 题目描述 我国的离婚率连续7年上升,今年的头两季,平均每天有近5000对夫妇离婚,大城市的离婚率上升最快,有研究婚姻问题的专家认为,是与简化离婚手续有关。 25岁的姗姗和男友谈恋爱半年就结婚,结婚不到两个月就离婚,是典型的“闪婚闪离”例子,而离婚的导火线是两个人 ...
分类:
其他好文 时间:
2018-07-10 23:41:20
阅读次数:
233
//tarjan 缩点 //把强连通分量染成同样的颜色 用数组记录一下强连通分量内所有点权和 #include #include #include #include #include #include using namespace std; int n,m,cnt,ans,head[10001];... ...
分类:
其他好文 时间:
2018-07-08 17:18:07
阅读次数:
131
首先转换图论模型,把某个客户一个终端的维修时间(+1)%h之后和另一个终端维修时间一样,这样的两个终端连一条有向边,表示推后一个终端就必须推后另一个 然后tarjan缩点,一个scc里的终端是要一起推迟的,scc内点数为新图点权 根据贪心的思想,在缩完点的DAG里,一定是出度为0的点能获得更小的值, ...
分类:
其他好文 时间:
2018-07-07 23:55:57
阅读次数:
231
tarjan缩点:口胡过好多题,不过从来没写过…… 什么是tarjan缩点 在搞清楚tarjan缩点之前,当然要先明白它是干什么用的。 ...
分类:
其他好文 时间:
2018-07-03 21:40:38
阅读次数:
209
2-SAT算法流程 1.建立选择边 2.tarjan缩点(同一块内必然同时选择),判断是否存在可行解(若存在一对对立点{2*i,2*i-1}在同一块内,则不可行) 3.把缩点后的块之间建立反向选择边,并传递不选择命令(code中用op[ ]数组记录) 4.按照拓扑序找到一为选择的点(块),标为选择, ...
分类:
其他好文 时间:
2018-07-03 11:48:27
阅读次数:
189