随笔分类 -  BZOJ

摘要:Problem 魔法森林 (NOI2014) 题目大意 给n个点,m条边的无向图,每条边有两个权值a,b。 求一条从1-->n的路径,使得这条路径上max(a)+max(b)最小。输出最小值即可。 解题分析 将边按照权值a从小到大排序后,依次加边,用lct维护一棵权值b组成的最小生成树。 具体做法是 阅读全文
posted @ 2016-09-01 21:37 rpSebastian 阅读(204) 评论(0) 推荐(0)
摘要:Problem 染色(BZOJ2243) 题目大意 给定一颗树,每个节点上有一种颜色。 要求支持两种操作: 操作1:将a->b上所有点染成一种颜色。 操作2:询问a->b上的颜色段数量。 解题分析 树链剖分+线段树。 开一个记录类型,记录某一段区间的信息。l 表示区间最左侧的颜色 , r 表示区间最 阅读全文
posted @ 2016-08-03 00:11 rpSebastian 阅读(275) 评论(0) 推荐(0)
摘要:首先找出b在数列中的位置mid 用 f[i]记录mid左边从mid往左统计比m小的数与比m大的数的差值为i的个数 用g[i]记录mid右边从mid往右统计比m大的数与比m小的数的差值为i的个数 。。有点语死早,找个样例模拟一下就懂了 阅读全文
posted @ 2015-01-14 19:25 rpSebastian 阅读(233) 评论(0) 推荐(0)
摘要:直接跑匈牙利,注意到“只有当选手正确回答一道题后,才能进入下一题,否则就被淘汰”,一旦无法满足就直接退出。 1 #include 2 #include 3 #include 4 #define maxn 2008 5 #define maxm 10008 6 7 struct edge{ 8... 阅读全文
posted @ 2014-12-22 20:09 rpSebastian 阅读(253) 评论(0) 推荐(0)
摘要:没想到这是一道省选题。。。 1 /* BZOJ1192 */ 2 #include 3 int main() 4 { 5 int m,num=0; 6 scanf("%d",&m); 7 for (;m>0;m/=2,num++); 8 printf("%d\n",... 阅读全文
posted @ 2014-12-22 19:19 rpSebastian 阅读(152) 评论(0) 推荐(0)
摘要:先对整幅图进行二分图染色,再跑一遍匈牙利算法。如果最大匹配数=点数*2,那么输出WIN。对于任何一个非必须在最大匹配上的点,即为所求的点。 1 Program Test375num2; 2 type arr=record 3 u,v,next:longint; 4 ... 阅读全文
posted @ 2014-12-22 19:07 rpSebastian 阅读(247) 评论(0) 推荐(0)