摘要: 【题意】给定无向连通图,要求添加最少的边使全图变成边双连通分量。 【算法】Tarjan缩点 【题解】首先边双缩点,得到一棵树(无向无环图)。 入度为1的点就是叶子,两个LCA为根的叶子间合并最高效,直接将两个叶子并入双连通分量后建新图。 若没有两个LCA为根的叶子则往下换根。 ans=(num+1) 阅读全文
posted @ 2017-09-27 22:10 ONION_CYC 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 【题意】n头牛,一些向前一些向后,每次可以使连续k头牛转身,求使旋转次数最小的k。 【算法】贪心 【题解】这题题解很迷,大概思想是k没有单调性,故枚举k,从左到右扫描遇到一只向后的牛就旋转一次。 贪心正确性易证:旋转前面已经好的显然不可能更优,故往后旋转。 然后还有结尾不足k头牛算错……为什么?不知 阅读全文
posted @ 2017-09-27 19:47 ONION_CYC 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 【题意】给定无向图,现在可能有一些点已经被删除,只给出信息是c个点未被删除且不能到达结点1,求最少的删除点个数。 【算法】最小割 【题解】本题和1的区别是:1求的是最少的不能到达1的结点数,那么就把损坏点圈缩在不可达点的邻点。 本体求的是删除最少的点使c个点不可达,这样的要求就是典型的最小割。 每个 阅读全文
posted @ 2017-09-27 18:41 ONION_CYC 阅读(215) 评论(0) 推荐(1) 编辑
摘要: 【题意】给定n头牛,k个特色,给出每头牛拥有哪些特色的二进制对应数字,[i,j]平衡当且仅当第i~j头牛的所有特色数量都相等,求最长区间长度。 【算法】平衡树+数学转化 【题解】统计前缀和sum[i][j]表示前i头牛特色为j的数量,则区间i~j平衡需要满足: sum[j][1]-sum[i-1][ 阅读全文
posted @ 2017-09-27 15:28 ONION_CYC 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 【题意】给定n头牛和m对大小关系,求最坏情况下至少还需要比较几对奶牛的大小(在未确定顺序的奶牛对中随机比较) 【算法】floyd求传递闭包 【题解】可达说明大小已知,则不可达点对数量就是最少比较次数。 使用bitset优化传递闭包,复杂度O(n^3 /32)。 #include<cstdio> #i 阅读全文
posted @ 2017-09-27 07:34 ONION_CYC 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 【题意】给定s个股票和d天,给出价格矩阵s*d,每天可以买入或卖出整数倍股票,初始资金m,求最大利益。m<=200000,s<=50,d<=10。 【算法】完全背包 【题解】关键在于转化:第一天买入-第三天卖出,相当于,第一天买入-第二天卖出-第二天买入-第三天卖出。那么买卖股票就变成相邻两天的事情 阅读全文
posted @ 2017-09-27 07:02 ONION_CYC 阅读(218) 评论(0) 推荐(0) 编辑