文章分类 -  例题详解

摘要:题意: N<=1e5个点,Q<=1e5个操作。 支持加一条边(u,v)(保证图是森林)、询问经过边(u,v)的简单路径条数(保证(u,v)存在)。 分析: 数据结构学傻了的我,表示并不会用树链剖分做这个题…… 首先,这道题的询问,可以看成是假设断掉某条边后,两端点的子树size相乘。(一个简单的乘法 阅读全文
posted @ 2018-12-22 14:40 杜宇一声 阅读(128) 评论(0) 推荐(0)
摘要:题意: N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数。 分析: 据说有dalao会离线做这题? 看到L和R就能想到主席树?dalao们太强了…… 如果我们给出n个点,m条边,求整张图的联通块个数,那么可以维护一个并查集,假如合并了p次,那么最终结果就是n-p。 但是, 阅读全文
posted @ 2018-12-21 19:46 杜宇一声 阅读(145) 评论(0) 推荐(0)
摘要:题意: 支持加入边,修改点权,询问两点间走一条路径的最大点权和。不一定是树。 分析: 这个题我们需要知道,假如两点间有环,那么无论如何,这个环上所有的价值都可以被我们获得。 有环,还有这个性质,我们可以自然而然的想到边双联通分量缩点,但是我们不能对于每次加边就重构一下图,更不能每次询问都求一遍最大路 阅读全文
posted @ 2018-12-21 17:56 杜宇一声 阅读(193) 评论(0) 推荐(0)
摘要:题意: 给一棵树,每个点一开始颜色互不相同,支持三个操作 1. 将一个点到根的路径染成一种新的颜色 2. 将一个新的点设为根,并将原来的根到这个点的路径染成一种新的颜色 3. 查询一个子树(对于当前根)到根的路径期望颜色数 这道题是我迄今为止,做过的最难想,也最混乱的大数据结构题了,请诸位理智吸收。 阅读全文
posted @ 2018-12-21 17:33 杜宇一声 阅读(172) 评论(0) 推荐(0)
摘要:题意: 您有一个无向带权图,您需要支持两种操作。 分析: 众所周知,任意两点间最大权最小路径存在于最小生成树上,所以这道题可以动态维护最小生成树。 用到的数据结构是可以支持连边和断边的Link- Cut- Tree。 用LCT维护一棵最小生成树,是不可能支持在原图上删边这一操作的,因为既不知道删除的 阅读全文
posted @ 2018-12-21 16:06 杜宇一声 阅读(209) 评论(0) 推荐(0)
摘要:题意: 给定一个n个结点,m条边的的无向图,每条边有两个权值ai,bi。 现在从1出发,要到达n,出发时带上任意多的A,B,每次只能沿着ai≤A且bi≤B的边走,问至少要带多少的A,B使得能从1到n。n≤50000,m≤200000。 分析: 二维参数的一些问题,我们经常用的套路是一维排序,另一维数 阅读全文
posted @ 2018-12-21 16:01 杜宇一声 阅读(137) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-10-18 21:59 杜宇一声 阅读(14) 评论(0) 推荐(0)
摘要:Description 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程。在可以选择的课程中,有2n节 课程安排在n个时间段上。在第i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先 被安排在教室ci上课,而另一节课程在教室di进行。在不提交 阅读全文
posted @ 2018-09-02 17:24 杜宇一声 阅读(176) 评论(0) 推荐(0)
摘要:(这题目莫名让我想到了穿越火线。。。) 题意:编写一个银行应用程序,支持下列操作: 1,加入一个客户(输入:1,k,q) 其中k是客户的编号(不一定是1-n但保证小于一百万),q是客户优先级(整型数好吧)。 2,询问当前优先度最高的客户的编号(输入:2),并且将这个客户删除。 3,询问当前优先度最低 阅读全文
posted @ 2018-08-16 22:07 杜宇一声 阅读(341) 评论(0) 推荐(0)
摘要:题意:给定一个区间,求出区间内二进制中0的个数大于等于1的个数的数字有多少个。 题解:(学长说这道题是开胃菜。。。我不会写。。。) 据说这是一道数位dp题,我觉得写成记忆化搜索的模式更容易被理解。于是我们先把原区间边界分别转为二进制,并将每一位放入dig数组中,我们设计dfs函数: 正如大多数数位d 阅读全文
posted @ 2018-08-14 17:48 杜宇一声 阅读(299) 评论(0) 推荐(0)
摘要:题目:JZOJ 5791. 【NOIP2008模拟】阶乘 题解很完善,直接上代码! 1 #include<iostream> 2 #include<cstring> 3 #include<cmath> 4 #include<algorithm> 5 #include<cstdio> 6 #defin 阅读全文
posted @ 2018-08-10 20:30 杜宇一声 阅读(272) 评论(0) 推荐(0)
摘要:题意:给出一字符串,然后有两种操作,在某个位置后面插入某个字符,查询更新后字符串中某个位置的字符。 这个题,需要用到一个神奇的数据结构:块状链表; 推荐论文可自学:对块状链表的一点研究; 题中提到的两种操作都是非常理论的,可以直接套用块状链表的功能。高级的块状链表的维护操作会对根据某个块的大小做出裁 阅读全文
posted @ 2018-08-09 21:58 杜宇一声 阅读(207) 评论(0) 推荐(0)
摘要:题目描述 路人甲的实验室有 n 瓶化学药品,编号为 0 到 n-1,你知道第 i 瓶只有和第 c[i]瓶放在一起才会发生爆炸。为了整理实验室,你需要将他们装进 k 个不同的盒子里。显然,为了你的生命安全,你不能把两瓶会造成爆炸的药品放进同一个箱子。你希望计算出有多少中不同的方案。为了降低难度,你只需 阅读全文
posted @ 2018-08-08 21:03 杜宇一声 阅读(164) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-07-20 17:13 杜宇一声 阅读(2) 评论(0) 推荐(0)
摘要:题意:在树上建消防站,给出树边的距离,给出每个点建消防站的花费和能覆盖的距离,要求建消防站覆盖整张图,问最小花费是多少。 这题贪心?没法做。暴力枚举搜索,just wash wash and sleep! 我们还是树形dp吧,其实n^2的树形dp我是之前没见过的,怎么搞?这里面蕴藏的东西还是很暴力的 阅读全文
posted @ 2018-07-20 16:58 杜宇一声 阅读(135) 评论(0) 推荐(0)
摘要:题意:给定一棵树,求树上两点间距离小等于K的所有方案数。 这题怎么想?(我猜一定会有人想lca) 如果这么想,最终一定会顿悟自己陷入了一个复杂度的陷阱。因为这样就是枚举+大暴力。求了LCA还不如不求直接n^2求两点距离呢。。。 那这题我们怎么办。树形dp?其实差不多,就是树形dp,但是,怎么设计是一 阅读全文
posted @ 2018-07-20 16:44 杜宇一声 阅读(159) 评论(0) 推荐(0)
摘要:题意:如上图,在一个n*m的方格图中用任何方式以格点为顶点画三角形,一共有多少种方法。 这道题,我看了网上很多题解。竟没有很清楚的,甚至还有错的,看来外国好题在中国竞赛界的普及度还是不够。 在格点上找三角形?这花样好像除了搜索不可做,怎么办,那么大数据。我们试下玄学的递推,毕竟是个计数类问题,这题的 阅读全文
posted @ 2018-07-16 20:42 杜宇一声 阅读(304) 评论(0) 推荐(0)
摘要:题意:有一些点,现对这些点进行操作,输入“M a,b”代表a,b是一个集合,“S a ”表从集合中删除a点,最后输出有几个集合? 这个题涉及到了一个神奇的删点操作,而且删点只删一个点,以前是一个集合的不变,所以倒着处理也会很麻烦,那怎么办呢,显然我们删除一个点的时候要更改指针,使这个点从原图中被摘除 阅读全文
posted @ 2018-06-24 19:03 杜宇一声 阅读(185) 评论(0) 推荐(0)
摘要:题意:某家公司,一年内每个月都会盈利或亏损,而且盈利或亏损都是一个定值,要么盈利s元,要么亏损d元,已知这一年内,这家公司任意连续五个月的总业绩都是亏损的,但全年统计下来并不见得亏损,问这家公司一年最多盈利多少元,如果不可能盈利,输出Deficit; 对于这道题我们会想到搜索,去枚举下一个月怎么填盈 阅读全文
posted @ 2018-06-16 15:16 杜宇一声 阅读(160) 评论(0) 推荐(0)
摘要:题目描述 设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为”abcbcd”,则字符串“abcb□cd”,“□a□bcbcd□”和“abcb□cd□”都是X的扩展串,这里“□”代表空格字符。 如果A1是字符串A的扩展串,B1是字符串B的扩展串,A1与B1具 阅读全文
posted @ 2018-06-14 19:04 杜宇一声 阅读(296) 评论(0) 推荐(0)