摘要: 题意: R×C的网格中有N个点,选取其中的若干行和若干列将这些点全部覆盖(选取一行/列可以覆盖该行/列的所有点,要求每个点至少被覆盖一次)。 选取第i行的代价为r[i],选取第i列的代价为c[i],求代价乘积的最小值。 R, C, N≤50,r[i], c[i]均为≥1.0的正实数。 转化成最小割问 阅读全文
posted @ 2018-04-12 21:32 Onlynagesha 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给定长为N的序列a[1..N]和T次询问,每次询问指定一个子段a[L..R],设某个数v在该子段中出现k(v)次,那么该次询问的结果为Σv*k(v)*k(v)。 N,T≤2e5,1≤a[i]≤1e6。 莫队算法初次听起来可能感觉很神奇,不过原理和实现方法都很简单。这里有篇很不错的英文讲解 阅读全文
posted @ 2018-04-11 17:44 Onlynagesha 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 推荐这位大牛的博文,讲得很清晰易懂:http://www.cnblogs.com/zinthos/p/3899565.html 节点个数很多时似乎用new动态开内存的方法会显著变慢,节点个数较少时倒没啥感觉。 实现代码: 阅读全文
posted @ 2018-04-11 16:25 Onlynagesha 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 题解详见洛谷题解区。这里直接放代码了。 关于实现的几点心得: (1)用虚拟节点nil代替空指针NULL/nullptr,对nil的任何操作都不会影响实际节点,从而避免了大量的判断空指针的过程。 (2)善用throw和<stdexcept>查错。 (3)下放标记时只需保证从根节点到目标节点依次处理一遍 阅读全文
posted @ 2018-04-10 17:19 Onlynagesha 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 题解参见罗穗骞的论文《后缀数组——处理字符串的有力工具》。 最近开始重拾一些重点算法,比如网络流,强连通分量,还有后缀数组(字符串和数论相关一直都是弱项)。 阅读全文
posted @ 2018-04-05 11:18 Onlynagesha 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.patest.cn/contests/gplt/L3-009 这道题拖了好久才AC掉。之前想的好几种贪心思路都是错的,不过也能拿26分。(测试点分值的分布好诡异……) 错误的贪心思路之一:从右往左处理时,只考虑上一个监视点。可以构造出这样一个反例: 蓝色的点不能被左 阅读全文
posted @ 2018-03-29 20:12 Onlynagesha 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 技巧1:封装一个能进行越界检查的Array类 C/C++中数组越界是一件很让人头疼的事。内置的数组类型不进行越界检查,而越界后的行为是未定义的。这就导致有时候程序的行为极其诡异,程序员却迟迟定位不了bug的位置。 C++11提供的std::array类提供了at()成员函数,该函数会在下标越界时抛出 阅读全文
posted @ 2018-03-25 17:26 Onlynagesha 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数。例如,整数1,2,4,6等都是反质数。 现在给定一个数N,你能求出不超过N的最大的反质数么? N<=2e9。 (暴力出奇迹(´థ౪థ)σ) 阅读全文
posted @ 2018-03-16 18:54 Onlynagesha 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 定义“可堆序列”为:可以用该序列的所有元素组成一个小根堆(父子节点的值可以相同),其中父节点在原序列中的位置一定在子节点之前。 给定一个长为N的序列,将它划分成最少的“可堆序列”,并输出任意一种划分方案。 N<=1e5,所有测试点的N之和<=2e6。 利用贪心的思路,假如前K-1个节点已 阅读全文
posted @ 2018-03-12 07:51 Onlynagesha 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 题目集链接:https://www.patest.cn/contests/gplt 2018年的天梯赛,鄙人很不幸成为了我们队的拖油瓶(手动笑哭 2018年的真题(19~21题)以后会更新……吧…… 天梯赛的一点个人经(jiao)验(xun): 该比赛没有罚时,而且测试点分值的分布极其诡异(经常是第 阅读全文
posted @ 2018-03-08 11:02 Onlynagesha 阅读(3037) 评论(1) 推荐(0) 编辑
摘要: 题目大意: 输入年、月、日、星期、小时、分钟、秒,以及所处的时区,要求将其转换成UTC+3时区内的时间。 浑身都是坑的模拟题。 ①题目没有说是单组还是多组数据(其他OJ上的版本是多组数据),保险起见建议处理到EOF。 ②"Year: Set by two or four decimal digits 阅读全文
posted @ 2018-02-22 20:13 Onlynagesha 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 有N对男女参加一场婚礼。其中一对是新郎和新娘(也就是本次婚礼的主角),其他N-1对都是已婚的夫妇。 设X为0 ~ N-1之间的整数,用Xh和Xw表示一对男女,Xh为男性,Xw为女性。特别地,0h和0w表示新郎和新娘。 这些人中有M对婚外情关系(也就是原文的adulterous relat 阅读全文
posted @ 2018-02-22 19:16 Onlynagesha 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给定一个含N个点、M条边的有向图,求其中有多少个点,可以由其他任意一点出发到达它? N<=1e4,M<=5e4。 为了描述和编程简便,我们建立原图的反图,这样问题转化为:有多少个点满足从它出发可以到达其他任意一点。 若无特殊说明,以下所指的图均为反图。 引理1:满足条件的所有点必然在同一 阅读全文
posted @ 2018-02-20 23:06 Onlynagesha 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个N个点、M条边的无向带权图,边的权值均为正整数。若要使它变成非连通图,需要移除的边总权值最小是多少? N≤500,图中不存在自环,但可能有重边(这里题意没交代清楚)。 Stoer-Wagner算法裸题。英文维基:https://en.wikipedia.org/wiki/Stoer 阅读全文
posted @ 2018-02-19 15:19 Onlynagesha 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给定一个N个点,M条边的无向连通图(可能有重边),要求让任意两点间都有两条或以上的路径,且这些路径没有公共边。问至少需要加多少条边? N<=5e3,M<=1e4。 求双连通分量并缩点。详见:https://www.cnblogs.com/frog112111/p/3367039.html 阅读全文
posted @ 2018-02-18 12:04 Onlynagesha 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给定一个N个点、M条边的无向图Graph,以及从点1开始进行DFS形成的树Tree,定义"T-Simple Circle"为Graph中的环,要求其中只含一条不属于Tree的边。 将Graph中的一些边进行染色,使得其中每个T-simple Circle都至少包含一条被染色的边,求最少需 阅读全文
posted @ 2018-02-14 17:17 Onlynagesha 阅读(427) 评论(0) 推荐(0) 编辑