HDU - 3917(朴素LIS + 最大流)】的更多相关文章

题意: 求出所有的最长上升子序列的个数且每个元素只能用一次 解析: 呵...呵...呵..呵..emm... 再见 我死了...wa了15发之后...原来不能用~  要用 != EOF 这题算水题吧...emm.... #include <iostream> #include <cstdio> #include <sstream> #include <cstring> #include <map> #include <cctype>…
题目地址:HDU 3917 这题简直神题意... 题目本身就非常难看懂不说..即使看懂了.也对这题意的逻辑感到无语...无论了.. 就依照那题意上说的做吧... 题意:给你n个城市,m个公司.若干条可能要建设的道路,每条有向道路须要花费,还有负责建设这条道路的公司编号,假设要建设ab道路.那么负责这条道路的公司须要建设完它负责的全部道路.并且对负责道路bx(x随意)的公司相同要求,以此类推. 每一个公司还要交税.问最多能收多少税. 依照题意来的话.相当于某些公司对某些公司有依赖性.终于的利润==…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4240 A city is made up exclusively of one-way steets.each street in the city has a capacity,which is the minimum of the capcities of the streets along that route. The redundancy ratio from point A to poi…
http://acm.hdu.edu.cn/showproblem.php?pid=3564 题意 给出1~n的插入顺序,要求每次插入之后的LIS 分析 首先用线段树还原出最终序列.因为插入的顺序是按1-n的顺序插入的,我们还原位置后,直接对位置进行求LIS,即为当前数的LIS.这里根据数据是从小到大插入的性质,用了比较巧妙的解法.先把每个数的位置保存起来,从小到大遍历,二分查找当前数据的位置处在已求出的LIS中的位置,比较长度后更新,再加入这个数据的位置,因为数据是从小到大的. #includ…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5988 题目大意: 给定n个点,m条有向边,每个点是一个吃饭的地方,每个人一盒饭.每个点有S个人,有B盒饭.每条边只能被走c次,每条边上都有电线,第一个人通过的时候,不会破坏电线,从第二个人开始,每次都有概率p破坏掉电线.使得每个人都能吃饭,求最小破坏电线的概率. 解题思路: 题目要求我们求最小破坏电线的概率,就是一个最小乘积问题,加上log可以将其转变为加法,那样就可以使用费用刘来解决了. 按以下方…
HDU 2883 kebab 题目链接 题意:有一个烧烤机,每次最多能烤 m 块肉.如今有 n 个人来买烤肉,每一个人到达时间为 si.离开时间为 ei,点的烤肉数量为 ci,每一个烤肉所需烘烤时间为 di.注意一个烤肉能够切成几份来烤 思路:把区间每一个点存起来排序后.得到最多2 * n - 1个区间,这些就表示几个互相不干扰的时间,每一个时间内仅仅可能有一个任务器做.这样建模就简单了.源点连向汇点,容量为任务须要总时间,区间连向汇点,容量为区间长度.然后每一个任务假设包括了某个区间,之间就连…
最大流的第一道题,刚开始学这玩意儿,感觉好难啊!哎····· 希望慢慢地能够理解一点吧! #include<stdio.h> #include<string.h> #include<queue> using namespace std; #define inf 1000000 #define min(a,b) a<b?a:b int map[210][210],pre[210],maxf[210]; int n,m; int bfs()//搜索,截止找不到增广路…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4240 思路:题意真的有点难理解:在城市A->B之间通过所有路径一小时之内能通过最大的车辆(Maxflow)/所有边上通过最大车流量(cap)的那条叫做redundancy ratio.最小的redundancy ratio是前者最大的车流量的那一条(cap),问minimum redundancy ratio是多少. 其实就是跑一次最大流,每当找到一条增广路时,记录此时的cap,然后取最大的就行了.…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3599 思路:首先spfa求一下最短路,然后对于满足最短路上的边(dist[v]==dist[u]+w)加入到新图中来,边容量为1,最后求出的最大流就是没有相交的边的最短路径条数. #include<iostream> #include<cstdio> #include<string> #include<algorithm> #include<vector&…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4067 思路:很神奇的建图,参考大牛的: 如果人为添加t->s的边,那么图中所有顶点要满足的条件都是一样的了,我们以此为目的来建图. 对于每条边,我们只有两种操作,要么保留要么删除,那么先假设两种操作都能满足条件,我们就可以选择花费小的操作来执行,最后再根据实际情况调整.首先不加入任何边,在添加或删除(不加入)边的过程中,对每个顶点v记录in[v]为其当前入度,out[v]为其出度,sum为当前的总花…