摘要:
题意:给一个序列,找出1个连续子序列,将其平分成前,中,后等长的3段子序列,要求【前】和【中】是回文,【中】和【后】是回文。求3段最长为多少?由于平分的关系,所以答案应该是3的倍数。思路:先Manacher求最长子串,利用期间所记录的P 数组,穷举一下所有可能的前两串,再用O(1)时间判断第3串... 阅读全文
摘要:
题意: 有n个蚂蚁n棵树,蚂蚁与树要配对,在配对成功的一对之间连一条线段,要求所有线段不能相交。按顺序输出蚂蚁所匹配的树。思路: 这个题目真是技巧啊,不能用贪心来为每个蚂蚁选择最近的树,这样很可能是相交了的。 整体最优能让每条线段不相交,证明: 假设a1-b1与a2-b2相交。则dis(a1... 阅读全文
摘要:
KM算法大概过程: (1)初始化Lx数组为该boy的一条权值最大的出边。初始化Ly数组为 0。 (2)对于每个boy,用DFS为其找到一个girl对象,顺路记录下S和T集,并更新每个girl的slack值。若不能为其找到对象,则转3。 (3)找出非T集合的girl的最小slack值为d,更... 阅读全文
摘要:
题意: 给n个点编号为0~n-1,0号点为根,给m条边(含自环,重边),每条边有个代价,也有带宽。给定c,问代价不超过c,树形图的最小带宽的最大值能达到多少?思路: 点数才60,而带宽范围也不大,可以进行二分穷举最小带宽,将小于穷举值的边“禁用”,进行求树形图!只要能求得树形图,说明带宽还能继续... 阅读全文
摘要:
题意: n个城市,m条路,每条路有个危险值,要使得从s走到t的危险值最小。回答q个询问,每个询问有s和t,要求输出从s到t最小的危险值。(5万个点,10万条边)思路: 其实要求的是任意点对之间的最小瓶颈路的权值。 先对图求一次MST,那么所有的瓶颈路都在上面。但是q0)16 ... 阅读全文
摘要:
题意:ZJiaQ希望把木人桩摆在自家的那个由1*1的地砖铺成的1*n的院子里。由于ZJiaQ是个强迫症,所以他要把一个木人桩正好摆在一个地砖上,由于木人桩手比较长,所以两个木人桩之间地砖必须大于等于两个,现在ZJiaQ想知道在至少摆放一个木人桩的情况下,有多少种摆法。思路:题意类似于“要求找到所有满... 阅读全文
摘要:
题意: 秦始皇要在n个城市之间修路,而徐福声可以用法术位秦始皇免费修1条路,每个城市还有人口数,现要求徐福声所修之路的两城市的人口数之和A尽量大,而使n个城市互通需要修的路长B尽量短,从而使得A/B最大。问A/B最大是多少?(1000个城市)思路: 老徐可免费修得1条路,那么剩下最多也只需要修n... 阅读全文
摘要:
题意:求解最小生成树,以及最小瓶颈生成树上的瓶颈边。思路:只是求最小生成树即可。瓶颈边就是生成树上权值最大的那条边。 1 //#include 2 #include 3 #include 4 #include 5 #include 6 #define INF 0x7f7f7f7f 7 #d... 阅读全文
摘要:
题意:Bessie要从牧场1到达各大牧场去,他从不关心他要走多远,他只关心他的水袋够不够水,他可以在任意牧场补给水,问他走完各大牧场,最多的一次需要多少带多少单位的水?思路:其实就是要让所带的水尽量少,即所选的每条路都要尽量短,即最小瓶颈生成树。其实也就是最小生成树。再求生成树上权值最大的边即可。 ... 阅读全文
摘要:
题意:给定一个含n个元素的序列,求下式子的结果。S(i,j)表示为seq[i...j]之和。注:对于log20可视为1。数据量n 2 #define INF 0x7f7f7f7f 3 #define pii pair 4 #define LL long long 5 using namespace ... 阅读全文