摘要:
题意:中文题 思路:就是直接建图跑费用流,每个点和源点连一个r[i]的容量,0费用的边,和汇点连一个平均值,费用为0的点,然后左右连一下边 代码:(商务鞋竟然连样例都没跑不出来,难道最近rp没了么) 阅读全文
摘要:
题意:中文题 思路:直接按照题目上的描述建费用流即可,不过流量上限还是挺有意思的 代码:(爆了4 5发long long) 阅读全文
摘要:
题意:给你一颗树,然后再属相选一些点让他们变成消防站,每个消防站可以控制的距离是2 ,然后问你在这颗树上最少选几个消防站 思路:你从1开始向下搜,把每个点的深度搜索出来,然后排序,因为我们知道,如果一个消防站可以控制的距离是2 ,但是左右就是4了(这个地方我也没想清楚,日后填坑吧),所以我们队深度最 阅读全文
摘要:
题意:给你n个区间,然后你需要在区间中选取最少c个,这c个数存在于集合z中,问你集合z最少有多少个元素 思路:刚接触差分约束,感觉是一种套路,不过差分约束的模型的确不容易看出来(先感谢聚聚博客中对于差分约束的讲解,传送门),感觉讲的很清楚,对于最小值,找最长路,最大值最短路(可能这就是使用spfa的 阅读全文
摘要:
题意:中文题(lrj黑书上好像有这道题) 思路:这个题的建图还真的是挺有意思的,我们把一个球拆成2个点a,b。 然后让a点连S点,b点连T点,如果有两个数的加和为平方数,那我们就用第一个数的a点连向第二个数的b点,这样就有一条流直接流向汇点T 代码:(顺便get了怎么打印路径,赋学习传送门) 阅读全文
摘要:
题意:就是在n*m的格子中放“炮”(中国象棋中的棋子)问有多少种放法,使得没有任意的两个炮相互攻击 思路:我们很容易的得到一列或者一行中最多放下两个炮(我也只能得到这些了,满脑子状压,但数据范围有100),这篇博客些的很好(传送门),我们定义dp[i][j][k]代表前i行我们有j列式有2个棋子,有 阅读全文
摘要:
题意:给你一颗树,每个节点上都有一个种类,问你包含所有种类的路径有多少条(1,3)(3,1)算2条 思路:最近狂补点分治,这道题点分治的部分还是很好理解的,直接套点分治的板子,只不过这道题不需要使用dep数组,我们知道dep其实维护的是从rt到子节点的权值,这里因为只有10种种类,所以我们直接状压( 阅读全文
摘要:
题意:给你一颗树,询问路径和是3的倍数的路径有多少条 思路:日常搬运点分治,这个题其实是运用了取模,三的倍数其实可以转化为对3取模,然后直接点分治 代码:(一直T,最后发现是getroot时写错了) 阅读全文
摘要:
题意:给你一颗树,然后问你有多少小于k的路径 思路:点分治入门题,网上有很多关于点分治的博客,我也看了很久的代码,想了很久。 大概点分治就是一种通过不断找树的重心来降低复杂度的一种算法,因为数据范围很小,看其他聚聚的博客说一般点分治的题,数据范围都暗示1e4; 代码: 阅读全文
摘要:
题意:中文题,略 思路:秦皇岛前就一直想学,后来没怎么想通,就算了。现在雅不是很懂,一直似懂非懂的,对于树分块的种类,有位聚聚已经整理好了(传送门),其他的就是直接搜索分块 代码: 阅读全文