- 2024-11-21【题解】洛谷P3531: [POI2012] LIT-Letters
P3531[POI2012]LIT-Letters写了个假做法有点伤心,本以为是两个都求逆序对然后答案相减,但是这样在部分数据上确实合法,但是实际上毫无章法没有逻辑。正解考虑贪心,我们一个数字肯定要找最前面,第二次出现就去最前面第二次出现的位置,因为如果第一个A放在了后面,那么就有可能产生更对
- 2024-11-20【题解】洛谷:P8593 「KDOI-02」一个弹的投
P8593「KDOI-02」一个弹的投物理题。首先你要搞懂什么时候会炮弹碰撞,结论:y坐标相同时,水平位置\(x_i\lex_j\)且落点满足\(d_i\ged_j\),两炮弹必然碰撞。但是为什么呢,像我这种完全没学高中物理的伪高中生就不会了,下落时每个物体的相对的高度差是不变的,因为根据伽利略运动独
- 2024-11-19ABC380 DEFG 题解
ABC380题解赛时秒了ABCDE(好吧其实还是略有卡顿,写完大概花了55min),看到F有博弈直接跑了,没注意到数据范围这么小,看到G一下就会了大致思路,但具体细节上搞复杂了,快写完了才发现不用维护这么多(恼),然后因为某些神秘错误现在都还没有调出来。至于F,赛后看见数据范围这么小,自己独立
- 2024-11-18洛谷题单指南-二叉堆与树状数组-P1908 逆序对
原题链接:https://www.luogu.com.cn/problem/P1908题意解读:求逆序对,前面介绍过归并排序的做法,参考:https://www.cnblogs.com/jcwy/p/184077,这里介绍树状数组的做法。解题思路:设数组a[n]里的整数只包括1~n,显然对于此题,可以通过离散化得到这样的数组。要计算逆序对,就是要计算对于
- 2024-11-17【优选算法篇】分治乾坤,万物归一:在重组中窥见无声的秩序
文章目录分治专题(二):归并排序的核心思想与进阶应用前言、第二章:归并排序的应用与延展2.1归并排序(medium)解法(归并排序)C++代码实现易错点提示时间复杂度和空间复杂度2.2数组中的逆序对(hard)解法(利用归并排序的过程—分治)核心步骤与实现细节C++代码实现易错点提示时间
- 2024-11-16【SSLOJ 3347】动态逆序对
题目大意给出一个长度为\(n\)的排列\(a\)。每次交换两个数,求逆序对数对\(2\)取模的结果。输入格式第一行一个正整数\(n\)。第二行\(n\)个数,表示给出的排列\(a\)。第三行一个正整数\(q\)。接下来\(q\)行,每行两个正整数,表示交换\(a_i\)和\(a_j\)。输出格式输出
- 2024-11-11编写函数:递归求逆序 (Append Code) ★
Description将输入的一个字符串s逆序输出。编写函数recursive()完成程序:原型:intrecursive();功能:用递归的方法读取输入,并且逆序输出。函数的调用格式见“AppendCode”。InvalidWord(禁用单词)错误:在解决这个题目时,某些关键词是不允许被使用的。如果提交的程序中包含了下
- 2024-11-073193. 统计逆序对的数目
3193.统计逆序对的数目题目链接:3193.统计逆序对的数目代码如下:classSolution{public: intnumberOfPermutations(intn,vector<vector<int>>&requirements) { vector<int>req(n,-1); req[0]=0; for(auto&p:requirements) { req[p[0]]=
- 2024-11-05逆序乘积式
【问题描述】若两个正整数的乘积,等于两正整数各自逆序后的乘积,则称其为逆序乘积式。编写程序读入两个正整数,然后判断这两个正整数能否构成逆序乘积式。假设两个正整数的乘积不会超过int数据类型的表示范围。【输入形式】从控制台输入以一个空格分隔的两个正整数。【输出形
- 2024-11-04C++ 逆序乘积式
题目描述【问题描述】若两个正整数的乘积,等于两正整数各自逆序后的乘积,则称其为逆序乘积式。编写程序读入两个正整数,然后判断这两个正整数能否构成逆序乘积式。假设两个正整数的乘积不会超过int数据类型的表示范围。【输入形式】从控制台输入以一个空格分隔的两个正整数
- 2024-10-312024/10/31
十月的最后一天。CCO2020ExerciseDeadlines交换次数等于逆序对数量,所以我们的目标就是最小化逆序对数量。考虑一个贪心,每次将尽可能大的数放在最后面。用线段树/树状数组来维护即可。「雅礼集训2017Day4」洗衣服有一个做法是分别处理洗完每件衣服的最少时间\(a_i\),和烘
- 2024-10-31NOIP2024集训Day65 贪心
NOIP2024集训Day65贪心A.[NOI2015]荷马史诗简化题意,即构造一颗\(k\)叉树,每个节点的权值为其所有孩子的权值之和,给定的\(n\)个数必须使用,其余空缺处用\(0\)补全。考虑使用优先队列,首先弹入\(n+(n-1)\%(k-1)\)个元素(不足处用0代替),然后每次弹出前\(k\)小的数
- 2024-10-28Homework 2
HOMework2本次小作业难度较低,大部分代码可以直接AC,比较有趣的一道题需要逆序merge_sort,记录一下题目:1285.イレイナ爱排序https://acm.sjtu.edu.cn/OnlineJudge/problem/1285这道题说的是通过给定的次数来找到一个数组的排序,首先我们这么想,对于一个无序的数列,我们需要进行me
- 2024-10-24逆序对的数量
#include<iostream>usingnamespacestd;intnum[100010],temp[100010];longlongcount(intl,intr){if(l>=r)return0;longlongsum=0;intmid=(l+r)>>1;sum+=count(l,mid);sum+=count(mid+
- 2024-10-22P11208 解题报告
题目传送门将题意转化一下:将序列变为单调上升等价于逆序对总数量为\(0\)。首先看到交换相邻两个数,立马反应过来这种操作最好情况会使逆序对总数减一。为什么呢?首先肯定要前面大于后面才交换,否则一定不优。假设前为\(i\),后为\(j\),钦定我们计算逆序对的方式是从后往前,依次看
- 2024-10-17[算法日常] 逆序对
[算法日常]逆序对定义在一个长度为\(n\)的数组\(a\)中,若存在\(\forall1\lei,j\len\),使得\(a_i>a_j\),则称\(<a_i,a_j>\)为一对逆序对。举个例子,一个长度为\(5\)的数组为:15364则存在\(3\)个逆序对,分别是\(<5,3>,<5,4>,<6,4>\)。解法F1:显然,可以枚举
- 2024-10-16字典树 计数问题(含 2022 icpc杭州 K)
//最近学了字典树,补一下1.概念和实现首先,字典树是一棵树(废话),边表示字母,从根到叶子节点所有边的顺序组合表示字目排列顺序。看一下图明白很多:例如:abc这个字母排序(或者说“单词”),可以用1->2->5->8这条路径表示。有个性质就是:同一个单词的末尾节点标号是唯一的。比如以6为末尾
- 2024-10-11线性代数-行列式
n阶排列由1,2,...,n组成的一个有序数组(一个都不少)123,213,312,3213级排列改变顺序,不是同一个排列(有序)123...nn级标准排列(自然排列)行列式定义3阶行列式A3×3=|a11a12a13a21a22a23a31a32a33|=a11a22a33+a12a23a31+a13a21a32−a13a22a31−a12a21a33−a11a23a32行标取自然排
- 2024-10-08洛谷P2513 逆序对数列
Problem给定n,k,求得1~n中有多少种排列使得逆序对个数为k?(n,k<=1000)Solve考虑DP:设f[i][j]为i个数中逆序对数量为j的排列数量但因为我们并不知道我们这i个数到底是谁,难以通过以前的状态得到设f[i][j]为将i放入之前的排列后,逆序对数量为k的排列数此时我们发现可以确定前i-1
- 2024-10-07SS241007B. 逆序对(inverse)
SS241007B.逆序对(inverse)题意给你一个长度为\(n\)的排列,你可以选择一对\((i,j)\),交换\(p_i,p_j\),或者不操作,使减少的逆序对个数最多,求最多减少几个逆序对。思路首先考虑交换\(i,j\)会对哪些部分的逆序对数量产生影响。不难发现,如果我们画一个二维平面,上面有\(n\)个点
- 2024-10-06CDQ分治
前置知识 归并排序(一维偏序) 推荐写法:https://www.cnblogs.com/didiao233/p/17986130第1题 归并排序 查看测评数据信息给定你一个长度为n的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式 输入共
- 2024-10-05Mergesort Strikes Back
MergesortStrikesBack题意给你两个正整数\(n,k\),问长度为\(n\)的随机排列,做深度为\(k\)的归并排序(\(k=1\)就是不排)后,期望逆序对个数。对给定素数取模。思路首先如果\(k\ge\logn\)就可以排好序,逆序对个数为\(0\)。否则,假设排列给定,那么最后一次分治形成的若干个
- 2024-10-05LOJ6077 逆序对
lojcwoi题意求逆序对数恰为\(m\)的长度为\(n\)的排列数。\(n,m\le10^5\)。solution\(n,m\le5000\)首先对于更小的数据可以直接状压。进一步观察,发现我们并不需要知道值之间的具体大小,只用相对大小就能计算贡献了。于是设\(f_{i,j}\)表示长为\(i\),逆序对数为
- 2024-10-021002模拟赛
\(T1\):题面注意:大凡求和求积的变量都要想想要不要开\(long\\long\)别人的一个很好的思路:这道题实在逆序对(\(n,n-1,..1\))上加限制,一串连续的1进行一个\(reverse\)。这给我们的启示是:当同时有两个限制(比如这题中的逆序对数最多和大小限制),可以先考虑一个,看看能产生什么,再把另
- 2024-10-02【牛客训练记录】2024牛客国庆集训派对day2
赛后反思只开出来两题,好像水平就这样了TATI题给定一个排列,对于每项可以选择+1或者不加,求逆序对对数最小我们可以思考一下什么情况下可以减少最后答案的逆序对,对于\([4,3]\)或者\([2,1]\)这种情况,将第二个元素+1才能对答案的减少做出贡献,所以只要判断某一位的后面是否有那