- 博客(8)
- 资源 (2)
- 收藏
- 关注
原创 CodeForces - 814B(思维)
题目链接:CodeForces - 814B题意:有两个序列,本来应该是1~n,但是都有一个数据错了,要求可能的原来序列。题解:因为两个序列a,b都是只有一个错误,那么改变其中一个序列,就可以改回原来的序列。将b中与a不相同的数全部放入一个数组c中(注意c中只可能有一个或两个元素),将其它相同的数放入map中,以便于随时判断存在。如果c中只有一个元素的那么遍历一遍b数组,找
2017-08-24 19:13:43 322
原创 CodeForces - 750C(思维)
题目链接:题意:Codeforces里分两个等级,分数在1900及其以上是dev1,在1899及其以下是dev2,分数可以是负的。给出最近几场比赛的数据,求可能的最大分数。给出n对数据c和d。d是指在在参加这场比赛之前的等级,c是指这场比赛结束后变化的分数。题解:经过思考过后你会发现,最后一个c是无所谓的,因为它没给出变化后的等级。所以我们将数据错一分开,如:c
2017-08-24 09:43:09 570
原创 BZOJ - 4974(KMP+思维)
题目链接:BZOJ - 4974题意:给出n和per[1~n],per[i]表示字符串前i个字符的最小循环节。要求构造出符合条件的字典序最小的小写字母字符串。题解:给出的per数组其实是一种next数组,将i - per[i],就可以得到正常的next数组。然后根据next的构造方法,可以得到字符串中的相等与不想等关系,再贪心每次用符合条件的最小字母构造,还原字符串。
2017-08-21 17:40:44 1318
原创 HDU - 1540(STL)
题目链接:HDU - 1540题意:给出数字1~n和三种操作 操作D:删除一个数(但是那个位置依然空在那)。 操作Q:询问一个数,回答包括这个数在内的连续区间的长度。(若那个数被删,返回0) 操作R:重建最后被删除的数。题解:对于询问Q,如果我们每次都遍历1~n寻找连续区间的长度,肯定是要超时的。这题可以用线段树维护求解。但我
2017-08-17 08:44:20 253
原创 HDU - 5969(位运算)
题目链接:HDU - 5969题意:找出区间[L, R]中的两个数x、y,使x|y(位或)最大。题解:位或是二进制运算,二进制中只有0和1,要使位或最大,就要使R位或后的1尽可能的多。因为位或的性质,不可能位或后使数的最高位大于R。所以其中一个数必须是R。首先要知道,在剩下的数中能使R增加的1的位数是有限的。那么能增加多少呢?能使L与R出现的L的最高不同位之后的低位全部变成1。...
2017-08-04 21:06:08 888 4
原创 CodeForces - 808D(STL+思维)
题目链接:CodeForces - 808D题意:给一个长度为n的正整数序列,要求最多移动移动数使得数列可以分为相等的两个部分(前面的和与后面的和 相等),注意不是交换两个数,而是移动一个数,其它数的相对顺序保持不变。题解:因为要求前面的和与后面的和,那么用前缀和数组记录前缀和,用的时候作一个减法就能很快的求出两部分的 和。要满足题目要求,没移动
2017-08-04 19:56:41 435
原创 CodeForces - 816B(区间计数)
题目链接:CodeForces - 816B题意:给出n个区间和一个k值,再给出q次询问,每次询问给出一个区间,要求这个区间中的数在开始的n区间中出现次数不少于k次的数目。解法:将n个区间的每个数每出现一次就加一,最后统计q询问的区间中不小于k的数的个数。写这题主要是想讲一个常用的区间更新的方法,其实这题也可以用线段数或树状数组写,但在这里就不讲了。 操作
2017-08-04 12:08:29 626
原创 CodeForces - 673B(思维)
题目链接:CodeForces - 673B题意:数字1~n表示一堆题目,数字越大,题目越难。将题目分组,一组的任何题目都要比二组难。给出类型相似的题目,一个组中不能出现类型相似的题目。相似关系并不传递。解法:每次给出两个类似的,大的一定进入dev1,小的一定进入dev2。每次记录dev1的最小值k1,dev2的最大值k2,这是分界点,比k1大的一定在dev1,比k2小的一
2017-08-02 13:55:22 636 2
数据结构课设-表达式求职-带界面
2018-01-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人