首页 > 其他分享 >ZJOI 杂题选做

ZJOI 杂题选做

时间:2024-01-15 18:11:32浏览次数:32  
标签:原图 连通 ZJOI 子图 联通 杂题

P2272 [ZJOI2007] 最大半连通子图

题目传送门

注意到半联通子图缩完点一定是一条链,由于要求的是最大的半联通子图,所以该子图的每个强连通分量一定对应原图的完整的强连通分量,否则可以扩展。

则对原图缩点,最大半联通子图一定是从入度为 0 的点到出度为 0 的点的一条链,拓扑求出带权最长路即为第一问答案。

对于第二问,则考虑删去对最长路没有贡献的转移边,然后再对新图跑一遍拓扑排序求出方案即可。

标签:原图,连通,ZJOI,子图,联通,杂题
From: https://www.cnblogs.com/ORzyzRO/p/17965974

相关文章

  • 搜索学习笔记+杂题 (基础二 dfs/bfs的拓展)
    搜索杂题:博客中讲述的题的题单:戳我二、dfs/bfs的各种变式1、深搜深搜以指数级的时间复杂度闻名,稍不注意时间就会爆炸,所以一般会用到剪枝的技巧(这个技巧基本上是因题而异,需要平时的刷题与积累)。深搜同样也是一种可变性极高的算法(其实都可以不叫做一种算法,深搜已经是一种做题的......
  • 1 月杂题题解
    好久没写博客了?今晚写爽。P5311成都七中这有黑?对于一个点\(x\),设其子树任意一点为\(y\)。我们可以求出这\(x\rightarrowy\)这条路径经过节点的的\(l,r\)。遍历\(x\)的子树,我们可以得到一些三元组\((l,r,c)\)表示\(x\)所属连通块包含了\(l,r\)这些节点,就有一......
  • 「杂题乱刷」CF1916C
    题目传送门(CF)题目传送门(luogu)容易发现,选择两个偶数对于答案没有任何影响,因此先手必然会优先选择两个奇数合并在一起,而后手必然会优先选择一个奇数和一个偶数在一起,我们举个例子,有一个序列\(\{1,1,1,1,1,1\}\),先手先取编号为\(1,2\)的两个数,后手再取编号为\(2,3\)的两个数,此......
  • 【数据结构】P4338 [ZJOI2018] 历史 题解
    P4338先考虑怎么安排崛起的先后顺序最优。但是发现好像没有一个很好的顺序去进行崛起,并且由于\(a_i\)的值域会很大,所以即使知道顺序应该也会难以进行维护。转换一下方向,正难则反。考虑每个点的贡献,但是颜色不同时只会算一次,所以要钦定是哪一个点造成的贡献。令当前考虑的点为......
  • 「杂题乱刷」AT_abc280_d
    题目链接舒服题。考虑贪心,我们可以直接枚举到\(10^7\),然后将\(n\)一直除以\(n\)和\(i(1\lei\le10^7)\)的最大公因数,若到\(10^7\)时\(n\)还不为\(1\),这时直接输出\(n\)即可。参考代码:点击查看代码/*Tips:你数组开小了吗?你MLE了吗?你觉得是贪心,是不是该想......
  • AtCoder 杂题精选(2023 年末)
    [ABC324G]GenerateArrays第一次知道AtCoder还有这种数据结构题。首先,所谓的“切分序列”是假,实际上只需要记录每个操作后,具体取到的原始数组的值域、下标域是什么。对于给定的下标域,求值域内数的个数,可以使用可持久化线段树,很类似区间第\(k\)大数的思路。对于操作一,考虑......
  • P1129 [ZJOI2007] 矩阵游戏 建模部分
    link题解没一个说为什么能用最小割的...(当然可能是只有我不知道)设交换后行、列数相同的第\(x\)行和第\(y\)列(\(x,y\)为原始位置),发现它们的交点现在位于\((i,i)\),原来位于\((x,y)\)。因为无论怎么交换位置,原来的交点仍是交点。所以可以得出一个构造方案:先选定\(n\)个点......
  • 20231212-sdfz 多校集训-杂题选讲
    杂题选讲20231212《批题乱讲》[ARC132E]Paw-期望+计数AT_arc132_e[ARC132E]Paw长为\(n\)的字符串,每个地方可能是<>.每次随机一个.的地方,然后等概率向左向右。直到走出边界或者走到.。路上会留下相同方向的符号。问最后期望<的个数有多少。\(1\len\l......
  • 「杂题乱刷」洛谷P9533
    题目链接诈骗题。容易证明,翻转任意一个“灵异区间”时,整个序列的“灵异区间”的数量总数都不会变,因此我们直接输出原数列的“灵异区间”的总数即可。参考代码:点击查看代码/*Tips:你数组开小了吗?你MLE了吗?你觉得是贪心,是不是该想想dp?一个小时没调出来,是不是该考虑换题?*......
  • 「杂题乱刷」洛谷P2426
    题目链接一道简单区间dp。设\(dp_i\)为删到第\(i\)个数时的最大值,状态转移方程也挺好写的。时间复杂度\(O(n^2)\)。参考代码:点击查看代码/*Tips:你数组开小了吗?你MLE了吗?你觉得是贪心,是不是该想想dp?一个小时没调出来,是不是该考虑换题?*/#include<bits/stdc++.h......