首页 > 其他分享 >cmd 的图论练习题(近期总结 2024.3.11)

cmd 的图论练习题(近期总结 2024.3.11)

时间:2024-03-11 22:22:48浏览次数:23  
标签:练习题 连边 2024.3 环上 ... 数为 cmd le 考虑

AGC010E Rearranging

link

题意:一个序列 \(a_{1...n}\),两个人游戏。先手打乱这个序列,然后后手可以多次选择一对相邻的互质的数交换。先手希望最终序列字典序尽量小,后手则相反。两人都绝顶聪明,求最终序列。

\(1\le n\le 2000,\space 1\le a_i\le 10^8\)

考虑不互质的两个数 \(a_i,a_j\),他们的相对顺序不会改变。可以发现,在确定所有数对的相对顺序情况下,后手可以任意操作。

在 \(i,j\) 之间连一条边,那么先手相当于给这些边定向成一个 DAG,然后后手给这个 DAG 找个字典序最大的拓扑序列。

因此现在要求的是:给一个图定向成 DAG,使得字典序最小的拓扑序最大。

可以先加一个超级源点,方便处理。

考虑 dfs。当前搜到了 \(u\),考虑所有连边,如果 \(v\) 没搜过则按 \(u\to v\) 的方向定向,否则 \(v\to u\)。我们先从大的点搜,如果可以连到小的话最好,否则也不亏。

最后一遍拓扑排序求最大字典序的拓扑序即可。记录


AGC038F Two Permutations

link

题意:两个 \(1\sim n\) 的排列 \(p_{1...n},q_{1...n}\),你需要确定另外两个排列 \(a,b\),满足 \(\forall i\in [1,n]\) 都有:

  • \(a_i=i\) 或 \(a_i=p_i\)

  • \(b_i=i\) 或 \(b_i=q_i\)

最大化 \(\sum\limits_{i=1}^n [a_i \not = b_i]\) 的个数,输出这个值。

\(1\le n\le 10^5\)

考虑求最小的 \(\sum\limits_{i=1}^n [a_i=b_i]\)。

对于 \(p\) 的每个环,对应的 \(a\) 要么全是 \(a_i=i\),要么全是 \(a_i=p_i\),\(q\) 同理。

那么相当于我们为 \(p\) 和 \(q\) 都选择若干个环,然后对于每个 \(i\) 分类讨论:

  • \(a_i=b_i=i\):此时贡献恒为 \(1\)

  • \(a_i\not=i,b_i=i\):当选择 \(p_i\) 所在环时贡献 \(1\)

  • \(a_i=i,b_i\not=i\):当选择 \(q_i\) 所在环时贡献 \(1\)

  • \(a_i\not=i,b_i\not=i,a_i\not=b_i\):当同时选择 \(p_i,q_i\) 所在环时贡献 \(1\)

  • \(a_i\not=i,b_i\not=i,a_i=b_i\):当同时选择或同时不选 \(p_i,q_i\) 所在环时贡献 \(1\)

考虑 \(p,q\) 环之间的“选、不选产生贡献”的问题,启发我们使用最小割。

(下面用 \(p,q\) 分别表示 \(p_i,q_i\) 所在环)考虑选择 \(p\) 则他与 \(S\) 连通,选择 \(q\) 则他与 \(T\) 连通。具体的:

  • \(a_i=b_i=i\):不用管

  • \(a_i\not=i,b_i=i\):连边 \(p\to T\)

  • \(a_i=i,b_i\not=i\):连边 \(S\to q\)

  • \(a_i\not=i,b_i\not=i,a_i\not=b_i\):连边 \(p\to q\)

  • \(a_i\not=i,b_i\not=i,a_i\not=b_i\):连边 \(p\to q\) 和 \(q\to p\)

时间复杂度 \(O(n\sqrt n)\)。


AGC008E Next or Nextnext

link

题意:给出 \(n,a_{1...n}\),其中 \(1\le a_i\le n\)。求有多少个 \(1\sim n\) 的排列 \(p\),满足对于 \(\forall i\in[1,n]\) 都有 \(a_i=p_i\) 或 \(a_i=p_{p_i}\)

\(1\le n\le 10^5\)

考虑连边 \(i\to a_i\),这是内向基环树森林,对于每个基环树分别求解。

先找出当前环。我们要构造 \(p\),环上点一定是错杂的排列在 \(p\) 的环上。

(红色是基环树的环上点)

不难发现,如果一个环上点与非环上点的连边数量 \(>1\),一定无解。

进一步的,如果存在一个点(可以不在环上),他和非环上点的连边数量 \(>1\),无解。

考虑判完之后基环树长这样:

即每个环上点都可能带着一条链。

考虑一点环上点带着一个环外点,这个环外点可以塞进该环上点和前一个环上点的缝隙中。如果前一个点没有带着链,还可以塞入前一个的缝隙。

如果带着一条 \(s\) 个的链,考虑前面有 \(r\) 个缝隙:

  • \(s>r\):无解

  • \(s=r\):方案数为 \(1\)

  • \(s>r\):方案数为 \(2\)

这样就可以做了。

但是还要判断所有点都不带链的情况,稍微手玩一下会发现一个大小为 \(S\) 的偶环可以合并成大小为 \(2S\) 的环,方案数为 \(S\)。

一个长度 \(S\) 大于 \(1\) 的奇环可以让每个点都往后跳两步,操作后还是一个环,方案数为 \(2\)。

把单独的环分出来,按大小分类,枚举多少个环合并,随便乘一下。

时间 \(O(n)\)。记录

标签:练习题,连边,2024.3,环上,...,数为,cmd,le,考虑
From: https://www.cnblogs.com/Sktn0089/p/18067228

相关文章

  • 如何在cmd窗口关闭情况下保持后台启动docsify?
    1.首先我们知道docsify的启动命令操作如下:1.1在docsify的主目录(index.html)下启动cmd命令1.2在当前路径下的cmd窗口执行docsify启动命令:docsifyserve1.3这样我们打开任意浏览器,在浏览器窗口输入如下命令,即可看到我们本地启动的docsify的界面http://127.0.0.1:3000/......
  • github上十款热门cmdb项目分享
    github上十款热门cmdb项目分享原创静静和小沐沐IT运维技术圈2024-03-1110:07广东听全文图片 1.Snipe-IT简介:Snipe-IT是一个免费、开源的IT资产管理系统,用于跟踪资产、许可证、配件、耗材以及可借用的资产。它提供直观的界面,支持导入/导出功能,并且有强大的搜索和报告......
  • 2024.3.04~2024.3.10 by manjuan
    给你一个数组a1,a2…an。请计算有多少个图元(i,j,k,l)符合以下条件:·\(1\)\(\le\)\(i\)<\(j\)<\(k\)\(<\)\(l\)\(\le\)n·a\(i\)\(=\)a\(k\)和a\(j\)\(=\)a\(l\)\(Input\)Thefirstlinecontainsasingleinteger\(t\)(\(1\)≤\(t\)......
  • CMD和power shell命令
    CMD命令:calc寄存器devmgmt.msc设备管理器dvdplayDVD播放器explorer打开资源管理器notepad打开记事本magnify放大镜实用程序mspaint画板mstsc远程桌面连接narrator屏幕“讲述人”osk打开屏幕键盘regedit.exe注册表write写字板control控制面板desk.cpl......
  • 2024.3 记录
    3.5vp了一场edu,过了四题,但是D题有*2100,自我感觉还行。这里写一下后三题的题解。CF1913DArrayCollapse数字互不相同,先上个单调栈求出每个点的支配区间。考虑dp,\(f_i\)表示只考虑\([1,i]\)时的方案数,找到最靠左的\(j\)满足\([j,i]\)间不存在小于\(p_i\)的数,那......
  • 2024.3.9 - 3.15
    SatLGR-176(Div.2)A.区间和问题,一眼盯真:前缀和。B.bfs,顺便记一下转移方向。C.最小化最大值,二分答案,用点DS实时维护逆序对即可,笔者用了线段树。D.区间DP,预处理一下\(a_i^{a_j}\)的值,然后记\(f_{l,r,0/1}\)表示到达了\([l,r]\)区间,并且最后一步是取了头部/尾部到达该......
  • 痞子衡嵌入式:不清i.MXRTxxx里FLEXSPI_MCR0寄存器保留位会造成IP CMD读写异常
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是不清i.MXRTxxx里FLEXSPI_MCR0寄存器保留位会造成IPCMD读写异常。痞子衡曾经写过一篇文章《改动i.MXRT1xxx里IOMUXC_GPR寄存器保留位可能会造成系统异常》,这篇文章提出了一个观点,即对于MCU外设寄存器应......
  • 2024.3.9 笔记
    2024.3.9笔记P1948题目大意为在无向图上求出从\(1\)到\(N\)的路径,使路径上第\(k+1\)大的边权尽量少。第一种是DP用\(f[i][j]\)表示从\(1\)到点\(i\),用了\(j\)条免费线的最小花费。对于一条\(u->v\)的边\(e\)有转移:不用免费线\(f_{v,k}=min(f_{v,k},max......
  • 肖SIR__数据库之存储过程 练习题__16.2
    实验一、实验要求:理解存储过程的概念掌握存储过程的语法格式、使用方法掌握存储过程的创建、执行二、实验前提:–droptableifexistsstudent;–Createtablestudent–(Idvarchar(255),#学号–Namevarchar(255),#姓名–Roomidvarchar(255),#班级–Sexchar(1),#......
  • 2024.3.7习题总结
    CF1288C题目可以把\(a\)数组和\(b\)数组的倒序合并,这样,题目就成了求出长度为\(2m\)的序列递增的方案数,\(dp\)求解可以把长度为\(2m\)的差分数组。对于任意一个\(c_i\),\(c_i\ge0,\sumc_i\len\),所以方案数为\(C_{n+2*m-1}^{2*m}\)CF1569C......