上一页 1 ··· 8 9 10 11 12
摘要: 题意:有k个挤奶器,c头牛..每个挤奶器和每头牛之间都有特定的距离..k个挤奶器的位置用1~k的编号表示..奶牛的位置用k+1~k+c表示每个挤奶器每天最多为m头牛挤奶..求安排每头牛到挤奶器前的最大距离的最小值..思路:先用floyd求出每头牛到每台挤奶器的最短距离..然后用二分判断最大距离最小值是多少..check()函数就是根据按距离建图后这个网络流的最大流==牛的头数其中建图先建一个超级源点..作为每头牛的前驱..他们的流量为1..然后建一个超级汇点..作为每台挤奶器的后继..他们的流量为m..如果由floyd求出的最短距离 >= 二分假设的最大距离最小值x..就连线..然后根据 阅读全文
posted @ 2012-08-06 16:49 Griselda. 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 主要是两种贪心+二分的方法..可以看作是入门题..牛..题意:输入:L(河的长度l) N(河上有n个石子) M(可以移动的最多的石子数m)往下n行表示河上的石子离左河岸的距离输出:所有 移动了m个石子后最短距离 的最大值..思想..其实牛可以跳的距离就在最大就是河的长度..所以可以用二分的方法看看小于河的长度内可以跳的最大长度..***贪心通常用一个check()函数来判断***check()判断每一个點到上一个點的距离是否小于假定的最短距离的最大值..如果是就count加1..如果不是就把上一个點的坐标替换成当前點坐标..最后判断是不是在m内..*********************** 阅读全文
posted @ 2012-07-13 22:11 Griselda. 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 呃~一开始写了邻接矩阵的~结果mle了~后来改成了邻接表的~结果tle了~然后就用快排做了~~但是程大学长说用堆排序~wulala~看着很麻烦吖~暂时放着~~输入T<T组样例..>输入n个點+m条边..输入n个點的价值..输入m条边<u起点v终点 w (u, v)的权值..>其实最重要就是求单源最短路径了..用邻接表可以解决点太多的问题..用堆排序或优先队列可以解决 tle的问题..AC代码<邻接表_优先排列>..View Code 1 #include <stdio.h> 2 #include <cstring> 3 #includ 阅读全文
posted @ 2012-05-23 21:41 Griselda. 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 前几天刚学了dp..wa了几次才ac了那道题..是学校oj上的1004..上网查资料时看到了从上到下和从下到上两种方法..今天发现了一道类似的题..<1038>鉴于上次是从上到下..这回就写了个从下到上的~很lucky的一次就ac了~郁闷了一早上的心情也好了~所以我兴高采烈地在这里写一个类解题报告..以此记念我的第一次独立成功ac一道dp题~虽然它很基础..绪论..dp是动态规划..百度百科上的解释是:把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法。用我的理解就是先解决当前小问题..从而解决大问题..基本要素是:①.最优子结构 阅读全文
posted @ 2012-02-05 17:03 Griselda. 阅读(171) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12