自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FrozenAllen的博客

一命二运三风水,四积阴德五读书

  • 博客(102)
  • 收藏
  • 关注

原创 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 613

原创 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 528

原创 2018-7-1 ACM 刷题日记

这几天准备期末考试刷题日记断了几天,今天开始重操旧业啦~写两个水题找找自信~<Atcoder Beginner 101 - C>题意:有一个长度为 n 的序列,这个序列是数 1 ~ n 的乱序,给定一个 k,表示,你可以在这个序列里,选取连续的 k 个数,将他们替换成这 k 个数里最小的那个,问,最少经过多少步,让这个序列所有元素都有变为1。思路:枚举就行了,毕竟 Beginner 的...

2018-07-01 16:37:23 610

原创 Codeforces - 994B: pair型优先队列 and Codeforces - 992B

<Codeforces 994B>题意:给定一个 n,一个 k,表示有n个骑士,这n个骑士有相应的等级和价值,每个骑士最多可以杀比他等级低的 k 个人,被杀了的骑士的价值,会累加到杀了人的骑士身上,骑士可以重复被人杀,但是杀了人的骑士获得的价值,不会在被杀时累加到杀人骑士身上,即每个骑士获得的价值,就是被他杀了的那些骑士原本的价值的和,问这些骑士最后能获得的价值是多少。题以解释...

2018-06-19 17:51:40 450

原创 Codeforces - 990C

<Codeforces 990C>题意:给n个只由 '(' 和 ')' 组成的串,问从这些串中选出两个串,使他们括号匹配,能够成多少个匹配串,自身和自身组合匹配也算。以题中第二个样例说明:输入:2 ( ) ( )输出:4解释:输入的两个串 a,b 分别是 a: ( ),b: ( ),所以共四种连接方式,即 a->a,a->b,b->a,b->...

2018-06-18 20:19:20 931

原创 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 418

原创 Codeforces 988D 题解

<988D>题意:给定若干个数,问在其中挑选几个数组成一个集合,使得集合中任意以两个数a, b(a > b)的差值均为2^n。思路:这题要先找规律,这个规律就是,集合中的元素最多有3个,证明如下:假设集合内目前只有三个元素:x,y,z 且 x < y < z则根据题意,有如下关系:z - y = 2^a (1)y - x = 2^b (2)z - x = 2^c (3...

2018-06-17 11:20:03 544

原创 Atcoder Beginner 100 C 题解

题意:给定一串序列,要求对其中每个数进行除2或乘3的操作,但是不能将每个数都乘3,问最多几步让这个序列所有数都变为奇数。思路:一个一个输入,不用按数组读入,碰到偶数,就除二,res++,变为奇数就停。本人AC代码:#include <cstdio>#include <cstdlib>#include <cstring>#include <string&gt...

2018-06-17 11:00:08 306

原创 Codeforces 988B 988C 题解

<Codeforces - 988B>题意:给定 n 个串,看这 n 个串能否形成一个序列,使得在序列中的任意位置的串都是他下一个串的连续子串,如果有,打印这个序列。思路:由于在某一位置的串是它下一个串的字串,所以这个序列里的串,首先就必须满足按照长度递增,所有按照长度进行结构体排序,然后再 O(n) 看位置 i 的串是否为位置 i + 1 的串的字串即可。这里要提一个黑科技,那就是如...

2018-06-16 00:17:13 1776

原创 Atcoder099 - C 题解

  之前写过几篇博客,都是一些水题,写的也不系统,乱七八糟的,从明天开始,每天写ACM刷题日记,题目大多数为 Atcoder Beginner 的 C 题,Atcoder Grand 的 A 题,以及 Codefoecs div2 的 B 题。然后会进阶每天多练习一下 Codeforces div2 的 C D,以及 Atcoder Beginner 的 D 题,还有 Atcoder Grand ...

2018-06-14 21:22:04 573

原创 Codeforces 987C 题解

题意:给定两个长度为 n 的序列,要求在第一个序列 a 里,找到一个严格递增的子序列,要求 i < j < k 且 a[i] < a[j] < a[k],问你找到的这三个位置i , j , k,在第二个序列 b 里所对应的 b[i] + b[j] + b[k],的最小值是多少。思路:先n^2处理出来每个元素 a[i] 后面比 a[i] 大的 a[j] 所对应的 b[j] 的...

2018-06-08 12:52:54 839

原创 Codeforces 922C 922D 题解

题意:给一个数 n,再给一个数 k,问是否存在数对 <i,  j> 满足:(1) 1 <= i < j <= k(2) n % i == n % j若存在数对,就不符合题意打印No, 否则打印Yes。思路:我们ACM一个大佬,就是我师父YJH143,他说和中国剩余定理有关,我不懂,就大暴力过的,数据1e18的,当时怂了想写个O(1)的,发现一直写不出来,于是搏一搏单车...

2018-06-06 21:19:22 546

原创 Codeforces 59B 题解

题意:在一个序列里找最大的奇数和,和我上一篇博客题解里的B题有点挺像,只不过后者是一定存在答案,而且这题都是正数,这题如果有最大奇数和就打印,否则就输出0。思路:先对1个数的时候进行特判,如果是偶数就输出0,否则就打印这个数,接下来是多个数的情况,先对所有数求和记为sum,如果sum是奇数就直接打印,否则就进行如下操作:对所有奇数累加求和并存进 odd[ ] 数组里,再升序排序,并记录奇数个数p,...

2018-06-06 20:59:46 252

原创 Codeforces 教育场 Round19 A B 题解

<A>题意:给一个数n,再给一个数k,问 n 能否拆成 k 个大于1的整数的乘积。思路:这题核心思想是分解质因数,上一篇博客我刚传过分解质因数的板子,大家可以直接套用。下面解释下这题的核心思想为什么是分解质因数,首先每个合数都能拆成若干质数的乘积形式,而每个质数的因子只有1和它本身,所以说,若想把某个数拆分成几个因子相乘的形式,那么当且仅当所分解出来的乘积项最多的时候,每个乘积项都是质...

2018-06-06 20:43:38 437

原创 分解质因数 模板

直接放板子了,我不太懂,但一直这么用来着://分解质因数#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <map>#include <algorithm>using namespace std;typedef long ...

2018-06-05 22:22:57 867

原创 ACM2018年 四川省赛热身赛 C 题 省赛正式赛 B H E 题 题解

热身赛 <C>题意:给一个数赋初值1,只能对这个数进行*2, +1, -1, 这三种操作,问他能达到所给数的最小步数。思路:DP没得说,但我DP不熟,赛后回味了一下,一直以为是贪心,其实就看当前状态是怎么由上一个状态转移过来的就好了,要预处理一下,代码注释很详细。本人AC代码:#include<cstdio>#include<iostream>#include&...

2018-06-05 12:02:58 1765

原创 Atcoder Grand 025 - A 题解

题意:已知a + b = n, 问 a 和 b 各个数位的和相加的最小值。有点不好表述,解释一下样例吧,给一个数15,当a = 2, b = 13时所求最小,2的各个数位和就是2,13各个数位和是1 + 3= 4,故2 + 4 = 6为所求。Emmm,水题实锤了本人AC代码:#include <cstdio>#include <cstdlib>#include <cs...

2018-06-05 10:43:24 297

原创 Atcoder Beginner 098 B C 题解

这场出了三个题,虽然没有WA但手速慢了排到300多名,才涨了30几分。。。A题就给两个数a, b,求a + b, a - b, a * b这三者最大值,太简单了,不写了,D题异或和不进位加法乱七八糟的我也不会T^T。。。反正D题我们ACM的一个大佬用尺取写的没过。。。说下B和C吧:<B>题意:给一个串,找一个位置把这个串分割成两部分,问这两部分最多同时具有多少个字母。思...

2018-05-27 17:09:45 301

原创 计蒜客比赛 - 2018 计蒜之道 初赛 第五场 A B 题解

<A> 链接:https://nanti.jisuanke.com/t/27292思路:由于所有的箱子可以看成哟一个大的立方体,所有前后左右上这五个朝向各去掉一层以后,仍为立方体,那么你现在知道的是剩下多少的箱子,换句话说,已知条件是,被在五个朝向各去掉一层后的立方体的体积,那么要求原来立方体最大最小的体积分别是多少应该怎么操作呢,我的思路是,挨个枚举出来就好了,把原来的体积 V 拆成...

2018-05-27 16:48:50 665

原创 HDU - 6286 CCPC 2018湖南邀请赛《2018》题解

链接:https://vjudge.net/problem/HDU-6286题意:给两段区间,问从这两段区间内各选出一个数,能组成多少个有序数对,使得数对里的两个元素乘积为2018的倍数。思路:首先注意两点,区间范围是1 ~ 1e9,n^2循环是不存在的了,而本题只能使用O(1)的复杂度;其次要注意,<2018, 1> 和 <1, 2018> 显然是两个不同的有序对。接下来...

2018-05-22 18:20:04 1569

原创 BAPC 2017 - Codeforces Gym101666 - A F K 题解

题目链接:http://codeforces.com/gym/101666/attachments这场可以说A得很艰难了。。。还是我由于代码能力太次太次了。。。还需要很努力地训练,F题,签到题里的签到题,无人不AC,A题,一直莫名失精,全改double就过了,K题是DFS,一开始没看出来。。。后来才A掉,放一下我过的三个题的题解吧:先放一下题目链接:http://codeforces.com/gy...

2018-05-17 22:56:47 1044

原创 约瑟夫环的两种实现方式 - 模拟 and 队列

先讲一下约瑟夫环的模拟实现方式,与队列相比复杂度较低。先给个题 ~ 让大家了解一下什么是约瑟夫环 ~codeVS 1282: 有编号从1到N的N个小朋友在玩一种出圈的游戏。开始时N个小朋友围成一圈,编号为I+1的小朋友站在编号为I小朋友左边。编号为1的小朋友站在编号为N的小朋友左边。首先编号为1的小朋友开始报数,接着站在左边的小朋友顺序报数,...

2018-05-17 22:14:42 999

原创 2017 ACM - NCPC B J 题解

链接:http://codeforces.com/gym/101572<B>题意:你有n个运动员,你需要挑选4个人跑4 * 100m的接力,每个运动员有两个属性值,第一个值表示跑第一棒的用时,第二个值表示跑2, 3, 4棒的用时,问怎么选时间最短。思路:先将第二个属性值sort升序排序一下,然后枚举第一棒,用min维护,每次标记位置即可。本人AC代码:#include <cstd...

2018-05-17 21:16:39 468

原创 2016 BOPC - E 题解

题意:给一串序列,长度混杂在这段序列里了,求序列的和。思路:由于最开始输入的时候,不知道有几个数,所以什么时候结束输入是个问题,那么就选择这种处理方式:以前读入一个数组的时候,输入完1个数,都要打一个空格,读入结束就打一个回车跳转到下一行,那现在,就用空格和回车来限定读入即可,即:for(i = 1; ; i++) {        scanf("%d%c", &a[i], &c)...

2018-05-17 21:01:07 287

原创 小技巧粗讲 - 用栈实现括号匹配的判断

Codeforces上有一道我曾经讲过的题,买看过的小伙伴看这个链接:https://blog.csdn.net/ericgipsy/article/details/79980874然后再来一道题:http://www.fjutacm.com/Problem.jsp?pid=1922这道题和上一题差不多,它只需要判断匹配与否即可,但是要开多组,所以要加一步清空操作:while(!sta.empty...

2018-05-06 00:50:38 454

原创 小技巧粗讲 - 优先队列

优先队列的作用就是,自动排序,放一下板子:#include <cstdio>#include <queue>#include <vector>#include <algorithm>using namespace std;typedef long long ll;const int Maxx = 1e3 + 7;int a[Maxx];int n;p...

2018-05-06 00:45:29 226

原创 数组模拟 - 八进制乘法

建议大家先看一下我写的这个专题,https://blog.csdn.net/ericgipsy/article/details/80135017,数组模拟实现进制转换。然后给一道题,八进制惩罚,福建工程OJ一道题:http://www.fjutacm.com/Contest.jsp?cid=434#P2思路:这题就普通的数组模拟,和我上次讲的专题套路一样,字符串读入,用atoi( )函数转成整数单...

2018-05-06 00:39:54 1259

原创 Atcoder Beginner 096 A B C D 题解

这场,终于AK啦 ~ 涨了100分 ~ A B C 水的不行,D题贼有意思,是个构造题。放一下题解:A:题意:给定一个日期 a月b日,问在该日期之前有几个月和日相等的日期。思路:首先令ans = a;即先当作有几个月就有几个这样的天数,在看给定的日,如果给定的b < a,那当前月就凉了。ans--即可,否则直接输出ans。本人AC代码:#include <cstdio>#incl...

2018-05-06 00:28:48 319

原创 欧洲区域赛 A F J 题解

所有题链接:http://codeforces.com/gym/101635/attachmentsA:题意:有两个长度分别为n, m的数组a[ ]  b[ ],求b[ ]元素 与 a[ ]元素所有差值里出现次数最多的那个值,如果有多个最多,打印最小值。思路:首先将所有差值,存进tmp数组里,然后开一个map记录这些差值的出现次数,然后用max维护,找到出现最多的次数,然后对差值进行 sort 排...

2018-05-06 00:06:48 283

原创 Codeforces 808B 解题报告

题意:输入n, m,在n个数中,求所有相邻m个数之和的平均数。思路:这题有两点要注意,第一次WA在样例17,因为数据范围需要开long long,int存不住;第二次TLE在样例21,因为我的循环复杂度是m * (n – m + 1),复杂度超标。int tmp = n - m + 1;int sum = 0;int s = tmp;int p = 1;while(s--) {     for(i...

2018-05-02 12:09:53 303

原创 Codeforces 847M 解题报告

题意:输入一个数列,如果是等差数列就输出下一项,若非等差就输出末项。思路:在循环前定义一个flag = 1维护等差,循环中有相邻两项不是等差的差值,flag = 0,结束循环。本人AC代码:#include <cstdio>#include <cstdlib>#include <cstring>#include <string>#include &l...

2018-05-02 12:07:18 370

原创 HDU2602 解题报告

板子题,0-1背包的裸板子,只需在板子基础上加上控制样例输入个数的while循环即可。本人AC代码:#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>using namespace std;const int M...

2018-05-02 12:02:10 290

原创 POJ 2395 解题报告

题意:找到最小生成树里的最大边。思路:只需要将裸板子中,最小生成树一直累加边权的语句sum += edge[i].w;  更改为:if(edge[i].w> max) max = edge[i].w;  最后输出max即可。本人AC代码:#include <cstdio>#include <cstdlib>#include <cstring>#includ...

2018-05-02 11:57:49 229

原创 Codefoeces 259B 解题报告

题意:数独填数思路:赤裸裸的规律题本人AC代码:#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>using namespace std;int d1[5];int d2[5];int d3[5];int mai...

2018-05-02 11:51:17 243

原创 Codefoeces 755B 解题报告

题意:a, b两个人比赛,各有一些熟悉的单词,允许存在熟悉相同单词的情况,a先说,问最后谁能赢。思路:我的想法是,先求出共同熟悉单词的数目cnt,再对cnt进行奇偶讨论。如果cnt为偶数,那么就意味着对a更不利,即a获胜的条件较cnt为奇数时更为苛刻。因为a先说,a肯定会从共同知道的单词开始说,这样b就少了一个单词可以应对,而b也是和a一样的想法,所以也会从共同知道的开始说,由此可得出,经过若干回...

2018-05-02 11:28:12 219

原创 Codeforces 157B 解题报告

题意:算几个同心圆中存在的红色面积,最外部圆上色为蓝色,然后一直红色蓝色交替上色至最内部圆。思路:我的思路是先将输入圆的半径由小到大进行一次sort排序,然后对圆的个数进行奇偶讨论,再根据交替上色求面积。本人AC代码:#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath&g...

2018-05-02 11:23:54 291

原创 Codeforces 96B 解题报告

题意:找出不小于输入数X的超级幸运数(10进制中4和7数目相等且不含其他数字的数,范围是X<=1e9)思路:首先我的想法是将1 ~ 1e9中的超级幸运数预处理出来,大概是我对预处理方法理解不到位,没能达到降低时间复杂度的目的,但是通过我做的貌似预处理的这个处理,却可以做到筛选出1 ~ 1e9之内的超级幸运数。所以,我就改用大暴力写了,因为超级幸运数的定义,所以超级幸运数的数位必须有偶数个,同...

2018-05-02 11:16:33 759

原创 浙江省赛 A B L M 题解

我们教练说5题省赛拿牌有希望,然后ACM校队一个大佬说至少要到6~7题才能拿铜。。。T_T我A了四题,我队友A了五题,他把J题A了,我没在机房打比赛,所以我们队就不小心分成俩号交了,我J题没看懂,后来就没再写了。相当于我们队还是A了五道题,我队友可是大佬~贼强~哈哈哈~J题抽空补上,那就放一下我AC的四个题的题解:< A >链接:http://acm.zju.edu.cn/online...

2018-04-29 20:11:40 522

原创 数组模拟 - 进制转化

今天来介绍一下如何用数组模拟的手段,实现进制转换。首先就是精度问题,由于long long存不住数位过多的数,所以才采用数组模拟的手段,和上次讲到的高精度数组模拟如出一辙,先字符串读入,再转成int数组,根据题意要求加工int数组,按顺序输出即可。话不多说,放三道题,感受下:<1> 1的个数Description给定一个十进制整数N,求其对应2进制数中1的个数。Input第一个整数表示...

2018-04-28 15:20:41 720

原创 秦皇岛 CCPC 签到题 - L

题意:给一个串,由L, R, 组成,L表示左移,R表示右移,给个起始位置,从起始位置可以向两端移动,可以改换 L 和 R,协助你移动到边界(两端),问,最小改动花费是多少。思路:首先对s[pos]进行L, 或是R的特判,如果是L,那就看当前位的前一位到第二位有几个R,这个就是移到左边界的花费,再看当前位到倒数第二位的L的个数,这个就是移动到右边界的花费, 取两者最小值即可;若s[pos]为R,同样...

2018-04-24 22:05:59 328

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除