ACM刷题日记
文章平均质量分 73
FearLessNOMAD
I stand in the corner like a tired boxer
展开
-
pair + sort + 栈 2018-6-17 ACM 刷题日记
<Codeforces 988E> 思维 题意: 给一个数,在这个数的各个数位中只能进行它相邻两位的互换,问最少经过经过多少次如上操作让这个数能被25整除。 思路: 由于被25整除的数都有一个性质,那就是末两位只能是25,50,75,00。所以我的想法是,构造一个后缀ab,看ab是不是以上四种中的某几种,比如2057,它能构成三种后缀,即25,50,75,显然75是花费最小...原创 2018-06-17 18:52:24 · 332 阅读 · 0 评论 -
2018-7-7 ACM 刷题日记
从今天开始就正式回归刷题日常啦~<Codeforces 1004C>题意:给一个序列,每个数都和它后面的所有数进行配对,问能组成多少个不同的有序对思路:先转化一下题意,就是找每个数后面有多少个不同的数。首先1e5的数据 n^2 显然不可行,那就用前缀处理一下。首先进行如下操作:for(int i = 2; i <= n; i++) { if(cnt[a[i]] == 0) t...原创 2018-07-07 16:57:03 · 537 阅读 · 0 评论 -
2018-7-18 ACM 刷题日记
<Codeforces - 1009B> 题意: 给定一个只由'0'、'1'、'2' 组成的串,只能将0 1互换,1 2互换,不能将0 2互换,求形成字典序最小的的串。 思路: 因为1既可以和0换,又可以和2换,所以1的位置是自由的,即1可以挪到任意位置,而0和2的相对位置是固定的,也就是说,可以先将串中所有1都删了,剩下这个新串只由0和2组成,这个顺序就是不能动的了,接下来我...原创 2018-07-18 10:37:01 · 246 阅读 · 0 评论 -
2018-7-10 ACM 刷题日记
<Codeforces 1005C>题意:给定一个序列,问至少需要删除多少个数,使得序列中的每个数都能在该序列里找到一个数(自己除外),进行加和形成2^n。思路:思路就是map的应用,先开一个数组 powT[maxx],存 1<<30以内的2^n,然后声明两个map,分别是 mp 和 vis。先将传进数组的每个数的mp值都为 i (即每个数的角标),这样我在枚举数组内每个元...原创 2018-07-10 21:36:54 · 237 阅读 · 0 评论 -
2018-7-3 ACM 刷题日记
明天考Java,还没复习完,先水个水题,意思一下~ 明天考完试,就可以认真刷题啦~<Atcoder Beginner 102 - C>题意:给他一个长度为 n 的序列 a,要求你找一个整数 x,使得 对于 i 从 1 到 n,累加abs(a[i] - (x + i))的和最小。思路:该题就是求 x,化简一下题意,加和的每一项是 abs( a[i] - (x + i) ),即 abs(...原创 2018-07-03 18:14:31 · 455 阅读 · 0 评论 -
2018-7-16 ACM 刷题日记
<Codeforces - 702C>题意: 给两个数组,让第一个数组里每个元素,都与第二个数组的每个元素求差再取绝对值,然后找到第一个数组里每一元素对应的这些差值的最小值,再求这些最小值里的最大值。思路: 这是在一套二分专题里的一个题,就是一个二分的思路,有两个封装好的二分函数,lower_bound( ) 和 upper_bound( )。这里介绍下 lower_bou...原创 2018-07-16 11:00:31 · 325 阅读 · 0 评论 -
2018-7-9 ACM 刷题日记
<Codeforces 977D>题意:给定一串序列,问能否让序列形成一个顺序,使得序列某一项是由它前一项乘2或者前一项整除3得来的,打印该顺序。思路:一开始我的思路是这样的,就是先找只能被3整除和只能被2整除的(即不能同时被3和2整除,即不能被6整除的数),然后:先将只能被3整除的降序排,因为下一项是由当前项除3得到的,显然递减,故降序;再将只能被2整除的升序排,因为下一项是由当前项...原创 2018-07-09 11:25:39 · 258 阅读 · 0 评论 -
2018-7-8 ACM 刷题日记
<Codeforces 1004B>题意:有n个花盆,放两种花A,B,有m个区间,每个区间的价值是:A花个数 * B花个数。问怎么摆放花让所有区间的价值和最大。思路:设每段区间 A 花有 a 个,B 花有 b 个,根据均值不等式,当 a * b 取最大值时,当且仅当 a == b。所以要求每段区间内 a == b即可。所以只需要将A、B交替摆放,就能让每段区间的A花个数等于B花个数。本...原创 2018-07-08 21:46:44 · 423 阅读 · 0 评论 -
2018-7-1 ACM 刷题日记
这几天准备期末考试刷题日记断了几天,今天开始重操旧业啦~写两个水题找找自信~<Atcoder Beginner 101 - C>题意:有一个长度为 n 的序列,这个序列是数 1 ~ n 的乱序,给定一个 k,表示,你可以在这个序列里,选取连续的 k 个数,将他们替换成这 k 个数里最小的那个,问,最少经过多少步,让这个序列所有元素都有变为1。思路:枚举就行了,毕竟 Beginner 的...原创 2018-07-01 16:37:23 · 529 阅读 · 0 评论 -
Codeforces - 994B: pair型优先队列 and Codeforces - 992B
<Codeforces 994B> 题意: 给定一个 n,一个 k,表示有n个骑士,这n个骑士有相应的等级和价值,每个骑士最多可以杀比他等级低的 k 个人,被杀了的骑士的价值,会累加到杀了人的骑士身上,骑士可以重复被人杀,但是杀了人的骑士获得的价值,不会在被杀时累加到杀人骑士身上,即每个骑士获得的价值,就是被他杀了的那些骑士原本的价值的和,问这些骑士最后能获得的价值是多少。题以解释...原创 2018-06-19 17:51:40 · 348 阅读 · 0 评论 -
Codeforces - 990C
<Codeforces 990C> 题意: 给n个只由 '(' 和 ')' 组成的串,问从这些串中选出两个串,使他们括号匹配,能够成多少个匹配串,自身和自身组合匹配也算。以题中第二个样例说明: 输入:2 ( ) ( ) 输出:4 解释:输入的两个串 a,b 分别是 a: ( ),b: ( ),所以共四种连接方式,即 a->a,a->b,b->a,b->...原创 2018-06-18 20:19:20 · 821 阅读 · 0 评论 -
Atcoder Beginner 085D 084D 题解
ABC 084 - D:https://abc084.contest.atcoder.jp/tasks/abc084_d 题意: 在1~1e5以内,有一种判定合法的方式:就是如果当前数 x 是素数,且 (x + 1) / 2也是素数,那么这个数就是合法的。给你 q 个查询区间,问你每段区间内存在多少个合法的数。 思路: 这题考点就是预处理配合前缀的使用,先枚举1e5以内的素数,然后继续枚举...原创 2018-10-29 17:51:28 · 268 阅读 · 0 评论