随笔分类 -  OI

上一页 1 ··· 8 9 10 11 12 13 下一页
摘要:困扰了好久了这道题。 这道题我一开始就不懂。 距离为2?一个思路是必定有一个点可以中转! 还有,这道题是一棵树,讨论距离为2的点的可能性: 1. 互为爷孙关系。 2. 互为兄弟关系。 是的,就这两种。 爷孙关系的话,就直接拿它们的权值相乘。两个答案很容易维护。 重点在于兄弟关系。 对于最大值 显然, 阅读全文
posted @ 2018-07-27 00:24 Garen-Wang 阅读(185) 评论(0) 推荐(0)
摘要:语文神题。。。 翻题解才大概知道意思,题目就是不给你说清题意。 大意 现在给你$p$个点,其中与$s$个点相连无需费用。 然后要你连接起所有的点,求最优方案中需要的最大费用。 连接这$p$个点,当然是使用生成树$p 1$条边优。 更具体的是使用最小生成树,这样一定最优。 $s$个点相连无需费用,说白 阅读全文
posted @ 2018-07-27 00:05 Garen-Wang 阅读(222) 评论(0) 推荐(0)
摘要:MCMF的第一道非模板题,一脸懵逼。。。 其实这道题比较难用MCMF的思想想出,就算我做完也不怎么懂。 主要提示内容是主人公矛盾的心理,一个路程最短,一个周期最长。 况且题目所说的每一次周期,都相当于是一次从源点到汇点的增广。 其实每从源点到汇点走一遍,就是一个周期,这个题目其实没怎么细说。 那么用 阅读全文
posted @ 2018-07-25 23:50 Garen-Wang 阅读(156) 评论(0) 推荐(0)
摘要:第二个点想不出来。。。 题目给你一个有向图,然后问你两个问题: 1. 至少标记几个点,才能使所有点都被标记。 2. 还需要添加几条边,才能使整个图都连通。 其实像考tarjan的题目,大多都跟入度和出度相关联。就像那道“受崇拜的牛”。 直接用tarjan算法进行缩点,得到一个DAG。 有了一个DAG 阅读全文
posted @ 2018-07-25 23:32 Garen-Wang 阅读(144) 评论(0) 推荐(0)
摘要:拿分容易AC难。。。 ~~翻题解~~发现不用弄什么花里胡哨的dp,只要递推就可以了。 反正就只有一行,随便写写就能拿到90分。 但是题目有个没说的坑点,不过只坑了一个点,可以接受。 就是右边那一行,数字的取值范围从0到3。。。 我第一个数字没去判它是0的情况,结果就死了一个点。 实现过程只要首尾特判 阅读全文
posted @ 2018-07-25 15:38 Garen-Wang 阅读(142) 评论(0) 推荐(0)
摘要:真的不会dp。。 这道题就是求通过删除数字得到一个新序列,从而与(1, 2, 3, 4, ...)序列所能形成最多的匹配。 在题解翻到了两种做法: 1. 传统dp 设$dp[i][j]$为从原序列中的前$i$位取$j$个数所能形成的最多匹配。 注意:匹配的条件是$a[i]==j$,因为我们求的是新序 阅读全文
posted @ 2018-07-24 23:53 Garen-Wang 阅读(137) 评论(0) 推荐(0)
摘要:网络流快乐地跑。。。 这道题就是要求这个无向图的最小割。 根据最小割最大流定理,我们求个最大流就好了。 但是数据巨大。一百万个点,我们看上去就有2996001条边。 这个时候,如果按照网络流做法,建反向边的话,需要11984004条边,MLE。 其实我就没做过无向图的网络流。。。 结论:无向图网络流 阅读全文
posted @ 2018-07-24 21:47 Garen-Wang 阅读(180) 评论(0) 推荐(0)
摘要:这道水题水得有点吃力。。。 杨爷出的毒瘤数据。。。 首先是 非负权图 ,就用dijkstra。 边比较稀疏,用堆优化。 再打模板的时候发现问题: 在去出堆顶元素的时候,可能会出现重复节点。 重复节点使用一个done数组进行标记,如果不给的话会跑得很慢。 然后图又可能不连通。。。数据的锅。 不连通的d 阅读全文
posted @ 2018-07-24 21:04 Garen-Wang 阅读(268) 评论(0) 推荐(0)
摘要:学到了MCMF(min cost max flow),学到了EK算法。 我其实不会EK,只会死记dinic,事实证明EK算法非常的浅显易懂。 EK算法是怎么弄的? 说白了就是一个bfs找增广路径,只要有流量可以流,就去增广一波。 如果探到了t点的话,就可以进行一次成功的增广了。 如何实现? 我们需要 阅读全文
posted @ 2018-07-23 23:05 Garen-Wang 阅读(174) 评论(0) 推荐(0)
摘要:有点烧脑。。。 这道题是求二分图完美匹配。没看请题意还不知道是求完美匹配,结果爆零。 人一共分三种: 1. 在校学生 && 回家。这类人拥有一个床,但是不睡。 2. 在校学生 && 不回家。这类人拥有一个床,但也要睡一个床。有时不一定睡自己的。 3. 外来学生。这类人没床却想睡觉。 显然要用$2n$ 阅读全文
posted @ 2018-07-23 00:07 Garen-Wang 阅读(164) 评论(0) 推荐(0)
摘要:递推更新的就是坑。。。 设$dp[i][j]$为第$i$分钟,疲劳度为$j$的最大跑步距离。 发现了一种叫做“刷表法”的东西。我虽然不知道是什么东西,但是第一次写的时候就是用这种思想。 刷表法就是用已知的信息来更新后面的信息。而想记忆化搜索、普通递推的,叫做填表法。 下面是更新的方法: 你可以休息, 阅读全文
posted @ 2018-07-22 18:21 Garen-Wang 阅读(168) 评论(0) 推荐(0)
摘要:学了Cantor展开,顺便切掉八数码“难题”。。。 没什么好说的,我一遍过的。 为什么没有什么好说的呢?因为我做过。 曾经太菜不会Cantor,只会用map暴力存,结果用了8000+ms。 我觉得比魔板容易。 代码: 阅读全文
posted @ 2018-07-22 17:02 Garen-Wang 阅读(183) 评论(0) 推荐(0)
摘要:不看题解肯定不会系列。。。 这道题可以用Cantor展开解决。 Cantor展开可以求出一个数组是在全排列中的第几个。 具体怎么操作自己百度。 Cantor展开的公式是:$a[1] (n 1)! + a[2] (n 2)! + ... + a[n] 0!$ 这里注意一下:$0!=1$。 其中$a[i 阅读全文
posted @ 2018-07-22 16:32 Garen-Wang 阅读(128) 评论(0) 推荐(0)
摘要:第一次写炸了的话写第二次就好了。。。 这道题是luogu原创的啊,好题。。。~~因为我根本不会~~ 这道题就是告诉你一个实数序列,要你支持区间加,还要你求指定区间的平均数和方差。 我偷看了题解之后就写一波公式: 平均数这个不用说的。 $\frac{1}{n}[(a_1 \overline a)^2 阅读全文
posted @ 2018-07-21 23:43 Garen-Wang 阅读(173) 评论(0) 推荐(0)
摘要:这是我从luogu讲义弄下来的题目。 简化题意: 给你一棵树,每个结点有权值,父结点参加,子结点都不能参加。求最大权值和。 讲义告诉我们这道题用dp做。 本来我想的是用一维状态,结果发现错了。。。 加一维 也许加一维,问题就能更显然地解决,这道题数据范围不大,也说明要加一维了。。。 打出状态转移方程 阅读全文
posted @ 2018-07-20 15:12 Garen-Wang 阅读(95) 评论(0) 推荐(0)
摘要:时隔多日再次打网络流就错了。。。 跟那道“酒店之王”几乎一模一样,只不过数据大些,加当前弧照样过。 从luogu题解偷来一张图,有这张图就不用说话了。。。 代码: cpp include include include include const int maxn = 10005, maxm = 2 阅读全文
posted @ 2018-07-19 22:47 Garen-Wang 阅读(173) 评论(0) 推荐(0)
摘要:好吧,我又完全不会了。。。 这道题有两个限制条件: 1. 路径上的所有点的出边所指向的点 都 直接或间接与终点连通。 2. 在满足条件 1 的情况下使路径最短。 对于第一个条件,我们可以寻找与终点不连通的那些点。 如果有点的出边是不连通的点的话,那么这个点就一定不在路径上。 对于第二个条件,直接跑最 阅读全文
posted @ 2018-07-19 17:35 Garen-Wang 阅读(129) 评论(0) 推荐(0)
摘要:模板题,不讲太多。 同样是两个式子: $$a[r] a[l] \geq k$$ 和 $$0 \leq a[i] a[i 1] \leq 1$$ 建边之后,从0点为起点找最长路就对了。 差分约束差不多也就学到这里了。 代码: cpp include include include const int 阅读全文
posted @ 2018-07-19 17:22 Garen-Wang 阅读(180) 评论(0) 推荐(0)
摘要:我居然罕见地没看题解想出来了。。。 题目说了那么多,其实就是要你求出 所有人从1点出发再回来的最短路径 。 所有人的最短路径,可以由每个人的最短路径合成,结果一定最优。 从1点出发,容易,一个spfa就搞定。 但是回来呢? 我们发现,所有人回来的过程,是从所有点为起始,1点为终点的最短路。 试试看反 阅读全文
posted @ 2018-07-19 17:19 Garen-Wang 阅读(140) 评论(0) 推荐(0)
摘要:模板题了。。。 题意就是给你一个图,求最大的强联通分量和组成的这些点。 当然要用到tarjan算法啦,算法详情不讲。 求组成的点要注意:对一个时间状态的答案,要储存起来,才能判断字典序是否更小。 为了方便直接用 ,代码也很漂亮(自认为)。 只需要判断第一个元素即可,因为不可能一个点在多个强联通分量。 阅读全文
posted @ 2018-07-08 14:50 Garen-Wang 阅读(126) 评论(0) 推荐(0)

上一页 1 ··· 8 9 10 11 12 13 下一页