首页 > 其他分享 >抽象作者被 T1 打爆

抽象作者被 T1 打爆

时间:2024-10-17 14:37:31浏览次数:1  
标签:发现 le 匹配 T1 抽象 权值 并且 考虑 打爆

考了一道抽象 AGC,属实是逆天了。

description

令 \(M\) 为一正整数。

给出 \(2 N\) 个整数 \(a_1, a_2, \ldots , a_{2N}\),满足 \(0 \le a_i < M\)。

你需要把这 \(2 N\) 个整数分成 \(N\) 对,每一对 \((x, y)\) 的权值为 \((x + y) \bmod M\)。

令一种分配方案的权值为每一对的权值的最大值,请问权值最小的分配方案的权值为多少?

  • \(1 \le N \le {10}^5\),\(1 \le M \le {10}^9\),\(0 \le a_i < M\)。

solution

首先我们发现可以二分答案,但是 Check 里面是一个 \(n^3\) 的一般图最大匹配,并且这个做法十分没有可拓展性。

于是你考虑对于每个 \(i\),寻找一个可行的最远的 \(j\),将其匹配,发现复杂度很复杂,于是考虑能不能找规律。

将样例描述一下,匹配对实际上是 \((1, 4), (2, 3), (5, 6)\),发现类似于划分为两个段,使得两个段从中间往两边扩展匹配。并且你考虑将 \(3000\) 的样例跑一下前几项,发现也符合这个规律,所以开始考虑高妙结论。

考虑枚举前一段和后一段的分界点,然后分别扩展,这样你就得到了一个 \(O(n^2)\) 做法,测了测 \(100000\) 的大样例,发现过了,于是果断考虑优化。但是发现区间贡献是一个类似于区间平移并且对应和 \(mod\) 的一个东西,这感觉用数据结构不太能优化(我更改必须更改到每一个结点 pushup 才是对的),于是不会了。

题解说分界点的值也有单调性,并且弱化限制条件,并且发现第一个段的和 \(< m\),第二个段的和 \(> m\),于是你就二分一下,就过了。

属实是纯神了。

标签:发现,le,匹配,T1,抽象,权值,并且,考虑,打爆
From: https://www.cnblogs.com/alexande/p/18472244

相关文章

  • 《天空之山》提示找不到xinput1_3.dll怎么办,xinput1_3.dll缺失的解决之道
    针对《天空之山》提示找不到xinput1_3.dll的问题,以下是一些有效的解决之道:一、了解xinput1_3.dll文件的重要性xinput1_3.dll是DirectX组件中的一个重要文件,它提供对Xbox360控制器和其他兼容设备的原生支持。对于许多游戏,包括《天空之山》,这个文件是必需的,以确保游戏能够正......
  • 2-STM32F103+ML307(中移4G Cat1)OTA升级篇(自建物联网平台)-STM32通过ML307使用http或
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ZLIOTB/ML307/myota.html"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>  说明前面......
  • java基础(6)抽象类和接口
    目录​编辑1.前言2.正文2.1抽象类2.1.1抽象类的概念2.1.2抽象类的语法2.1.3抽象类的特点2.1.4抽象类的作用2.2接口2.2.1接口的概念2.2.2接口的用法2.2.3接口的特点2.2.4实现多个接口2.2.5接口间的继承 2.2.6抽象类和接口的区别3.小结1.前言哈喽大家好吖,......
  • 1-STM32F103+ML307(中移4G Cat1)OTA升级篇(自建物联网平台)-STM32通过ML307使用http或
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ZLIOTB/ML307/myota.html"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>  说明这节......
  • leetcode 刷题day43动态规划Part12(115.不同的子序列、583. 两个字符串的删除操作、72.
    115.不同的子序列思路:这个题还是比较有难度的,问题s中有多少个t子序列可以转化为s字符串中有多少删除元素的方式,使s可以变成t。考虑动规五部曲。1、确定dp数组(dptable)以及下标的含义dp[i][j]:以i-1为结尾的s子序列中出现以j-1为结尾的t的个数为dp[i][j]。2、确定递推公式......
  • leetcode 刷题day42动态规划Part11(1143.最长公共子序列、1035.不相交的线、53. 最大子
    1143.最长公共子序列思路:718.最长重复子数组两个数组对应相同且连续,所以递推公式是dp[i-1][j-1]+1。最长公共子序列不要求连续但要求相对顺序,差别主要在于递推公式。对于该题主要有两大情况:text1[i-1]与text2[j-1]相同,text1[i-1]与text2[j-1]不相同。如果te......
  • Stanford CS149 -- Assignment 4: NanoGPT149
    作业描述及代码参见:cs149gptWarm-Up:访问张量张量/数组都是按行存储的,四维数组可以看作元素为三维数组的数组,元素大小即为三维数组内元素总数,以此类推。第1部分:简单(但不太高效)的注意力机制实现主要实现两个矩阵乘法和一个softmax运算。第2部分:块矩阵乘法和UnfusedSof......
  • Product1M 深度理解 PPT
    系列论文研读目录文章目录系列论文研读目录模态内检索:是指在同一模态(例如,图像、文本或音频)中进行的检索任务。它通常涉及在同一类型的数据中查找相关项。比如下面图像只能查询图像,文本只能查询文本,视频只能查询视频跨模态检索:是指在不同模态之间进行的检索任务,即......
  • MT1351-MT1360 码题集 (c 语言详解)
    MT1351·用函数判断素数c语言代码实现#include<stdio.h>intisPrime(intnum){if(num<=1)return0;for(inti=2;i*i<=num;i++){if(num%i==0){return0;}}return1;}intmain(){......
  • 笨方法实现resnet18
    importtorchclassmyResNet(torch.nn.Module):def__init__(self,in_channels=3,num_classes=10):super(myResNet,self).__init__()#第1层self.conv0_1=torch.nn.Conv2d(in_channels,64,kernel_size=7,stride=2,padding=3)......