首页 > 其他分享 >[题解]AT_abc224_e [ABC224E] Integers on Grid

[题解]AT_abc224_e [ABC224E] Integers on Grid

时间:2023-12-02 15:58:47浏览次数:59  
标签:连边 题解 ABC224E Grid 权值 fst

比较符合 CCF 造数据水平的题。

思路

首先可以用两个 vector<pair<int,int>> v[N] 分别将每一行、每一列的元素的权值与编号存储下来。

那么可以对所有的 \(v_i\) 按照权值从小到大排序。那么发现对于所有的满足 v[i][p].fst < v[i][q].fst 的 \((p,q)\) 都可以建一条从 \(p\) 指向 \(q\) 的有向边。按照这种方式建图,最坏情况下会有 \(\Theta(n^2)\) 级别的边。

考虑一种比较显然的贪心策略,对于一个 \(p\) 显然只需要与 \(p\) 之后第一个满足 v[i][p].fst < v[i][q].fst 连边。因为如果不这么连,将 \(p\) 连向一个拥有更大权值的点 \(k\),显然你可以通过 \(p \to q \to k\) 的方式获得更大的答案。

于是你写完过后交上去,发现会WA 1。这其中的原因就是对于权值相同的几个点,你直接取第一个是不优的。

不难发现,我们希望将所有满足条件的相同权值的点都要连边,同时保证边数尽量小。不妨考虑将这些点直接看作一个点,实现的话可以直接将这些权值相同的点连向一个超级原点,在后面连边的时候用超级原点与现在的点连边即可。

现在问题就很简单了,直接建反图,跑一边拓扑h

Code


标签:连边,题解,ABC224E,Grid,权值,fst
From: https://www.cnblogs.com/WaterSun/p/AT_abc224_e.html

相关文章

  • CSP第31次认证题解 2023.9
    A、坐标变换(其一)样例输入3210100010-201-100样例输出21-1120-10题解按照题目,一个循环即可#include<bits/stdc++.h>usingnamespacestd;#defineN200010#definelllonglongtemplate<classT>inlinevoidread(T&a){Tx=0,s=1;......
  • 可编辑Grid 设置字段只读。
    注册EditGridonrowselectedfunctiononRecordSelect(exeContext){//debugger;var_formContext=exeContext.getFormContext();vardisableFields=["name","estimatedclosedate"];lockFields(exeContext,disableFields);}functionlockFiel......
  • 使用Navicat For MSSQL连接绿色版SQLServer2008R2问题解决
    问题1、创建连接时出现错误:[IM002][Microsoft][ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序(0)Navicat来连接SQLserver,这里确实有点麻烦,出现错误[IM002][Microsoft][ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序(0),解决方法:进入Navicat的安装......
  • CF1368题解
    CF1368CodeforcesGlobalRound8ABC略。CF1368DlinkCF1368D题意给定\(n\)个非负整数\(a_1,\cdots,a_n\)。你可以进行如下操作:选择两个不同的下标\(i,j\)满足\(1\leqi,j\leqn\),并将\(a_i\getsa_i\\mathsf{AND}\a_j,\a_j\getsa_i\\mathsf{OR}\a_j\),两个赋值......
  • newstarctf2023 reverse 题解汇总
    newstarctf2023reverse题解汇总week1easy_REdie查无壳64直接IDA启动跟到main函数找到两部分flag拼起来就行了。flag{we1c0me_to_rev3rse!!}ELFdie查64ELFIDA启动稍微读一下写个py逆一下它的加密就行了flag{D0_4ou_7now_wha7_ELF_1s?}importbase64a="VlxRV......
  • ISCTFpwn的ezpie题解
    目前接触的随机好像都与地址有关,而且还有一个特性也就是只是基址随机,只要有任意一个地址就可以知道其他所有具体地址。(libc和pie保护)这里将通过ezpie这道题介绍绕过pie的一种方式,泄露地址一获取全部地址的方法。本人还不太懂partiallywrite的原理,就不误人子弟了。这里我们看到v5......
  • 【POJ 1144】Network 题解(Tarjan算法求无向图的割点)
    一家电话线公司(TLC)正在建立一个新的电话电缆网络。它们连接由1到N的整数编号的几个位置。没有两个地方的数字相同。这些线路是双向的,总是连接在两个地方,在每一个地方,线路都以电话交换机结束。每个地方都有一个电话交换机。从每个地方可以通过其他地方的线路到达,但不需要直接连接,可......
  • P9879 题解
    blog。找网络流水题写题解/hsh。间隔染色(\(i+j\)分奇偶染不同色)后,所有\(i+j\)为奇数的格子反色,题目的Pattern等价于是\(2\times2\)的全黑或全白格子。然后很自然地想Flow了。每个点分黑白两种状态。如果\((x,y)\)对应的Pattern有机会染成全黑,就连边\(S\xright......
  • 2023ISCTFpwn题目:stack题解
    这是我在这次比赛中遇到最有意思的一题,不仅让我看到了一种有意思的题型,而且让我开始看懂了pwndbg的调试界面。IDA里面是这样的,有直接可以提权的backdoor函数,有read函数,看似有点像ret2system。让我们分析一下这个函数的读入逻辑:首先让你输入一个size值,read会总共分size次读入一个字......
  • C#把listA通过“=”赋值给listB,然后对listA进行clear清空,第二个listB也清空了问题解决
    针对ArrayList赋值到另一个ArrayList的方法ArrayList<String>A=newArrayList<String>();A.add("1");A.add("2");ArrayList<String>B=newArrayList<String>();;B=A;A.clear();A清空后发现B也清空了。此时B对象相当与A对象的引用,而并不是将A对象的值单纯的传递给......