返回顶部

随笔分类 -  ABC

摘要:AtCoder Beginner Contest 226 A - Round decimals 给你一个小数让你输出四舍五入后的整数,我直接%.0f输出wa了一个点,用字符串判断过了。。。 B - Counting Arrays 给你$n$个数组,问你有多少种数组 直接map输出size就好 C - 阅读全文
posted @ 2021-11-08 01:26 _Kolibri 阅读(138) 评论(0) 推荐(0)
摘要:题意:有一长度为$n$的括号序列,有$q$个询问,两种操作,1是交换$l$和$r$位置的字符,2是询问$l$到$r$的括号序列是否合法。 题解:先将括号序列用$1$和$-1$表示,不难发现,对于一个合法的括号序$[l,r]$,其区间和一定为0,且区间内任一位置的前缀和都不能小于$0$,即前缀和最小值 阅读全文
posted @ 2021-10-22 11:03 _Kolibri 阅读(96) 评论(0) 推荐(0)
摘要:Exawizards Programming Contest 2021(AtCoder Beginner Contest 222) A - Four Digits 水题 B - Failing Grade 水题 C - Swiss-System Tournament 题意:有$2n$个玩家,玩$m$ 阅读全文
posted @ 2021-10-10 01:06 _Kolibri 阅读(144) 评论(0) 推荐(0)
摘要:题意:给你一个长度为$n$的序列,问你有多少子序列满足第一个元素不大于最后一个元素。 题解:假设子序列的尾元素在原序列的位置为$j$,如果$i\ (i<j)$位置满足$A[i]\le A[j]\(,那么,\)[i,j]$的合法子序列个数为$2^{j-i-1}$,因为一定选$i$和$j$,中间的部分有 阅读全文
posted @ 2021-10-06 15:55 _Kolibri 阅读(90) 评论(2) 推荐(1)
摘要:AtCoder Beginner Contest 220 A - Find Multiple 水题 B - Base K 水题 C - Long Sequence 题意:有长度为$n$的序列$A$,$B$由连续$10^{100}$个$A$拼接而成,给你一个$X$,问你$B$的最小的前缀和位置$k$, 阅读全文
posted @ 2021-09-27 22:14 _Kolibri 阅读(241) 评论(0) 推荐(0)
摘要:A - Weather Forecast 水题 B - qwerty 水题 C - Shapes 不想写模拟,555 D - Rectangles 题意 :二位坐标轴上有$n$个点,问你能构造多少和坐标轴平行的矩形. 题解:暴力枚举左上和右下,用map存一下每个点是否出现。 代码: #include 阅读全文
posted @ 2021-09-11 22:03 _Kolibri 阅读(94) 评论(0) 推荐(0)
摘要:题意:一张$n$个点的完全图,删去$m$条边,一共走$k$步,问你从起点出发再回到起点一共有多少种方案? 题解:设$dp[i][j]$表示走了$i$步,以$j$为终点的方案数,那么状态转移为$dp[i+1][u]=\sum_{v\in edge[u]} dp[i][v]$. 此时的代码为(注意此时的 阅读全文
posted @ 2021-09-08 19:39 _Kolibri 阅读(118) 评论(1) 推荐(0)
摘要:传送门 A - Blood Pressure 水题 B - Cycle Hit 水题 C - chokudai 题意:给你一个字符串$S$,问你有多少子序列能构成$chokudai$,答案$\mod 1e9+7$. 题解:根据每个连续性,当遍历到某个字符时,状态一定只从它在模板串的上一个字符转移过来 阅读全文
posted @ 2021-09-07 22:15 _Kolibri 阅读(95) 评论(0) 推荐(0)
摘要:A - Bitwise Exclusive Or 水题 代码: #include <bits/stdc++.h> #define ll long long #define fi first #define se second #define pb push_back #define me memse 阅读全文
posted @ 2021-08-09 22:14 _Kolibri 阅读(138) 评论(0) 推荐(0)
摘要:题意:有一长度为$n$的序列,问有多少种方式将其分成连续的$k$个序列$B_1,B_2,...,B_k$,使得对于每个$i\ (1\le i\le k)$都能整除$B_i$的元素和. 题解:设$dp[i][j]$为取前$i$个数分成$j$个$B$序列的方法数.那么可以写出一个比较暴力的$dp$转移式 阅读全文
posted @ 2021-07-07 08:54 _Kolibri 阅读(186) 评论(0) 推荐(1)
摘要:题意:有$n$x$n$的矩阵,用$k$x$k$的小矩阵去遍历整个矩阵,求所有$k$x$k$矩阵中遍历时的最小中位数. 题解:二分答案.将原矩阵根据二分的值变成01矩阵,如果元素值不小于$x$就变为$1$,否则就是$0$.对于某个$k$x$k$的小矩阵,统计它的元素和,如果它的和$sum<\lfloo 阅读全文
posted @ 2021-06-01 02:40 _Kolibri 阅读(207) 评论(0) 推荐(0)
摘要:题意:有一颗树,根结点为$1$.$q$个询问,每次问你共有多少经过$u$点且到根节点距离为$d$的点. 题解:这题技巧性好强,我们从根节点遍历整颗树,用时间轴记录搜到和离开的时间$in_i$和$out_i$,同时存入同一深度的所有$in_i$,方便后面计算.对于某个父亲结点$u$,它的一个子树结点为 阅读全文
posted @ 2021-06-01 02:19 _Kolibri 阅读(71) 评论(0) 推荐(0)
摘要:题意:一长度为$n$的序列,有$m$个限制条件,问有多少排列方法使得题目所给的$m$个限制条件都满足. 题解:$n$给的范围很小,我们可以状态压缩,$v[num][j]$表示题目所给的限制条件前$num$个数最多不大于$y$的个数,我们可以枚举所有情况,然后判断每个状态是否和题目所给的条件冲突,如果 阅读全文
posted @ 2021-04-29 16:44 _Kolibri 阅读(135) 评论(0) 推荐(0)
摘要:题意:有一辆火车在$A$点和$B$点之间来回跑,到达$B$点后会停留一段时间,火车从$A$点出发,你刚开始就坐在火车上,你每过一段时间就会睡觉,问你能否在醒着的时候在$B$点下车. 题解:题目中的不等关系式已经给的很明确了,因为区间范围最大为$500$,所以我们可以$O(n^2)$枚举两个关系式的时 阅读全文
posted @ 2021-03-05 13:18 _Kolibri 阅读(138) 评论(0) 推荐(0)
摘要:题意:有$n$个点,$m$条单向边,保证每条边的起点小于终点,每个点都有权值,找到联通的点的两个点的最大差值. 题解:因为题目说了起点小于终点,所以我们可以反向存边,然后维护连通边的前缀最小值,如果当前点的入度不为$0$,则更新答案. 代码: #include <bits/stdc++.h> #de 阅读全文
posted @ 2021-01-17 15:45 _Kolibri 阅读(119) 评论(0) 推荐(0)
摘要:题意:你需要订阅一些服务,每个服务每天需要花费$c_i$,要从第$a_i$用到第$b_i$天,你可以购买会员,会员每天需要花费$C$,但是这天的服务不用再另花钱了,问你订阅这些服务的最小花费是多少. 题解:对于这种某一段区间的加加减减的问题,我们首先应该考虑的是用差分,我们可以用map来做差分数组, 阅读全文
posted @ 2021-01-16 14:16 _Kolibri 阅读(143) 评论(0) 推荐(0)
摘要:题意:有$2^n$个人站成一排比赛,刚开始每个人都和自己右边的人进行比赛,赢得人晋级下一轮(下标的小的在前面),不断重复这个过程,问最后拿到第二名的人的编号. 题解:根据题意,可以用vector直接模拟这个过程. 代码: #include <bits/stdc++.h> #define ll lon 阅读全文
posted @ 2021-01-16 14:04 _Kolibri 阅读(142) 评论(0) 推荐(0)
摘要:题意:有围着一圈的$N$把椅子,其中有一个是冠位,你在离冠位顺时针$S$把椅子的位置,你每次可以顺时针走$K$个椅子,问最少要走多少次才能登上冠位,或者走不到冠位. 题解:这题和洛谷那个青蛙🐸的约会简直一模一样啊,我们可以把圆看成是一条直线,我每次都向前都$k$步,多出$N$的部分我们可以对$N$ 阅读全文
posted @ 2020-12-20 15:11 _Kolibri 阅读(220) 评论(0) 推荐(0)
摘要:题意:有一个长度为$n$的数组,你可以从中选一些数出来使得它们的和不大于$t$,问能选出来的最大的和是多少. 题解:$n$的数据范围是$40$,直接二进制枚举贴TLE,之前写过这样的一道题,数据范围也是$40$,我们可以将$40$对半分,用两个数组分别记录$n/2$个数,然后再用两个数组记录它们二进 阅读全文
posted @ 2020-11-28 01:48 _Kolibri 阅读(95) 评论(0) 推荐(0)
摘要:题意:给你一张图,$S$表示起点,$G$表示终点,$.$表示可以走,#表示不能走,小写字母可以传送到任意一个相同的字母的位置,问从$S$走到$G$的最小步数. 题解:假如不考虑字母的话,就是一个经典的bfs,当我们走到字母时,将其它相同字母的位置入队,之后就不会再将它们入队了,因为之后走到这个字母的 阅读全文
posted @ 2020-11-28 01:30 _Kolibri 阅读(158) 评论(0) 推荐(0)