一名苦逼的OIer,想成为ACMer

Iowa_Battleship

随笔分类 -  图论

1 2 3 4 下一页

牛客CSP-S提高组赛前集训营2 T2沙漠点列
摘要:"原题链接" 算法不难,比赛的时候就和cyc大佬一起yy了正解,不过因为交的时候比较急(要回寝室惹),我有两数组开错大小直接爆到50,cyc大佬则只把文件输入关了一半,直接爆零(╯ ̄Д ̄)╯┻━┻ 要尽量使$k$次删边都能有贡献,那么很容易就想到割边。 所以我们先用$\mathtt{tarjan}$ 阅读全文

posted @ 2019-11-01 20:41 Iowa_Battleship 阅读(221) 评论(0) 推荐(1) 编辑

洛谷1041 传染病控制
摘要:"原题链接" 爆搜题。 有个很显然的贪心,就是第$i$轮扩展肯定是删去$i$到$i + 1$层上的某一条边。 另外,贪心地删除含子节点最多的点是错误的,比如一条很长的链和一个比链节点少一点但是全部分布在一层,这样就是错误的。 所以我们爆搜的枚举删去这一层的哪个点,并累加上以该点为根的子树大小,然后继 阅读全文

posted @ 2018-12-27 21:38 Iowa_Battleship 阅读(149) 评论(0) 推荐(0) 编辑

洛谷1038 神经网络
摘要:"原题链接" 感觉这题在考我语文。。被坑了好几次。 说几个坑点: 1. 这个公式对输入层是无效的,也就是输入层是不需要减去$U$的。 2. 只有$C 0$的时候才会往下传导。 3. 输出只要输出输出层且$C 0$的点。 然后这个题其实就是一个简单的拓扑排序,每次给这个点所指向的点加上$C W$,而在 阅读全文

posted @ 2018-12-23 20:32 Iowa_Battleship 阅读(148) 评论(0) 推荐(0) 编辑

洛谷1027 Car的旅行路线
摘要:"原题链接" 将每个城市拆成四个点,即四个机场来看,那么这题就是求最短路。 不过建图有些麻烦,先要找出第四个机场的坐标。 设另外三个机场的坐标为$(x_1, y_1), (x_2, y_2), (x_3, y_3)$,其中$(x_1, y_1), (x_3, y_3)$为对角线两点。 那么第四个点的 阅读全文

posted @ 2018-12-17 21:22 Iowa_Battleship 阅读(179) 评论(0) 推荐(0) 编辑

洛谷1345 [USACO5.4]奶牛的电信Telecowmunication
摘要:"原题链接" 最小割点数转换成最小割边数的模板题(不过这数据好小)。 每个点拆成两个点,连一条容量为$1$的边,原图的边容量定为$+\infty$,然后跑最大流即可。 这里用的是$Dinic$。 阅读全文

posted @ 2018-11-05 20:31 Iowa_Battleship 阅读(118) 评论(0) 推荐(0) 编辑

BZOJ1880或洛谷2149 [SDOI2009]Elaxia的路线
摘要:"BZOJ原题链接" "洛谷原题链接" 显然最长公共路径是最短路上的一条链。 我们可以把最短路经过的边看成有向边,那么组成的图就是一张$DAG$,这样题目要求的即是两张$DAG$重合部分中的最长链。 重合部分中的最长链可能是同向,可能是反向的,但不可能由反向边和同向边组成,否则就不是$DAG$了。 阅读全文

posted @ 2018-11-05 10:20 Iowa_Battleship 阅读(119) 评论(0) 推荐(0) 编辑

BZOJ1433或洛谷2055 [ZJOI2009]假期的宿舍
摘要:"BZOJ原题链接" "洛谷原题链接" 对于每个需要床位的人向他能睡的床连边,然后就是二分图最大匹配模板了。 这里用匈牙利算法。 cpp include include using namespace std; const int N = 55; const int M = 1e4 + 10; in 阅读全文

posted @ 2018-11-04 21:26 Iowa_Battleship 阅读(124) 评论(0) 推荐(0) 编辑

洛谷1726 上白泽慧音
摘要:"原题链接" 裸的$tarjan$找强连通分量,记录最大强连通分量即可,注意字典序。 cpp include using namespace std; const int N = 5010; const int M = 1e5 + 10; int fi[N], di[M], ne[M], dfn[N 阅读全文

posted @ 2018-11-03 11:03 Iowa_Battleship 阅读(102) 评论(0) 推荐(0) 编辑

洛谷1113 杂务
摘要:"原题链接" 拓扑裸题。(其实可以不用建图就可以搞,不过我太懒了直接上拓扑 cpp include using namespace std; const int N = 1e4 + 10; const int M = 1e6 + 10; int fi[N], di[M], ne[M], q[M], 阅读全文

posted @ 2018-11-02 18:58 Iowa_Battleship 阅读(108) 评论(0) 推荐(0) 编辑

洛谷1119 灾后重建
摘要:"原题链接" 写了这题才真正知道$Floyed$本质。 最原始的$Floyed$,$f[k][i][j]$表示的是以$i$为起点,$j$为终点,路径上的点的编号不超过$k$的最短距离。 所以这题的修复时间恰好就是$Floyed$中$k$这一维的递增转移,边询问边接着跑$Floyed$即可。 时间复杂 阅读全文

posted @ 2018-11-02 09:26 Iowa_Battleship 阅读(112) 评论(0) 推荐(0) 编辑

洛谷1462(重题1951) 通往奥格瑞玛的道路(收费站_NOI导刊2009提高(2))
摘要:"1462原题链接" "1951原题链接" 显然答案有单调性,所以可以二分答案,用$SPFA$或$dijkstra$跑最短路来判断是否可行即可。 注意起点也要收费,$1462$数据较水,我一开始没判也过了,但重题$1951$把我卡掉了。。 阅读全文

posted @ 2018-11-02 08:51 Iowa_Battleship 阅读(100) 评论(0) 推荐(0) 编辑

BZOJ4813或洛谷3698 [CQOI2017]小Q的棋盘
摘要:"BZOJ原题链接" "洛谷原题链接" 贪心或树形$DP$都可做,但显然$DP$式子不好推~~(因为我太菜了)~~,所以我选择贪心。 很显然从根出发主干走最长链是最优的,而剩下的点每个都需要走两步,所以用除去走最长链的步数的剩余步数除$2$(下取整)就是剩余能走的点数。 阅读全文

posted @ 2018-11-01 14:57 Iowa_Battleship 阅读(116) 评论(0) 推荐(0) 编辑

洛谷2971 [USACO10HOL]牛的政治Cow Politics
摘要:"原题链接" 假设只有一个政党,那么这题就退化成求树的直径的问题了,所以我们可以从此联想至$k$个政党的情况。 先处理出每个政党的最大深度,然后枚举每个政党的其它点,通过$LCA$计算长度取$\max$即可。 因为枚举只是枚举该政党的所有点,所以总的枚举复杂度依旧是$O(n)$,总复杂度$O(nlo 阅读全文

posted @ 2018-10-26 10:38 Iowa_Battleship 阅读(144) 评论(0) 推荐(0) 编辑

洛谷2783 有机化学之神偶尔会做作弊
摘要:"原题链接" 很水的一道题,先用$tarjan$找边双连通分量并缩点,因为缩点后必然是一棵树,所以直接$LCA$求距离即可。 另外因为有重边(说好的只有单键呢),所以需要判重,一开始我用的$HASH$判重,结果又被卡了。。。 ~~和$HASH$天理难容,每次用都被卡~~ 最后一气之下$bitset$ 阅读全文

posted @ 2018-10-20 08:03 Iowa_Battleship 阅读(175) 评论(0) 推荐(0) 编辑

洛谷3953 逛公园
摘要:"原题链接" 记忆化搜索。 先在反图上跑一边最短路,求出$dis[x]$,表示点$x$到点$n$的最短距离,当然也同时也排除了不能到达$n$的点。 设$f[x][k]$表示从$x$点走到$n$点允许比$dis[x]$多走$k$距离的方案数,$a_i$表示$x$能到达的点,且边权为$v_i$,共$s_ 阅读全文

posted @ 2018-10-18 11:20 Iowa_Battleship 阅读(79) 评论(0) 推荐(0) 编辑

洛谷1608 路径统计
摘要:"原题链接" 模板题。 比起最短路计数( "题解" )这题多了边权,且计数的条件有所不同,需要去重边(取权值最小的),然后上$dijkstra$或$SPFA$计数即可。 这里我是用的$dijkstra$。 阅读全文

posted @ 2018-10-17 19:55 Iowa_Battleship 阅读(101) 评论(0) 推荐(0) 编辑

洛谷1144 最短路计数
摘要:"原题链接" 模板题。 由于此题特殊,边权均为$1$,所以可以直接跑$BFS$,每个点的最短路就是该点在$BFS$搜索树中的深度,某个点的最短路计数则用上一层中能到达该点的计数来更新即可。 cpp include using namespace std; const int N = 1e6 + 10 阅读全文

posted @ 2018-10-17 15:00 Iowa_Battleship 阅读(106) 评论(0) 推荐(0) 编辑

BZOJ1059或洛谷1129 [ZJOI2007]矩阵游戏
摘要:"BZOJ原题链接" "洛谷原题链接" 通过手算几组例子后,很容易发现,同一列的$1$永远在这一列,且这些$1$有且仅有一个能产生贡献,行同理。 所以我们可以只考虑交换列,使得每一行都能匹配一个$1$,且每一行匹配的$1$没有重列的,最后交换行排序下即可达到目标。 解决这个问题就不难了,对于一个格子 阅读全文

posted @ 2018-10-17 13:45 Iowa_Battleship 阅读(91) 评论(0) 推荐(0) 编辑

洛谷1894 [USACO4.2]完美的牛栏The Perfect Stall
摘要:"原题链接" 二分图最大匹配板子。 每个奶牛向它愿意去的牛棚连边,跑二分图最大匹配即可。 这里我用的是匈牙利算法。 cpp include include using namespace std; const int N = 410; const int M = N N; int fi[N], ne 阅读全文

posted @ 2018-10-17 12:40 Iowa_Battleship 阅读(92) 评论(0) 推荐(0) 编辑

洛谷2417 课程
摘要:"原题链接" 对于每一个课堂,向能够来这堂课的学生连边,然后跑二分图最大匹配,判断是否是完全匹配即可。 这里我是用的匈牙利算法。 cpp include include using namespace std; const int N = 1e5 + 10; int fi[N], di[N], ne 阅读全文

posted @ 2018-10-17 12:18 Iowa_Battleship 阅读(123) 评论(0) 推荐(0) 编辑

1 2 3 4 下一页

导航