首页 > 其他分享 >2025.1.1 近期练习

2025.1.1 近期练习

时间:2025-01-01 19:52:51浏览次数:1  
标签:那么 2025.1 练习 最小 近期 ge 入边 排序 我们

新年好,各位。

P7054 [NWRRC2015] Graph

我们假设 \(k=0\),那么我们求最小字典序就是通过一个小根堆维护当前入度为 \(0\) 的点,每次取出最小。
那么如果 \(k\neq 0\),我们就可以阻止“取出最小”这个过程,也就是给当前最小这个点一个入边。
我们重复给当前最小点一个入边的操作可以贪心地使最小字典序最大。
但是入边是从哪里连过来的很难处理。我们考虑先不给这个点分配入边。
直到必须要用到上述点的时候,我们让其连向拓扑序的上一位即可。所以我们用大根堆维护这些点。
所以当小根堆大小 \(\ge 2\) 的时候,取出最小的并将其加入大根堆。
注意小根堆大小为 \(1\) 的时候就无法给其分配入边了,否则一定成环。
不过我们可以考虑取出一个大根堆里的元素出来,连上上一个,并让当前小根堆的元素连向他。
若小根堆大小为 \(0\),那么我们就要取出大根堆的元素,每次弹堆顶即可。

AGC001F Wide Swap

首先考虑令 \(Q=P^{-1}\),即 \(P_{Q_i}=i\),\(Q_i\) 相当于是在排列 \(P\) 中 \(i\) 的位置。
那么交换的条件就相当于交换相邻的 \(Q_{i},Q_{i+1}\),且他们差的绝对值 \(\ge K\),转化为熟悉的模型。
我们要想 \(P\) 的字典序最小,就相当于将 \(Q\) 排序。
注意到,重复交换 \(Q_{i}-Q_{i+1}\ge K\) 的两位置过后,每次都是使其更优,重复操作直到 \(Q_i-Q_{i+1}<K\)。
注意,我们去除了绝对值,相当于每次都减少了一个逆序对,与排序的本质相同。
那么最后 \(Q\) 相当于排好序。并且有且仅有一种排好序的方式,此时是最优的。可以关注 \(K=1\) 的情况。
证明有且仅有一种最优,假设存在另一种,那么肯定存在某对数相对位置改变,
而操作可逆,所以这两种状态是可达的,那么这对数是可以调换顺序的,所以只有一种最优。
排序的话,如果是 \(O(n^2)\) 那么可以直接类比冒泡排序。优化考虑换成归并排序。
相当于合并两段数,这两段数都满足 \(Q_i-Q_{i+1}<K\),并且各自内部顺序不会再改变。
我们只需要解决当前数是填左边的还是右边的问题。如果右边更优那么其就得交换到左边这里来。
设左边是第 \(i\) 个数,右边是第 \(j\) 个数,\(R_j\) 要交换到 \(L_i\) 前面,那么 \(L_{i,i+1\dots mid}-R_j\ge K\)。
所以我们只需要求一个后缀最小值即可。于是归并排序完成。
联想到排序确实很厉害。但是有没有简单的办法呢?
考虑相对位置不变的数,他们之间连有向边,跑拓扑排序即可。用线段树优化建图。像 AGC010E。

标签:那么,2025.1,练习,最小,近期,ge,入边,排序,我们
From: https://www.cnblogs.com/Simon-Gao/p/18646228

相关文章

  • (王道练习代码仓库)单链表操作
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>typedefintElemtype;//节点定义typedefstructLNode{ Elemtypedata; structLNode*next;}LNode,*LinkList;//求链表的长度intLenthList(LinkListhead){ LNode*p=head->next;......
  • 2025.1.1 鲜花
    Cdq解决一类最值和双端点有关的数点问题COLORFULBOX真っ白な想いに梦のかけらを描いて动き出す未来子供の顷に知った心が跃るようなわくわくする感情を今も覚えてるよ迷いや不安はない期待に溢れてる何にだってなれそうな気がしたはじまりの静けさとこれからに......
  • 流量分析 - 练习篇2
    L1-2 流量分析流量包描述:某天晚上安服仔小辉辉上班摸鱼期间突然发现服务器登入页面被挤掉线了,于是第六感告诉他,服务器肯定是被黑客攻击了,于是他赶紧把服务器的网线拔了并调取了那段时间的流量,然后慌忙的找到你,求求你救救安服仔吧1.分析L1-2.pcapng数据包文件,通过分析数据包L1-2.p......
  • 2024.12.30 ~ 2025.1.5
    12.30忘了具体干了点啥,应该是啥也没干,因为我没记住任何东西(12.31上午模拟赛。然后题目过于困难了......
  • 【练习】KY267 对称平方数1
    题目打印所有不超过256,其平方具有对称性质的数。如2,11就是这样的数,因为2*(2)=4,11*(11)=121。输入描述:无任何输入数据输出描述:输出具有题目要求的性质的数。如果输出数据不止一组,各组数据之间以回车隔开。来源:牛客KY267——————————————————————......
  • 【C语言练习(19)—加强对指针练习】
    C语言练习(19)文章目录C语言练习(19)前言问题问题解析总结前言主要练习如何使用指针,进一步加深对指针使用。问题有n个数,将前面的m个数拿出来,放到最后面,剩余的数一次向前移动m个位置。问题解析创建一个数组,并求出这个数组的长度,把数组打印出来intarr[10]={0};......
  • 【练习】完美数列:给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M
    题目给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M<=m*p,则称这个数列是完美数列。现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数N和p,其中N(<=105)是输入的正整数的个数,p(<=109)是给......
  • 网络空间安全导论(练习二)
    1.简述密码分组与流究码的概念和异同概念:密码分组:是将明文消息编码表示后的数字序列,划分成长度相等的组,每组分别在密钥的控制下变换成等长的数组数字序列。流密码:又称序列密码,是将明文视为连续的比特流,对每个比特或字节进行实时加密,加密和解密双方使用相同伪随机加密数......
  • 网络空间安全导论(练习一)
    1.计算十进制数-120对应的二进制数,包括:原码,反码,补码。要求写出计算过程及步骤2.计算A,B,C三类ipv4地址的,网络数量,及主机数量A类地址网络数量:A类IP地址的网络号占1个字节(8位),但第一位固定为0,所以网络号的有效位数是7位。根据公式2^n(n是网络号位数),A类地址的网络数量为2......
  • 五上数学第1次期末模拟练习情况反馈203班
    五上数学第1次期末模拟情况反馈203班本周进行了数学地1次期末模拟的综合练习,已经进行了讲评。试卷和答题卡已经下发,请学生带回家改完错误(改在答题卡上面),家长签字。签字在试卷的左上角,签字示范:家长阅,12月28日,或者再写一些建议与意见都可以。表扬已经在学校就改完试卷错误,并给周......