自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不慌不忙、不急不躁

https://github.com/JeraKrs

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

原创 Codefoces 387A George and Sleep(水题)

题目链接:Codefoces 387A George and Sleep题目大意:给出一个时间,然后往前推一个时间长度,给出那时的时间。解题思路:水题,注意借位即可。#include #include int main() { int h, m, hh, mm; scanf("%d:%d", &h, &m); scanf("%d:%d", &hh,

2014-01-31 23:58:45 1278

原创 uva 589 - Pushing Boxes(双重bfs)

题目链接:uva 589 - Pushing Boxes题目大意:推箱子游戏,工人移动用小写,推动箱子用大写,给出推动箱子最少的方法,不用字典序。解题思路:这题写了一天,一开始考虑到直接bfs,记录箱子和工人的位置以及推动箱子的次数作为状态,结果写好后超时,才发现如果不加推动箱子的次数的话,会将大部分情况合并,时间会减少很多,但是第4组样例会过不了(考虑总步数最少的情况,题

2014-01-31 23:55:17 2015 1

原创 uva 1481 - Genome Evolution(暴力)

题目链接:uva 1481 - Genome Evolution题目大意:给出两个长度为n的集合,问说两个集合存在多少个相同的连续子集合。解题思路:暴力枚举,记录第一个集合,第二个集合则是记录每个数出现的位置,以为子集合的大小不定,但是一定大于1,所以枚举第一个集合,当出现r-l+1 == k,(r为当前子集合中在第二个集合中的最右位置,l为最左位置,k为枚举的个数)时,a

2014-01-31 23:32:14 1664

原创 uva 11536 - Smallest Sub-Array(Towpointer)

题目大意:uva 11536 - Smallest Sub-Array题目大意:按照题目中的要求构造出一个序列,找出最短的子序列,包含1~k。解题思路:先根据题目的方法构造出序列,然后用Towpointer的方法,用v[i]来记录当前[l, r]中有几个i;当r移动时,出现v[i] == 1时, c++(用来记录有几个1~k的数字);当c == k 时,就要移动l,当出现v

2014-01-31 23:16:38 2922

原创 uva 11572 - Unique Snowflakes(Towpointer)

题目连接:uva 11572 - Unique Snowflakes题目大意:给出一个字符串,找出最长的连续子串不含相同的数字。解题思路:Towpointer,维护一个区间,保证没有相同的数字,同时维护最大长度。然后有因为数字比较大不能开数组直接记录,所以用map离散化。#include #include #include #include using

2014-01-31 23:03:36 2026

原创 【索引】CodeForces Round #226 (Div. 2)

Problem A: Bear and Raspberry(385A)Problem B: Bear and Strings(385B)Problem C: Bear and Prime Numbers (385C)Problem D: Bear and Floodlight(385D)Problem E: Bear in the Fie

2014-01-30 13:07:32 1377

原创 Codeforces 385A Bear and Raspberry(水题)

题目链接:Codeforces 385A Bear and Raspberry题目大意:就是给出一个序列,然后相邻两个数之间差的最大值于C的差,小于0的话要输出0.解题思路:水题。#include #include #include using namespace std;const int N = 105;int n, c, a[N];in

2014-01-30 13:00:28 1384

原创 Codeforces 385B Bear and Strings(字符串)

题目连接:Codeforces 385B Bear and Strings题目大意:给出一个字符串,问说该字符串中有多少个子串包含“bear”。解题思路:遍历,每次找到“bear”,就用该串前面个字符数x,以及该串后面的字符数y,ans += (x+1)*(y+1)- 前一个“bear”所在位置的字符串(重复的)#include #include #incl

2014-01-30 12:34:50 2141

原创 Codeforces 385C Bear and Prime Numbers(数论)

题目链接:Codeforces 385C Bear and Prime Numbers题目大意:给出一个长度为n的序列,然后有m次询问,每次询问给出a, b,然后计算[a,b]中所有素数的F(x)之和,F(x)为计算序列中有几个数为x的倍数。解题思路:数论题,因为内存空间限制为512M,所以可以开的下10^7的数组,然后用筛选法求素数的同时计算个数。#inclu

2014-01-30 12:30:45 2404

原创 Codeforces 385D Bear and Floodlight(几何+dp)

题目链接:Codeforces 385D Bear and Floodlight题目大意:给出一个区间[l, r],然后给出n个探照灯,问说n个探照灯能照到区间[l,r]的最大范围。解题思路:用二进制表示说哪些灯被选中了,dp[i]表示这些灯能够照到的最大范围。#include #include #include #include using name

2014-01-30 11:56:23 2166

原创 Codeforces 385E Bear in the Field(矩阵快速幂)

题目链接:Codeforces 385E Bear in the Field题目大意:有一片n*n的草莓地,每个位置的初始草莓量为横坐标和纵坐标的和,然后每过一秒增长一个草莓。然后给出熊的初始位置(sx,sy),以及移动的速度(dx,dy),每一秒发生的事:(1)速度增加k(k为该位置的草莓数);(2)熊的位置发生移动;(3)每个位置上草莓数+1解题思路:矩阵快速幂,根据题

2014-01-30 11:38:39 2233

原创 CodeForces 337B Preparing for the Contest(二分+贪心+优先队列)

题目链接:CodeForces 337B Preparing for the Contest题目大意:有n个人,m个病毒,s张通行证,然后给出m个病毒的等级,n个人的等级,以及n个人去杀病毒所需要的通行证数量,问所最少花费几天可以杀光病毒,并输出每个病毒被那一个人所清理。PS:人要杀病毒必须等级大于等于病毒,一个人只需支付一次通行证。解题思路:二分+贪心+优

2014-01-29 17:49:10 1946

原创 CodeForces 377A Maze(暴力)

题目链接:CodeForces 337A Maze题目大意:给出一张图,将k个位置置为X,使得剩下的空位置仍能联通。解题思路:暴力。因为题目肯定保证有答案,所以水了很多,但是它可能一开始就有不连通的块,所以先用BFS找出所有的联通块,然后按照面积从小到大排序,用DFS进行填充。#include #include #include #incl

2014-01-29 17:48:45 2423 5

原创 CodeForces 378B Semifinals(贪心)

题目链接:CodeForces 378B Semifinals题目大意:有两场半决赛,每场各有n各人参加,现在有一个k值,表示说半决赛的前k名可以直接晋级总决赛,因为要选出n个人参加决赛,所以2*(n -k)要在剩下的人中选前2*(n-k)名,k的取值范围为0~n/2,问说那些人是有可能晋级决赛的。解题思路:直接按照k = 0和k = n / 2的方案去选,

2014-01-29 17:45:20 1451

原创 CodeForces 378A Playing with Dice(水题)

题目链接: CodeForces 378A Playing with Dice题目大意:两个人猜数1~6,给出a和b,然后随机丢一个色子,问说接近a的可能,相等的可能,以及接近b的可能。解题思路:完完全全的签到题。#include #include #include int main() { int a, b; int x = 0, y

2014-01-29 17:43:16 1435

原创 CodeForces 337C Captains Mode(dp+位运算+贪心)

题目链接:CodeForces 337C Captains Mode题目大意:dota2游戏选择英雄,先给出n个英雄的力量值,然后给出m个操作,p/b num,p代表第num个玩家可以选择一个英雄,b 代表第num个玩家可以封掉一个英雄,即谁都不可以选,然后两队选完之后,比较说两队英雄总力量值的差,两人都按照最优方案去选择。解题思路:dp+位运算+贪心。首先

2014-01-29 17:34:34 2459

原创 hdu 4031 Attack(树状数组)

题目链接:hdu 4031 Attack题目大意:有一个长为n的长城,进行q次操作,d为防护罩的冷却时间,Attack表示区间a-b的墙将在1秒后受到攻击,询问表示计算第a块墙受到攻击的次数,被防护罩抵消的不算。解题思路:树状数组,更新区间查询点,每次攻击区间a-b时,只要进行add(a,1); add(b+1, -1);然后第i堵墙受到的总攻击次数即为sum(i)。实

2014-01-29 00:28:43 1582

原创 hdu 4217 Data Structure?(树状数组)

题目链接:hdu 4217 Data Structure?题目大意:给出n和m,表示有n个数1~n,然后每次从这个集合中挑选出第ki个小的(m次),问说挑选出来的数字的和。解题思路:树状数组,v记录的即为其区间上有多少个数未选取,进行取操作的时候只要找到第x个,使得前面的和刚好是ki即可。#include #include #include using

2014-01-28 23:13:01 1381

原创 uva 608 - Counterfeit Dollar(枚举)

题目连接:uva 608 - Counterfeit Dollar题目大意:有A~L这样12个硬币,然后其中有一个硬币是偏重或者偏轻,给出3次测量的情况,要求找出该硬币,并且判断是重了还是轻了。解题思路:暴力枚举,12个硬币,2*24种情况。#include #include const int N = 105;int v[N], l[3][N], r[

2014-01-28 22:44:43 1598

原创 hdu 1754 I Hate It(树状数组 | 线段树)

题目链接:hdu 1754 I Hate It题目大意:略。解题思路:方法一:树状数组,注意查询的时候,如果为一个的时候要与当前的数进行比较。#include #include #include using namespace std;const int N = 200005;int n, m, b[N], v[N];void add(i

2014-01-28 19:31:11 1281

原创 hdu 1166 敌兵布阵(树状数组 | 线段树)

题目链接:hdu 1166 敌兵布阵题目大意:略。解题思路:树状数组的水题。这篇题解很好,适合初学树状数组的人。题解连接#include #include const int N = 50005;const int M = 105;int n, v[N];void add(int x, int val) { while (x <= n) {

2014-01-28 01:30:44 1545

原创 uva 517 - Word(暴力+周期)

题目链接:uva 517 - Word题目大意:给出一个字符串,以及8种变换方式,问说该字符串变换s次后的结果,注意字符串为环形,输出字典序最小的情况。解题思路:因为字符串最长为15, 2^15#include #include #include using namespace std;const int N = 20;struct state

2014-01-27 23:56:23 1451

原创 uva 10730 - Antiarithmetic?(枚举)

题目链接:uva 10730 - Antiarithmetic?题目大意:给出一个长度为n的序列,由0~n-1组成,问是否存在长度为3的等差子序列。解题思路:n最大为1W,所以每次记录下数字所在的位置,枚举等差的前项和中项(注意d可能小于0),然后可以得出后项,保证三项的位置为递增即可。#include #include const int N = 100

2014-01-26 23:20:56 1321

原创 uva 1330 - City Game(dp)

题目链接:uva 1330 - City Game题目大意:‘R’代表被占用的位置,‘F'代表空闲的位置,计算给出图中的最大矩阵面积*3是多少。解题思路:首先记录每个位置向上最多有几个空位,然后按照行枚举每一个位置,l[i]记录的是向左最大空闲量,r[i]是记录向右的最大空闲量,这样记录后,如果r[i][j] #include #include #inclu

2014-01-25 19:50:07 1156

原创 uva 1467 - Installations( 贪心+暴力)

题目链接:uva 1467 - Installations题目大意:给出n个任务,每个任务有所需时间和截止时间,单个任务超过截止时间要罚款,求一个完成任务的序列,使得最大罚款和第二大罚款数之和最小。解题思路:一开始想用二分求解最大罚款值,后来发现不靠谱。首先贪心,按照任务的的截止时间排序,这是一个顾全大局的做法,这样的做法比较优,但不是最优解,有可能牺牲某个任务放在后面做会

2014-01-25 00:48:33 1895

原创 uva 10755 - Garbage Heap(最大和问题)

题目连接:uva 10755 - Garbage Heap题目大意:给出一个三位矩阵,求说子矩阵和最大值。解题思路:现将各个平面上的矩阵记录下矩阵和,然后可以枚举二维上的矩阵,映射成三维去做。#include #include #include using namespace std;typedef long long ll;const int N

2014-01-24 23:11:45 1469

原创 uva 10535 - Shooter(几何+最大区间覆盖)

题目链接:uva 10535 - Shooter题目大意:给出若干堵墙(线段),然后给出人的位置,问说这个人最多开枪射穿几堵墙。解题思路:最大区间覆盖问题的变形,首先把每堵墙转化成一个角度,然后计算角度区间的最大覆盖,注意:超过pi的要分成两个区间。#include #include #include #include using namespace

2014-01-23 21:14:46 1269 4

原创 uva 10810 - Ultra-QuickSort(排序)

题目链接:uva 10810 - Ultra-QuickSort题目大意:给出一个序列,每次交换两个数,这两个数之间的距离就是代价,问说要将序列排序的总代价是多少。解题思路:归并排序下的逆序数的个数。#include #include const int N = 500005;typedef long long ll;int n, g[N], f[N]

2014-01-23 20:15:50 3007

原创 uva 1398 - Meteor(贪心)

题目链接:uva 1398 - Meteor题目大意:给出一个w和h,表示说照相机可以照到的范围,然后有n个彗星,给出起始坐标以及移动的向量,问说一张照片最多有几个彗星。解题思路:根据坐标和移动向量求出进入范围和离开范围的时间,按照时间进行排序,然后没进一次加1,出一个减1,维护最大值,注意有可能存在彗星不进入范围。#include #include #in

2014-01-23 20:10:20 1130

原创 uva 11549 - Calculator Conundrum(模拟)

题目链接:uva 11549 - Calculator Conundrum题目大意:给出n和k,表示有一个n为的计算器,现在要计算k一直平方中的最大值(在计算器中出现的),超过n位取前n位。解题思路:看队友题解上有一个判断说形成循环的条件a^2== b^4。然后模拟一下就可以了。#include #include #include using names

2014-01-23 18:08:58 1267

原创 uva 1316 - Supermarket(贪心)

题目链接:uva 1316 - Supermarket题目大意:有n件商品,对于每件商品有一个价值和有效日期,过了有效日期的商品不能再出售,每天可以卖出一件商品,问说最大利润是多少。解题思路:以前貌似做过类似的题目,贪心,按照价值从大到小排序,每次尽量让当前商品在靠近有效期的日子里卖出。#include #include #include using n

2014-01-22 22:29:36 1412

原创 uva 1121 - Subsequence(TwoPointer)

题目链接:uva 1121 - Subsequence题目大意:给出一个序列,要求求出序列中最短子序列的元素和不小于k的长度。解题思路:r维护加入,l维护减除,r - l即为当前个数。#include #include #include using namespace std;const int N = 100005;int n, k, num[N

2014-01-22 22:28:58 1519

原创 uva 11078 - Open Credit System(水题)

题目链接:uva 11078 - Open Credit System题目大意:给出n个数,找出两个数之间差的最大值,要求num[i] - num[j](i 解题思路:维护最大值Max,每次读取一个数时用Max - c,维护ans。#include #include using namespace std;const int INF = 0x3f3f3f

2014-01-22 22:28:10 1272

原创 uva 11462 - Age Sort(计数排序+输入外挂)

题目链接:uva 11462 - Age Sort题目大意:给出n个数进行排序输出,内存限制2M。解题思路:因为所给的排序数均小于100,所以开一个数组记录该数出现的次数即可。#include const int N = 105;int n, c[N];void scanfINT(int& num) { bool flag = false; ch

2014-01-22 22:15:46 1175

原创 uva 211 - The Domino Effect(DFS)

题目链接:uva 211 - The Domino Effect题目大意:给出一些7*8的矩阵,每两个相邻的数字可以表示一个骨牌,问说骨牌有多少种摆法。解题思路:总共有28块骨牌,dfs枚举每一个位置,考虑当前位置和下面右边组成的骨牌。#include #include const int R = 7;const int C = 8;const int

2014-01-22 21:14:16 2092

原创 uva 1377 - Ruler(BFS)

题目链接:uva 1377 - Ruler题目大意:给出一些刻度,要求制作一把尺子,可以直接测量出给出的刻度,要求尺子尽量短,并且刻度尽量少,注意:所标记的刻度数不会大于7,题目限制。解题思路:注意题目中的限制,说刻度数最大为7,C(2,7) = 21,也就是说最多能表示21个长度,题目所给出的50个长度有一半多式重复的长度。让后题目还有一个限制条件,说尺子尽量短,也就是说

2014-01-22 21:10:49 1343 1

原创 uva 668 - Parliament(贪心)

题目链接:uva 668 - Parliament题目大意:给出一个n,问最多用几个不同的数组成n,如果有个数相同的,输出从小到大排序的字典序最大的。解题思路:首先找到一个序列,由2+3+...+x是恰好小于n的,然后将n - sum(x)平局分给这若干个数。#include const int N = 1005;int sum(int x) { ret

2014-01-14 11:12:09 1496

原创 uva 11986 - Save from Radiation(规律)

题目链接:uva 11986 - Save from Radiation题目大意:给出n,表示有n个无辐射的药,外加1个有辐射的药,小白 鼠若吃了有辐射的药,5分钟内会死亡,问说最少用几只小白鼠在5分钟内找出有毒的药。解题思路:2^m = n + 1。#include typedef long long ll;int main() { int cas;

2014-01-13 23:37:03 1185

原创 uva 11920 - 0 s, 1 s and ? Marks(贪心)

题目链接:uva 11920 - 0 s, 1 s and ? Marks题目大意:给出一个字符串,有1,0和?组成,?可以是0也可以是1,问说该字符串的最大连续字符数的最小值。解题思路:0和1都好说,就是碰上?会难搞一点,被坑的很惨。当碰到?时,枚举出有多少个连续的?,分为奇数偶数讨论,特殊情况是1个的时候,如果前后两个字符是不同的,要比较前后的大小,选小的,相同优先选前

2014-01-13 22:28:41 1155

原创 uva 10747 - Maximum Subsequence(贪心)

题目链接:10747 - Maximum Subsequence题目大意:给出n个数,从中选取k个,使得乘积最大,并且尽量使和最大。解题思路:首先按照数的绝对值大小排序。然后就要分三大类情况讨论:(1)前k个中选到0:如果选到0的话,乘积一定是0,所以尽量选大的数,让和变大。(2)前k个中选到负数的个数为偶数:这样的话直接输出答案(一定为最优解)(3)前k个中选

2014-01-12 22:54:32 1443

空空如也

空空如也

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

TA关注的人

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