07 2014 档案

摘要:题意如上,含有重边(重边的话,俩个点就可以构成了边双连通)。先缩点成树,在求数的直径,最远的连起来,剩下边(桥)的自然最少。这里学习了树的直径求法:第一次选任意起点U,进行bfs,到达最远的一个点v(level最深)该点必然是树的直径的一个端点,,再从该点出发,bfs,到最深的一点,该点深度就是直径... 阅读全文
posted @ 2014-07-31 22:38 天羽屠龙舞 阅读(232) 评论(0) 推荐(0)
摘要:题意:根据题意建立模型:给一幅混合图,有些带边,求选取一些边,使得权值最大,而且保证每个点入度和出度都最多是1.开始的时候题意理解出错。思路:件二分图,最大权匹配,但是可以不是所有点都参与匹配,(都参与未必最大。因此,在费用流法基础上:每个X部点向汇点也有边即可。这样保证最大流为n,而且未必所有点都... 阅读全文
posted @ 2014-07-29 22:56 天羽屠龙舞 阅读(160) 评论(0) 推荐(0)
摘要:题意:2个人比赛,每场比赛有得分,每场每人派一支圣兽(brute ,字典翻译为畜生,感觉这里不太符╮(╯▽╰)╭),有攻击力和血条。。。一堆规则。。。合理安排,让1号人获得最大分数,并尽量不要改变原来出场顺序(1,2,3.。。n),并求出相似度(没改变的场数/n)思路:显然建二分图,赢的话就连负边,... 阅读全文
posted @ 2014-07-29 17:17 天羽屠龙舞 阅读(235) 评论(0) 推荐(0)
摘要:题意: 在一般费用流题目修改:路过某路,每x单位流量需要花费 ai*x^2(ai为给定的系数)。开始的的时候,一看只不过是最后统计费用上在修改罢了,一看样例,发现根本没那么简单(ps:以后每次敲代码前先看样例能不能过!),因为是成平方关系,每次一流量增广的话,下次未必最优!于是想到我每次只增长一个单... 阅读全文
posted @ 2014-07-29 10:32 天羽屠龙舞 阅读(176) 评论(0) 推荐(0)
摘要:题意:给一个方阵,求从左上角出到右下角(并返回到起点),经过每个点一次不重复,求最大获益(走到某处获得改点数值),下来时每次只能向右或向下,反之向上或向左。俩种解法:1 费用流法:思路转化:从左上角流出2的流量,(表示走俩条路),归于右下角,可以走就有边(右和下),权为负的费用,源点连起点,汇点连终... 阅读全文
posted @ 2014-07-28 19:45 天羽屠龙舞 阅读(179) 评论(0) 推荐(0)
摘要:哎╮(╯▽╰)╭,这是费用流基础题型,拆点,建二分图,跑最小费用最大流即可。若最大流为n,则说明是最大匹配为n,所有点都参与,每个点的入度和出度又是1,所以就是环。弱菜还需努力!#include#include#include#includeusing namespace std;const int... 阅读全文
posted @ 2014-07-28 14:40 天羽屠龙舞 阅读(143) 评论(0) 推荐(0)
摘要:题意:车从起点出发,每次只能行驶L长度,必需加油到满,每次只能去加油站或目的地方向,路过加油站就必需进去加油,问最小要路过几次加油站。开始时候直接建图,在范围内就有边1.跑最短了,再读题后发现,若几个点共线,且都在范围内,那么中间有点的俩头的点就不能有边,否则与条件相悖。关键是怎么用n^2*logn... 阅读全文
posted @ 2014-07-28 12:46 天羽屠龙舞 阅读(238) 评论(0) 推荐(0)
摘要:简单题,当时竟然没有敲出来╮(╯▽╰)╭。。。方法:每个时间点排序从小到大排序,之后扫一遍即可:是进的时间点就加人,反之出人。更新最大值即可。。。。囧。。。#include#include#include#include#include#include#includeusing namespace ... 阅读全文
posted @ 2014-07-28 12:33 天羽屠龙舞 阅读(136) 评论(0) 推荐(0)
摘要:题意: 安排一个序列,该序列每个数有俩个属性:t[i]、val[i]。计算一个点的价值:到目前为止的总时间*val[i].,,求 安排顺序后使得 计算所有点的价值之和最小。思路:对于任意相邻俩项,考虑他俩顺序对总体的影响:前面的和后面的必然不变,设 他俩为 i,j. 俩种情况作差得:t/val小,就... 阅读全文
posted @ 2014-07-27 15:18 天羽屠龙舞 阅读(147) 评论(0) 推荐(0)
摘要:开始的时候是暴力dfs+剪枝,怎么也不行。后来参考他人思想: 先求出每个点之间的最短路(这样预处理之后的搜索就可以判重返回了),截肢还是关键:1最优性剪枝(尽量最优:目前的状态+预计还有的最小时间>min就return !),2:可行性截肢:如果当前状态+预计状态已经不可行,return。(注意考... 阅读全文
posted @ 2014-07-27 11:46 天羽屠龙舞 阅读(170) 评论(0) 推荐(0)
摘要:题意:排序输出:在先满足定约束条件下(如 3必需在1前面,7必需在4前面),在满足:1尽量前,其次考虑2,依次。。。。。(即有次约束)。开始的时候,只用拓扑,然后每次在都可以选的时候,优先考虑小的,其实没什么简单,如 图(3-->1,2)这样输出是2.3.1,正确应该是 3 1 2,因为 1要尽量前... 阅读全文
posted @ 2014-07-26 16:36 天羽屠龙舞 阅读(132) 评论(0) 推荐(0)
摘要:简单题,公式计算+最短路。注意点:注意1 取模,2 数组开到n*n+n.#include#includeusing namespace std;long long x[1234567];long long y[1234567];long long z[1234567]; int c[1001][10... 阅读全文
posted @ 2014-07-26 13:18 天羽屠龙舞 阅读(123) 评论(0) 推荐(0)
摘要:n《=50W。(使用26个字母)构造方法:26个,最多构造出26^4种不同的串,长度最长是26^4+3,大于是输出“impossble”,用四维数组判重。每次向前构造一位(先从上一位字符后一个开始),这样,可以构造出26^4-25种,打印出来发现(bbbb~zzzz),构造不出来,于是,学习了他人方... 阅读全文
posted @ 2014-07-25 22:57 天羽屠龙舞 阅读(227) 评论(0) 推荐(0)
摘要:2014Multi-UniversityTrainingContest1--byFZU解题报告(2014-07-22 17:29:01)转载▼A.B.Jump最小K路径覆盖的模型,用费用流或者KM算法解决,构造二部图,X部有N*M个节点,源点向X部每个节点连一条边,流量1,费用0,Y部有N*M个节点... 阅读全文
posted @ 2014-07-24 20:01 天羽屠龙舞 阅读(258) 评论(0) 推荐(0)
摘要:题意: 一个数字矩阵,可以出发K次,每次可以从右边或者下面走,要求(在收益最大情况下)覆盖全图,不能则输出-1。(规则:每次跳一步的时候若格子数字相等则获得该数字的能量,每跳一步消耗距离的能量)。每个格子走且仅能走一次。选I`有边(1,-w_inf),这里的w_inf为相对大数,只要保证该费用较“小... 阅读全文
posted @ 2014-07-24 19:49 天羽屠龙舞 阅读(164) 评论(0) 推荐(0)
摘要:题意:与区间查询点更新,点有20W个,询问区间的最大值。曾经用线段树,1000+ms,今天的伸展树,890没ms,差不多。第一次学习伸展树,一共花了2个单位时间,感觉伸展树真很有用,也很好玩。现在只学了一点点。切个点更新试试。大致思路:用编号(数组)作为树的键值建树,每插一个数,沿路节点更新最大值(... 阅读全文
posted @ 2014-07-22 15:32 天羽屠龙舞 阅读(151) 评论(0) 推荐(0)
摘要:先说POJ3680:给n个有权(权开始流量为k,要求总权最大,即费用最大,所以费用取负,最小费用最大流即可。对于输入区间[a,b]:w,添加边:a-->b,流量为1,费用为-w。 对于点i,i+1,添加边,费用为0,流量无穷。显然这种处理,限制了区间最多取k次,(流量控制),跑最大流... 阅读全文
posted @ 2014-07-21 16:11 天羽屠龙舞 阅读(135) 评论(0) 推荐(0)
摘要:题意:给N个点,还有另外m个点(其中只能选K个),求最短路。思路:在SPFA的基础上,用一个数组来统计,在某点入队时(要拓展其他点了),若该点是m个点中的,则count【i】=原来的+1;若不是,则继承原来的。出队时候限制一下,若大于K了,就停止拓展。原题:目前在一个很大的平面房间里有 n 个无线路... 阅读全文
posted @ 2014-07-16 10:59 天羽屠龙舞 阅读(168) 评论(0) 推荐(0)
摘要:求1~n内所有数对(x,y),gcd(x,y)=质数,的对数。思路:用f[n]求出,含n的对数,最后用sum【n】求和。对于gcd(x,y)=a(设x#includeusing namespace std;const int maxx=100010;int mindiv[maxx+5],phi[ma... 阅读全文
posted @ 2014-07-13 10:35 天羽屠龙舞 阅读(323) 评论(0) 推荐(0)
摘要:求 n%1+n%2+n%3+n%4+.........n%n=,n=lasta){break;} //边界判断 long b=n/i; long a=n/(i+1)+1; BigInteger t... 阅读全文
posted @ 2014-07-13 08:52 天羽屠龙舞 阅读(184) 评论(0) 推荐(0)
摘要:汉诺塔VIII,在经典汉若塔问题上,问n个盘子的情况下,移动m次以后,是什么状态。(与第七代互为逆命题)我的思路:本质还是dfs,但是用m的值来指引方向,每搜一层确定第i个盘子在哪个塔,o(n)的算法,看图说明:#include#includeusing namespace std;char get... 阅读全文
posted @ 2014-07-10 19:54 天羽屠龙舞 阅读(290) 评论(0) 推荐(0)
摘要:汉诺塔II:(hdu1207)/先说汉若塔I(经典汉若塔问题),有三塔,A塔从小到大从上至下放有N个盘子,现在要搬到目标C上,规则小的必需放在大的上面,每次搬一个,求最小步数。这个问题简单,DP:a[n]=a[n-1]+1+a[n-1],先把上面的n-1个放在B上,把最大的放在目标C上,再把N-1个... 阅读全文
posted @ 2014-07-10 11:14 天羽屠龙舞 阅读(297) 评论(0) 推荐(0)
摘要:a,b题不说。c题思路是每次枚举俩个点,用半径R确定最大的圆(这样的圆有俩个,求圆心手算有点小麻烦),更新最大值,3次方的,100个点,不会超时。D题是枚举+贪心,所有物品一共只能是N+1种被拿的情况:要么全是用R(该位子是若用右手标记R,若用左手标记L):RRR...RRR,或者第一个物品用L:L... 阅读全文
posted @ 2014-07-09 16:53 天羽屠龙舞 阅读(187) 评论(0) 推荐(0)