首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
用户6866726373587
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
14
文章 14
沸点 0
赞
14
返回
|
搜索文章
赞
文章( 14 )
沸点( 0 )
单源次短路
记d[v]为节点1到v的最短路,d[v]为次短路,对于一条u->v的边,d[v]要么是d[u]加边权要么是d[u]加边权。即 设若1->v只有一条路,d[v]=INF。 和Dijkstra算法类似,每次先判断经过u的这条路径是否可以更新最短路,如果不能更新,就看能否更新次短路,…
差分约束系统
对于一系列形如$a-b\leq c$的不等式组,要求得是否有解或者解为多少,可以利用求最短路的方法。 将原式变形后得到$a\leq b+c$,类比单源最短路中的对于边u->v(w),$dis[v]\leq dis[u]+w$,可以连一条b到a的带权边,再在整张图上跑单源最短路。…
函数的可变参数列表
用va_arg访问参数:va_arg(lis,type),会从上一次访问到该类型的地方继续向后找这种类型。
P2392 题解
单独考虑一个学科,左右脑可以同时工作,那就尽量让他俩工作时间相近。设该学科所有题目之和为sum,那么就转化成让一个的工作时间尽量接近mid=sum/2,进而转化成01背包问题,其中一个脑子是背包,问用mid的时间最多能完整地完成多少工作。
P3387 题解(Tarjan强连通分量缩点模板)
对于一个强连通分量,最优解是把上面的所有点都走一遍,因为不存在负权点。所以可以通过缩点统计每个强连通分量的权值之和。 记anss[u]为以节点u为终点的路径的最大权值。通过拓扑排序,对于任意入度为0的节点u,anss[u]已知,因为不存在其他能够到达u的点可以更新答案。入度不为…
P3916 题解
对于一个DAG,可以通过记忆化搜索得到答案。从每一个没有被访问过的点(即ans值为0)开始搜索,不断更新ans数组即可,如果搜到一个ans值不为0的点,那么直接用其ans值更新当前点的ans,不需要再搜一遍。 但是如果出现环,按照原先的搜索方式没法找到一个环中编号最大的点。因为…
P2853 题解
一个牧场如果能被所有牛都访问到,就可以贡献一个答案。 最初想法是从每个有牛的牧场开始dfs,碰到有牛的牧场就“带上这只牛”,并把该牧场变成没有牛的牧场。但是这样做不好处理有环的情况,因为很难维护两次访问起点之间“带上了多少牛”。 退而求其次,碰到一只陌生的牛不带它,只将能够到达…
Codeforces Round #676 (Div. 2) 题解
假设$a<b$,且$a$有$m$位,$b$有$n$位。那么$x$的位数必定小于等于$m$。$x$中超过$m$位的数字不可能令答案变得更小,因为超过$m$位要想让答案更小,只能异或掉$b$的一个$1$,那么$x$的该位必然是$1$,这样就会让$a$在此增加一个$1$,答…
HDU 3829 Cat VS Dog 题解
最后所有开心的人当中,对于任意一对a,b,必定满足a喜欢的不是b讨厌的且b喜欢的不是a讨厌的。如果在喜欢和讨厌矛盾的人之间连边,就可以转化为最小点覆盖问题。要想开心的人最多,就要用最少的点消除掉所有的矛盾边。每消掉一条矛盾边得到的最优结果必定会产生一人开心一人不开心,矛盾连边跑…
Codeforces GYM102307 G. Graduation 题解
一门课只能作为另外至多一门课的先修课,将每一门课作为一个节点,从一门课连一条有向边到其先修课,那么必定构成一个森林。问题就转化为给定一棵树,每次取$k$个叶结点,问多少次可以取完。注意一个叶结点被取过之后他的父亲节点并不能马上变为叶结点,要等取完这一轮才可以(因为修完$x$的先…
下一页
关注了
1
关注者
0
收藏集
0
关注标签
0
加入于
2020-12-24