07 2020 档案

摘要:题意 题意 题解 艹,推逆序对推错了,艹 咳咳,依旧是两种做法。 做法1 考虑把整个图化成一条数列。(第二行拼到第一行后面,以此类推) 考虑整个图的逆序对数($0$也考虑上)。 左右交换会使逆序对数$+/-1$,那么上下交换呢? 由于$0$比所有数字都要小,所以肯定会$+-n$ 那么$x$在数列和中 阅读全文
posted @ 2020-07-31 14:09 敌敌畏58 阅读(252) 评论(0) 推荐(0)
摘要:题意 题意 思路 做法1 首先,这道题目有人可能会觉得第$i$个位置不能同时跟左边交换或跟右边交换,但是其实第$i$个位置想要向前回到它原来的位置,但是如果后面的有比$i$还小的数字就会既左旋又右旋了。那怎么看是不是最小操作次数呢?只要看每次操作有没有序列尽量有序,或者说这个操作有没有浪费就行了。 阅读全文
posted @ 2020-07-31 12:16 敌敌畏58 阅读(157) 评论(0) 推荐(0)
摘要:题意 题意 题解 注:本文的代码中的输出不严格正确,反正loj的数据也没多强,不会PE。如果后面加强了当我没说 做法1 没错,第一个还是我的做法。 记得是哪年的SCP还是NOIP初赛竟然程序题就是这个思路,然后我照搬了。 我们这道题目反着考虑,它让我们加数,我们就删除数字,从后往前删除数字,我们先建 阅读全文
posted @ 2020-07-31 10:59 敌敌畏58 阅读(249) 评论(0) 推荐(0)
摘要:题意 题意 题解 我们将喜欢的店铺称为点。 对于行和列,我们证明一下,如果我们$i,i+1$列的点的数量不同,那么一定可以让某一列的点$--\(,另一列的点\)++$。同时如果现在存在移动是第$i$列的一个点移动向了第$i+1$列,那么$i,i+1$列的点的数量肯定不一样,因为一样的话没有必要移动$ 阅读全文
posted @ 2020-07-31 09:05 敌敌畏58 阅读(90) 评论(0) 推荐(0)
摘要:题目 题目 讲解 假设我们现在这个货仓建立在$(a[i],a[i+1])\(之间(注意,不是\)[a[i],a[i+1]]\(),那么我们向右移动,整个距离变化是:\)(n-i)-i=n-2i$,而向右移动是$i-(n-i)=2i-n$,所以当$n-2*i=0$时,说明没有办法再让结果增大或者减少了 阅读全文
posted @ 2020-07-30 15:15 敌敌畏58 阅读(122) 评论(0) 推荐(0)
摘要:题意 题意 题解 都是用离散化的吗?这么神奇? 我的思路就是对于$a$排序,对于语音和字幕的也分别排序,然后三个指针一起从小到大跳得到每个电影的语音和字幕能让多少个人高兴起来。 时间复杂度:\(O(nlogn+mlogm)\) 代码 #include<cstdio> #include<cstring 阅读全文
posted @ 2020-07-30 14:51 敌敌畏58 阅读(109) 评论(0) 推荐(0)
摘要:题目 题目 题解 会告诉我们$a,b$的大小关系,也就是$>\(或者\)<$的比较关系,然后排序,不就是根据比较进行排序吗?然后看数据范围,发现最多只能比较$nlogn$次,所以我们要选择通过比较进行排序的算法中时间复杂度是$O(nlogn)$(因为比较排序的比较次数就差不多等于时间复杂度)的才可以 阅读全文
posted @ 2020-07-30 14:19 敌敌畏58 阅读(142) 评论(0) 推荐(0)
摘要:题意 题目 做法 做法1 没错,这个时间复杂度垃圾的做法就是我的做法。 我们用double进行二分,二分可能的平均值,这个平均值是否满足要求是满足二分性的。 但是$check$函数怎么打呢?也就是说我们要确认一个数列能否构成这样的平均值$x$,该怎么做呢?我们只需要把每个数字减去$x$,然后判断是否 阅读全文
posted @ 2020-07-30 11:04 敌敌畏58 阅读(179) 评论(0) 推荐(0)
摘要:题目 题目 题解 这道题目我是真的觉得比较难QAQ。 首先,对于$A,B(A<B)$能互相看到,肯定不存在$x,y(A<x<B,y>B或者y<A)$能互相看到,所以$A,B$互相看到其实就划分了一个区域了,所以对于$A,B$能够看见,中间的数字的$f$就要小于$min(f[A],f[B])$,所以不 阅读全文
posted @ 2020-07-29 14:42 敌敌畏58 阅读(96) 评论(0) 推荐(0)
摘要:题目 题目 题解 首先,我们确定几个性质: 答案要正确,必须要保证操作次数最小(这不是废话吗(╯‵□′)╯︵┻━┻)。 对于同一个区间而言,只能存在$+\(或\)-$的操作,否则是浪费。 对于一个$+\(操作而言,不能有和它相接的\)+\(操作,\)-$操作也是,否则可以合并并造成更小的次数,如:$ 阅读全文
posted @ 2020-07-29 13:23 敌敌畏58 阅读(163) 评论(0) 推荐(0)
摘要:题目 题目 题解 做法1 没错,这个是我的做法,我们首先要搞明白,$RR$的矩阵最多炸到$RR$个位置,而且最优的情况绝对不是炸弹在整点的情况(因为边缘炸不到。) 看这个图: 黑色的矩阵就只炸到了$1,1$,绿色的矩阵却可以炸到$2,1$和$1,1$,多炸了一个,为什么? 因为两个都是炸不到$0,1 阅读全文
posted @ 2020-07-29 10:27 敌敌畏58 阅读(106) 评论(0) 推荐(0)
摘要:题目 题目 做法 题目很明显是问你编号为$i$的坐标,然后用勾股定理。 其实不难看出一个事情,就是你可以把第二幅图看成第一幅图,然后按一=》二的方法去变成二=》三。 所以不难看出的是所有等级的图都可以堪称$n=1$的图然后拼成$n=2$的图等量代换。 所以我们可以找到规律,拼图的顺序是('.'号是用 阅读全文
posted @ 2020-07-29 09:32 敌敌畏58 阅读(111) 评论(0) 推荐(0)
摘要:题目 题目 题解 思路很神奇,把$A$分解成$a_1^*a_2^a_3^...*a_n^$($a_i$为质数)。 那么,我们现在就得到了他的质因数以及每个质因数的个数了,而它的约数肯定是在其中选择的几个数字相乘得到的,换个角度想,其实就是对于每个质因数选择多少个的问题。 不难想到,当选$0$个$a_ 阅读全文
posted @ 2020-07-29 08:23 敌敌畏58 阅读(208) 评论(0) 推荐(0)
摘要:题目 题目 做法 没错,仍然是做法1和做法2 做法1 暴力出奇迹!!!! 我们发现这道题目是四个塔,那我们就四进制表示每个盘子的状态,大概是$2^{24}$级别的,用bool数组不会爆炸,然后暴力模拟即可。 等会,好像是要最小步数,那我们用BFS而且bool改int就可以了,这么简单。 BFS开个队 阅读全文
posted @ 2020-07-28 15:57 敌敌畏58 阅读(138) 评论(0) 推荐(0)
摘要:题目 题目 讲解 先将两个比较重要的性质: 对于一个按钮,不可能按两次,按两次就等于不按。 按按钮的顺序不会影响最终结果。(也就是无序) 至于为什么,可以结合位运算来思考,在此不多讲了。 仍然分成做法1和做法2。 做法1(我的做法) 没错,我的做法就是暴力,传统艺能。 为了节省空间,我把$1$设为灯 阅读全文
posted @ 2020-07-28 15:14 敌敌畏58 阅读(114) 评论(0) 推荐(0)
摘要:题目 题目 题解 位运算一个很重要的性质,位与位之间不会互相影响。 我采用的做法是从大到小判断每一位取多少结果是$1$。 时间复杂度:\(O(nlogn)\) 对于每一位我们暴力代$1$或$0$进去,然后看结果是不是$1$就行了,如果都是$1$我们这一位优先取$0$,给后面的点创造更多可以选择的空间 阅读全文
posted @ 2020-07-28 12:38 敌敌畏58 阅读(134) 评论(0) 推荐(0)
摘要:题目 题目 思路 前排提示:这里的下标全部从$1$开始 思路怎么可能时二进制DP呢?这才第一章啊。 应该吧 然后我用了BFS暴力搜索。 首先,我们发现题目是一个无向完全图,虽然我做完还是不知道a[x,y]+a[y,z]>=a[x,z]有什么用其实这也不重要,我用BFS的管我屁事。好像DP的也无关紧要 阅读全文
posted @ 2020-07-28 11:10 敌敌畏58 阅读(140) 评论(0) 推荐(0)
摘要:题目 题目 思路 做个🔨 这道题目,不愧对它是红色的,首先,我们先把连续的正数分到一块,连续的负数分到一块,连续的$0$就根据左右数字的正负性归到左边的块和右边的块(但是绝对不允许单独成块,我就是在这个分块的地方调了好久,然后干脆直接用题解的思路了)。 然后这个时候我们就发现了很美妙的性质,数列是 阅读全文
posted @ 2020-07-28 09:57 敌敌畏58 阅读(94) 评论(0) 推荐(0)
摘要:题目 题目 解法 这不是用平衡树随便搞吗 怎么可能用这么复杂的代码!!!(╯‵□′)╯︵┻━┻ 实在不行用离散化加主席树也可以啊 怎么可能打线段树啊(╯‵□′)╯︵┻━┻ 树状数组加二分也行啊,你不嫌弃直接树状数组也可以啊 也不想打啊(╯‵□′)╯︵┻━┻ 平衡树不是有STL吗? 不用STL(╯‵□ 阅读全文
posted @ 2020-07-27 16:37 敌敌畏58 阅读(120) 评论(0) 推荐(0)
摘要:题目 题目 解法 老哥,数据是真的水啊,让我的暴力过了就不说了,还花了我一个小时时间证明了题解里面一个AC的代码是错的!!! 首先,这些解法都基于一个特别基础的思想,就是这个最小覆盖矩阵的左上角一定在$(1,1)\(的位置,即使不在(又没说最小覆盖矩阵只能有一个),我们也可以移动到\)(1,1)$的 阅读全文
posted @ 2020-07-27 15:02 敌敌畏58 阅读(151) 评论(0) 推荐(0)
摘要:题目 题目 思路 看到这道题目我脑子里面第一个闪过的是KMP,但是看到第二问我就发现竟然是我不会的最小表示法。 首先明确一个思路,如果对于两个东西我们要确定是否相同,最好的方法就是确定一个最小的东西判断相等,例如在AcWing 156. 矩阵 中就是最小的浏览顺序,而这里则是最小的字典序,所以我们不 阅读全文
posted @ 2020-07-27 09:51 敌敌畏58 阅读(171) 评论(0) 推荐(0)
摘要:题目 题目 思路 前两种是https://www.acwing.com/solution/content/4142/中读到的。 1 我们肯定是想要把两棵树的最小表示找出来,然后看看是否相同。 在这种情况下,我们期望是每个点在其子树内按最长链长度从大到小选择子节点进行DFS,但是如果相同呢?我们就要在 阅读全文
posted @ 2020-07-27 09:15 敌敌畏58 阅读(106) 评论(0) 推荐(0)
摘要:题目 题目 思路 怎么可能是Hash 结果就是Hash,亏我想了一下午的数据结构(╯‵□′)╯︵┻━┻。 首先,这道题目是二维Hash,我们讲讲二维Hash,仍然是那个参数$a$,对于一个矩阵,,行的处理:\(P(i,j)=P(i,j-1)*a+v(i,j)\),而列呢则是:\(P(i,1)=P(i 阅读全文
posted @ 2020-07-27 08:53 敌敌畏58 阅读(128) 评论(0) 推荐(0)