03 2015 档案
摘要:大白例题P356 你在一座城市里负责一个大型活动的接待工作。你需要去送m个人从出发地到目的地,已知每个人的出发时间出发地点,和目的地点,你的任务是用尽量少的出租车送他们,使得每次出租车接客人,至少能提前一分钟达到他所在的位置,城市为网格 (x1,y1) ===>(x2,y2) 需要|x1-x2|+|...
阅读全文
摘要:这题大白书例题 :Frank 是一个思想有些保守的高中老师,有一次,他需要带一些学生出去旅行,但又怕其中一些学生在旅途中萌生爱意。为了降低这种事情的发生概率,他决定确保带出去的任意两个学生至少要满足下面4条中的一条 1 身高相差大于40 2 性别相同 3 最喜欢的音乐属于不同的类型 4 ...
阅读全文
摘要:说的是给了n个立方体,立方体从1标号到n,每个立方体上有一个数字, 你有 k 个机会 使得其中 k个数位他们自己的阶乘,(自然使用可以少于k次机会,每个立方体最多被使用1次) ,那么求出你从这n个立方体重选出任意个立方体使得 他们的和为Sn 2 #include 3 #include 4 #in...
阅读全文
摘要:大白书355 1 // UVa11419 SAM I AM 2 // Rujia Liu 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 const int maxn = 1000 + 5; //...
阅读全文
摘要:这题说的给了n个点m条边要求保证是一个有向无环图,可以删除至多k条边使得这个图的拓扑序的字典序最大,我们知道如果我们要排一个点的时候一定要考虑比他大的点是否可以、通过拆边马上拆出来,如果可以拆当然是拆,肯定保证字典序最大,如果不能拆,就不拆留着以后拆,当初这个比他大的点度数小于k的,最大是多少,这个...
阅读全文
摘要:这题说的是给了一个矩阵,必须让.连接起来的图形变成矩形,2000*2000的矩形,那么我们就可以知道了,只要是存在一个有点的区域应该尽量将他削为矩形,那么将这个图形进行缩放,最后我们知道只要存在一个2*2 的矩形中有1个是*就必须将这个*号去掉。 采用bfs去做 1 #include 2 #inc...
阅读全文
摘要:给定一个n*n矩阵,每个格子里都有一个正整数w(i,j)。你的任务是给每行确定一个整数row(i),没列也确定一个正整数col(i),使得对于任意格子(i,j),w(i,j) =W[i][j], 且KM使得 Lx[i]+Ly[i]==W[i][j],那么可以转化为KM来计算。每个row[i] 为Lx...
阅读全文
摘要:这题给了n个白点和n个黑点坐标,计算出他们两两配对的总路程最少,我们算出他们之间的距离,为d,然后 w[j][i]=-d; 就将求最小值转化为求最大值,然后采用km进行匹配计算 1 #include 2 #include 3 #include 4 #include 5 #include 6...
阅读全文
摘要:大白书P248有证明,此处贴出两种复杂度的方案,n^4大白书P350n^3 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 /* KM算法 7 * 复杂度O(nx*nx*ny) 8 * 求最大权匹配 9...
阅读全文
摘要:这题说的需要最多花费cost元来搭建一个比赛网络,网络中有n台机器,编号为0 - n-1其中机器0 为服务器,给了n条线有向的和他们的花费以及带宽 计算,使得n台连接在一起,最大化网络中的最小带宽, 我们二分答案,然后使用朱刘算法 计算最小花费必须 2 #include 3 #include ...
阅读全文
摘要:源自大白书题意 有n座城市通过m条双向道路相连,每条道路都有一个危险系数。你的任务是回答若干个询问,每个询问包含一个起点s和一个终点t,要求找到一条从s到t的路,使得途径所有的边的大最大危险系数最小。解: 首先求出最小生成树,并把它改写成有根树,让fa[i]和cost[i]分别表示节点i的父亲编号和...
阅读全文
摘要:这题说的是给了n个点 和m条边, 这m条边是无向的,任务是将这些边变成有向的,并且添加最少的有向边使得这个图中每个点的入度为偶数, 出度为偶数。我们可以考虑使用欧拉回路来解决这个问题,这样说,假如一个图如果满足欧拉回路,那么 a b c d a , a - > b d 2 #include 3 ...
阅读全文
摘要:这题说的是n个城市 建路 使他们联通然后 , 可以使用一条超级的路这条路不计入总长,此时路长度为B, 这条路链接的两个城市人口与和为A+B, 然后计算出最大的A/B解题 先生成一颗最小生成树,然后 计算出这颗树上每两个节点之间要经过的最长的那条路,然后枚举每两个节点u 个v 求出答案 1 #incl...
阅读全文
摘要:出处 http://blog.csdn.net/wsniyufang/article/details/6747406 1 /* 2 最小树形图图模版-朱刘算法 3 模版说明:点标号必须0-(N-1) 4 必须去除到自身的点(到自身的边的边权赋无限大) 5 */ 6 #define ...
阅读全文
摘要:这题说的是给了n个位置 在x轴上 每个位置有一个权值为wi,然后将|xi - xj|>=wi+wj ,满足这个条件的点建一条边,计算着整张图中有多少多少个点构成的子图,使得这个子图的节点数尽量的大,这个式子进行转变 我们可以知道离i这个点为wi+xi xi-wi 范围内的点都是不可以的,那么我们就将...
阅读全文
摘要:大白书 P341这题说的是给了NT种飞机票,给了价钱和整个途径,给了nI条要旅游的路线。使用飞机票都必须从头第一站开始坐,可以再这个路径上的任何一点下飞机一但下飞机了就不能再上飞机,只能重新买票,对于每张票使用的状态有经过了这个路途的前i个点使用它,那么点就有,n*len(n为城市编号,为旅途所经过...
阅读全文
摘要:这题说的是给了n道题每道题用时ti分钟,需要在Li 时间或者之后完成,得分为vi, 我们 首先必须要能过完成,尽量让L-t小的放在前面。然后采用背包去做#include #include #include #include #include using namespace std;const int...
阅读全文
摘要:就是以那个ai为分水岭,左边和右边都分别是单调增或单调减如图 就这四种情况,其中头两种总共就是两个序列,也就是从头到尾递增和从头到尾递减。 后两种方式就是把序列中德数分为左右两派,分完以后左右两边各自内部的排法就已经确定了,至于ai早就确定了(不是全局最大就是全局最小),而除了ai的每一个数都有选择
阅读全文
摘要:http://972169909-qq-com.iteye.com/blog/1185527第一:感觉难点在于建图第二:①:对于差分不等式,a - b = c ,建一条 b 到 a 的权值为 c 的边,求的是最长路,得到的是最小值③:存在负环的话是无解④:求不出最短路(dist[ ]没有得到更新)的...
阅读全文
摘要:给定一一个n个点m条边的加权有向图, 平均值最小的回路。二分答案,对于每个二分的mid 做一次Bellman-Fprd , 假设有k条边组成的回路。 回路上各条边的权值为 w1 , w2 ..wk ,那么平均值小于mid意味着w1+w2+w3..+wk 2 #include 3 #includ...
阅读全文
摘要:这题说的是x[1]+x[2]+x[3]+…+x[n]=n, 这里0 #include #include #include using namespace std;typedef long long LL;const int maxn = 50010;const int maxm =321;int d...
阅读全文
摘要:这题说的给了一个整数n 和一串的括号, 那么要我们计算 最后有n/2对括号的 方案数有多少。我们可以先预先判断一些不可能组成正确括号对的情况,然后我们可以将这个问题转化到二维平面上, 令 m = n/2 ,L 为左括号的个数 R为右括号的个数 可以知道还有 m - L 个左括号没用, 有m-R个右括...
阅读全文
摘要:做题的时候忘了 数据结构老师说的hash表了, 用二分找,还好过了, hash 表 对这题 更快一些 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 const int maxn...
阅读全文
摘要:21:49:452015-03-09传送http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1478这题说的是运送货物需要交纳过路费。进入一个村庄需要交纳1个单位...
阅读全文
摘要:大白书P330 这题比较麻烦给出一个n个节点m条边的无向图,每条边上有一个正权。令c等于每对节点的最短路长度之和。例n=3时, c = d(1,1)+d(1,2)+d(1,3)+d(2,1)+d(2,2)+d(2,3)+d(3,1)+d(3,2)+d(3,3);要求删除一条边后使得新的c值c‘最大。...
阅读全文
摘要:大白书P330#include #include #include #include #include #include using namespace std;const int maxn = 1000+10;const int INF = 1000000000;struct Edge{ int...
阅读全文
摘要:机场快线是市民从市内去机场的首选交通工具。机场快线分为经济线和商业线两种,线路、速度和价格都不同,你有一张商业线车票,可以坐一站商业线,而其他时候,只能乘坐经济线。假设换乘时间忽略不计,你的任务是找一条去机场最快的路线。这样我们先从起点开始做一次dijkstra 然后在从终点开始做一次dijkstr...
阅读全文
摘要:题意在大白书上。有3 种工作 abc 大于等于平均年龄的可以去做a c 工作, 小于平均年龄的可以去做 bc , 同样转化为2 -sat 去做, 因为对于每个人也只有2 种情况可以作为选择#include #include #include #include #include using names...
阅读全文
摘要:题意大白书二分答案,然后对于每个可能的答案,跑一遍2-SAT就好了。#include #include #include #include #include using namespace std;const int maxn=2000+10;struct TwoSAT{ int n; ve...
阅读全文
摘要:大白书P322 , 一个有向图在添加至少的边使得整个图变成强连通图, 是计算整个图有a个点没有 入度, b 个点没有出度, 答案为 max(a,b) ; 至今不知所云。(求教)#include #include #include #include #include using namespace s...
阅读全文
摘要:给一张有向图G, 求一个结点数最大的结点集,使得该结点集中任意两个结点u和v满足,要么u可以到达v, 要么v可以到达u(u和v相互可达也可以)。因为整张图可能存在环路,所以不好使用dp直接做,先采用有向图的强连通分量,进行缩点,然后得到一个有向无环图(DAG) 在采用记忆话dp 去做即可#inclu...
阅读全文
摘要:大白书 P314#include #include #include #include #include #include #include using namespace std;typedef long long LL;struct Edge{int u,v; };const int maxn ...
阅读全文
摘要:具体题解看大白书P316#include #include #include #include #include #include using namespace std;struct Edge{int u,v;};const int maxn = 1000+10;int pre[maxn],isc...
阅读全文