上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 36 下一页
摘要: 题面 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛 到达另一个岛。如果从岛 a 出发经过若干座(含 0 座)桥可以到达岛 b,则称岛 a 和岛 b 是连 通的。 阅读全文
posted @ 2019-05-06 22:20 birchtree 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题面 了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发现她们已经结成了几个“群”.每只奶牛在吃草的时候有一个独一无二的位置坐标Xi,Yi(l≤Xi,Yi≤[1..10^9];Xi,Yi∈整数.当满足下列两个条件之一,两只奶牛i和j是属于同一个群的: 1.两只 阅读全文
posted @ 2019-05-06 22:10 birchtree 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题面 小B最近正在玩一个寻宝游戏,这个游戏的地图中有N个村庄和N 1条道路,并且任何两个村庄之间有且仅有一条路径可达。游戏开始时,玩家可以任意选择一个村庄,瞬间转移到这个村庄,然后可以任意在地图的道路上行走,若走到某个村庄中有宝物,则视为找到该村庄内的宝物,直到找到所有宝物并返回到最初转移到的村庄为 阅读全文
posted @ 2019-05-06 21:56 birchtree 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 最小割树(Gomory Hu Tree) 前置知识 Gomory Hu Tree是用来解决无向图最小割的问题的,所以我们需要了解无向图最小割的定义 和有向图类似,无向图上两点(x,y)的割定义为一个边集E,满足去掉该边集后x,y不联通。最小割即为所有的割中权值之和最小的割 通过这条割我们把点集划为两 阅读全文
posted @ 2019-04-24 11:59 birchtree 阅读(2434) 评论(1) 推荐(0) 编辑
摘要: 题面 "传送门" 分析 先考虑$O(nk)$的做法,先按s从小到大排序,每个串的数显然形成了n个连续区间$[s_i+l,s_i+r]$,且这些区间的左端点升序排列,然后把区间合并就可以知道有多少个不同的数了 然后考虑优化 对于s[i]产生的区间,我们考虑s[i]和s[i+1]产生的区间之间的间隔 若 阅读全文
posted @ 2019-04-06 23:18 birchtree 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 题面 "传送门" 分析 这种题的重点是寻找不变量 我们发现如果改变4个角,则每一行和每一列的xor和不会改变(1^0=0^1) 所以只要算出异或和然后比较就可以 代码 cpp include include define maxn 505 using namespace std; int n,m; 阅读全文
posted @ 2019-04-06 23:06 birchtree 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 分析 "网络流24题总结" 维护三个状态(x,y,k)表示当前坐标(x,y)和剩余流量k,dist(x,y,k)表示当前状态下的最小花费 到了每一个点分类讨论: 1.遇到油库,必须加满,以加满的状态继续转移 2.没有油库,设一个油库,并把油加满 3.没有油库,继续走 代码 最短路: cpp incl 阅读全文
posted @ 2019-03-26 19:35 birchtree 阅读(646) 评论(0) 推荐(0) 编辑
摘要: 分析 "网络流24题总结" 这题直接状压BFS也可以,不过可以把BFS改成SPFA,进一步优化 显然要维护三个状态:s,x,y,分别表示钥匙状态s(用一个二进制表示,第i位为1表示当前有第i个钥匙),和当前的x,y坐标,以这三个状态来分层 那么设dist(s,x,y)表示到达当前状态的最短时间 转移 阅读全文
posted @ 2019-03-26 19:26 birchtree 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 分析 裸的最短路: 把错误集合状压成一个二进制,第i为为1表示有第i个错误 把这个状态x作为图上的节点编号,dist[x]表示转移到状态x需要的时间 显然初始状态为dist[$2^n 1$]最终的答案为dist[0] 转移的时候枚举每一个补丁,通过位运算判断补丁i是否能修复当前状态 代码 cpp i 阅读全文
posted @ 2019-03-26 19:21 birchtree 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 题面 "传送门" 题意: 给出长度为n的序列b,t,定义一个子序列的值为$\min\{ b_i\} \times \sum t_i$,求所有子序列中值最大的一个,输出最大值 分析 假如固定某个b[i],则最大值为$b_i \times \sum t_j (b_j\geq b_i)$,且t[j]为所有 阅读全文
posted @ 2019-03-23 15:13 birchtree 阅读(622) 评论(0) 推荐(0) 编辑
上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 36 下一页