07 2016 档案
UVa 11536 Smallest Sub-Array (水题, 滑动窗口)
摘要:题意:给定 n 个由0~m-1的整数组成的序列,输入 k ,问你找出连续的最短序列,使得这个序列含有1-k的所有整数。 析:这个题,很简单么,只要从头开始扫一遍就OK,时间复杂度为O(n)。 代码如下:
阅读全文
UVa 1617 Laptop (贪心)
摘要:题意:有n个长度为1的线段,确定它们的起点,使得第i个线段在[ri,di]之间,输出空隙数目的最小值。 析:很明显的贪心题,贪心策略是这样的,先把所有的区间排序,原则是按右端点进行排序,如果相等再按左端点排,然后再扫一遍,如果第一个区间的右端点和第二个右端点一样, 一定可以相邻,如果不相等,再看是不
阅读全文
HDU 5778 abs (素数,暴力)
摘要:题意:给定一个数x,求正整数y≥2y\geq 2y≥2,使得满足以下条件: 1.y-x的绝对值最小 2.y的质因数分解式中每个质因数均恰好出现2次。 析:由于y质因数分解式中每个质因数均出现2次,那么y是一个完全平方数,设y=z*z,题目可转换成求z,使得每个质因数出现1次. 我们可以暴力枚举z,检
阅读全文
HDU 5777 domino (排序,水题)
摘要:题意:小白在玩一个游戏。桌子上有n张多米诺骨牌排成一列。它有k次机会,每次可以选一个还没有倒的骨牌,向左或者向右推倒。每个骨 牌倒下的时候,若碰到了未倒下的 骨牌,可以把它推倒。小白现在可以随意设置骨牌的高度,但是骨牌高度为整数,且至少为1,并且 小白希望在能够推倒所有骨牌的前提下,使所有骨牌高度的
阅读全文
HDU 5776 sum (前缀和)
摘要:题意:给定 n 个数,和 m,问你是不是存在连续的数和是m的倍数。 析:考虑前缀和,如果有两个前缀和取模m相等,那么就是相等的,一定要注意,如果取模为0,就是真的,不要忘记了,我当时就没记得。。。。 代码如下:
阅读全文
HDU 5437 Alisha’s Party (优先队列模拟)
摘要:题意:邀请k个朋友,每个朋友带有礼物价值不一,m次开门,每次开门让一定人数p(如果门外人数少于p,全都进去)进来,当最后所有人都到了还会再开一次门,让还没进来的人进来,每次都是礼物价值高的人先进。最后给出q个数,表示要输出第ni个进来的人的名字。 析:其实这就是一个模拟题,很容易知道是优先队列模拟,
阅读全文
HDU 5438 Ponds (DFS,并查集)
摘要:题意:给定一个图,然后让你把边数为1的结点删除,然后求连通块结点数为奇的权值和。 析:这个题要注意,如果删除一些结点后,又形成了新的边数为1的结点,也应该要删除,这是坑,其他的,先用并查集判一下环,然后再找连通环。 代码如下:
阅读全文
HDU 5444 Elven Postman (二叉树,暴力搜索)
摘要:题意:给出一颗二叉树的先序遍历,默认的中序遍历是1.、2、……n。给出q个询问,询问从根节点出发到某个点的路径。 析:本来以为是要建树的,一想,原来不用,其实它给的数是按顺序给的,只要搜结点就行,从根开始搜,如果要到的结点比根结点大,那么一定是向W走, 然后去第一个结点,然后接着判定,一直走,如果找
阅读全文
HDU 5443 The Water Problem (水题,暴力)
摘要:题意:给定 n 个数,然后有 q 个询问,问你每个区间的最大值。 析:数据很小,直接暴力即可,不会超时,也可以用RMQ算法。 代码如下:
阅读全文
CodeForces 702B Powers of Two (暴力,优化)
摘要:题意:给定 n 个数,问你从有多少下标 i < j,并且 ai + aj 是2的倍数。 析:方法一: 从输入开始暴力,因为 i < j 和 i > j 是一样,所以可以从前面就开始查找,然后计数,用个map就搞定,不过时间有点长,接近两秒。 方法二: 先排序,然后暴力,暴力的原则是找前面的,也是用m
阅读全文
POJ 3169 Layout (差分约束)
摘要:题意:给定一些母牛,要求一个排列,有的母牛距离不能超过w,有的距离不能小于w,问你第一个和第n个最远距离是多少。 析:以前只是听说过个算法,从来没用过,差分约束。 对于第 i 个母牛和第 i+1 个,D[i] - D[i+1] <= 0, D[j] -D[i ]<= k, D[i] - D[j] <
阅读全文
HDU 5708 Alice and Bob (博弈,找规律)
摘要:题意: 一个无限大的棋盘,一开始在1,1,有三种移动方式,(x+1,y)(x,y+1) (x+k,y+k)最后走到nm不能走了的人算输。。 析:。我们看成一开始在(n,m),往1,1,走,所以自然可以从1,1,开始递推往出,那么打表程序就出来了。。 打出表以后我们观察到k等于1时稍有特殊,其他则与
阅读全文
HDU 5707 Combine String (DP,LCS变形)
摘要:题意:给定三个字符串,问你第三个是不是由第一个和第二个组成的。 析:当时比赛是没有做出来啊。。。一直WA,就是没有判断长度,第一个和第二个和是不是和第三个一样,这个忘记。。。 我们用d[i][j]表示第一个字符串匹配到 i, 第二个匹配到第 j 个,然后只要判断能不能由上一个得到就好。这个主要是d[
阅读全文
HDU 5706 GirlCat (DFS,暴力)
摘要:题意:给定一个n*m的矩阵,然后问你里面存在“girl”和“cat”的数量。 析:很简单么,就是普通搜索DFS,很少量。只要每一个字符对上就好,否则就结束。 代码如下:
阅读全文
HDU 5705 Clock (精度控制,暴力)
摘要:题意:给定一个开始时间和一个角度,问你下一个时刻时针和分针形成这个角度是几点。 析:反正数量很小,就可以考虑暴力了,从第一秒开始暴力,直到那个角度即可,不会超时的,数目很少,不过要注意精度。 代码如下:
阅读全文
HDU 5074 Luck Competition (暴力,概率)
摘要:题意:有 n 个人参加比赛,给出n-1个人的成绩,然后要选出一个幸运的人,先把所有的分数求平均数,然后再*2/3,那个不大于这个数,且最接近的数,就是最幸运的, 让你设置最后一个人的分,使他是最幸运的。 析:题目说了,最多是100,那么这么少,完全可以暴力啊,然后不断更新最大概率。 代码如下:
阅读全文
HDU 4596 Yet another end of the world (数学,扩展欧几里德)
摘要:题意:给出n组x,y,z。判断是否存在一个id使得id%x1∈(y1,z1),id%x2∈(y2,z2)。 析: 设 id/x1=a , id/x2=b ,则 id-a*x1=u; (1) id-b*x2=v; (2) (1)-(2)得 一阶不定方程: bx2-ax1=u-v . 方程可解性为是否存
阅读全文
HDU 3364 Lanterns (高斯消元)
摘要:题意:有n个灯和m个开关,每个开关控制数个灯的状态改变,给出k条询问,问使灯的状态变为询问中的状态有多少种发法。 析:同余高斯消元法,模板题,将每个开关控制每个灯列成行列式,最终状态是结果列,同余高斯消元,如果无解就是0,否则结果就是1<<(自由变元的个数); 代码如下:
阅读全文
POJ 3170 Knights of Ni (暴力,双向BFS)
摘要:题意:一个人要从2先走到4再走到3,计算最少路径。 析:其实这个题很水的,就是要注意,在没有到4之前是不能经过3的,一点要注意。其他的就比较简单了,就是一个双向BFS,先从2搜到4,再从3到搜到4, 然后求最短路即可。 代码如下:
阅读全文
POJ 3172 Scales (01背包暴力)
摘要:题意:给定 n 个数,保证下一个数比上一个数和前一个数之和大,然后给定一个背包,问你最多放多少容积。 析:应该是很明显的01背包,但是可惜的是,数组开不出来,那就得考虑暴力,因为数不多,才几十而已,要不然就超int了,然后我就暴力做了,超时了, 这个还是前剪枝的,这样剪的,先把前几项和算出来,确定最
阅读全文
POJ 3176 Cow Bowling (水题DP)
摘要:题意:给定一个金字塔,第 i 行有 i 个数,从最上面走下来,只能相邻的层数,问你最大的和。 析:真是水题,学过DP的都会,就不说了。 代码如下:
阅读全文
POJ 3175 Finding Bovine Roots (暴力求解)
摘要:题意:给定一串数字,问你这是一个数字开方根得到的前几位,问你是哪个数字。析:如果 x.123... 这个数字的平方是一个整数的话,那必然sqr(x.124) > ceil(sqr(x.123)) [sqr = 求平方, ceil = 向上取整 所以,就可以从小到大枚举它的整数部分 x ,遇到第一个满
阅读全文
POJ 3174 Alignment of the Planets (暴力求解)
摘要:题意:给定 n 个坐标,问你三个共线的有多少组。 析:这个题真是坑啊,写着 n <= 770,那么一秒时间,三个循环肯定超时啊,我一直不敢写了,换了好几种方法都WA了,也不知道为什么,在比赛时坑我了两个多小时, 最后看到那么多过的,就想试试,真的AC ,三个循环一点没优化,竟然才150多毫秒,。。。
阅读全文
HDU 4588 Count The Carries (数学,计数)
摘要:题意:给定两个十进制数,求二进制中,从x加到y的二进制进了多少位。 析:把这些数字的二进制纵向罗列出来,然后一位一位的把和加起来,最终得到总的进位数。从1到x,第i位上1的总数是x左移i+1位再右移i位后得到的, (在第 0位上,1和0以1010101010的周期出现,并且每个周期一个1,在第1位上
阅读全文
HDU 3365 New Ground (计算几何)
摘要:题意:给定点A[0~n-1]和B[0],B[1],A[0]、A[1]映射到B[0]、B[1],求出其余点的映射B[2]~B[n-1]。 析:运用复数类,关键是用模板复数类,一直编译不过,我明明能编译过,交上就不过,只能写一个复数了。。。 代码如下:
阅读全文
HDU 3362 Fix (状压DP)
摘要:题意:题目给出n(n <= 18)个点的二维坐标,并说明某些点是被固定了的,其余则没固定,要求添加一些边,使得还没被固定的点变成固定的, 要求总长度最短。 析:由于这个 n 最大才是18,比较小,所以我们考虑是状压DP,当一不固定的点和两个固定的点相连时,这个点也就固定了,这个点以后也是可以使用的,
阅读全文
HDU 4586 Play the Dice (数学,概率,等比公式,极限)
摘要:题意:给你一个n面的骰子每个面有一个值,然后其中有不同值代表你能获得的钱,然后有m个特殊的面,当你骰到这一面的时候可以获得一个新的机会 问你能得到钱的期望。 析: 骰第一次 sum/n 骰第二次 sum/n*(m/n) 骰第三次 sum/n*(m/n)*(m/n) 骰第四次 sum/n*(m/n)*
阅读全文
HDU 3368 Reversi (暴力,DFS)
摘要:题意:给定一个8*8的棋盘,然后要懂黑白棋,现在是黑棋走了,问你放一个黑子,最多能翻白子多少个。 析:我是这么想的,反正才是8*8的棋盘,那么就暴吧,反正不会超时,把每一个格能暴力的都暴力,无非是上,下,左,右,左上,左下,右上,右下, 然后都试试就好了。不过懂点黑白棋的还是好做一点。 代码如下:
阅读全文
HDU 3367 Pseudoforest (最大生成树)
摘要:题意:给出一个图,要求出最大的pseudoforest, 所谓pseudoforest就是指这个图的一个子图,这个子图的每个连通分量中最多只能有一个环, 而且这个子图的所有权值之和最大。这个就是所谓的伪森林。 析:并查集,在比赛时,做了3个多小时,都没做出来,就是题意没读对,我以为就是最大生成树,但
阅读全文
HDU 3366 Passage (概率DP)
摘要:题意:T组测试数据,一个人困在了城堡中,有n个通道,m百万money ,每个通道能直接逃出去的概率为 P[i] ,遇到士兵的概率为 q[i], 遇到士兵得给1百万money,否则会被杀掉,还有 1-p[i]-q[i] 的概率走不通,要回头。问在可以选择的情况下,逃出去的概率是多少? 析:这个题很明显
阅读全文
HDU 3363 Ice-sugar Gourd (贪心)
摘要:题意:给你一个串,串中有H跟T两种字符,然后切任意刀,使得能把H跟T各自分为原来的一半。 析:由于只有两个字母,那么只要可以分成两份,那么一定有一段是连续的。 代码如下:
阅读全文
CodeForces 540D Bad Luck Island (DP)
摘要:题意:一个岛上有石头,剪刀和布,规则就不用说了,问你最后只剩下每一种的概率是多少。 析:很明显的一个概率DP,用d[i][j][k]表示,石头剩下 i 个,剪刀剩下 j 个,布剩下 k 个,d[r][s][p] = 1,那状态转发方程怎么写呢?是这样的 如果石头减少了1,那么肯定是布干的,那么是哪个
阅读全文
CodeForces 288C Polo the Penguin and XOR operation (位运算,异或)
摘要:题意:给一个数 n,让你求一个排列,使得这个排列与0-n的对应数的异或之最大。 析:既然是异或就得考虑异或的用法,然后想怎么才是最大呢,如果两个数二进制数正好互补,不就最大了么,比如,一个数是100,那么我们只要找11,(都是二进制) 这不就正好么,一试,果然是这样。就是这样找,而且两两正好配对,如
阅读全文
CodeForces 288B Polo the Penguin and Houses (暴力或都快速幂)
摘要:题意:给定 n 和k,n 表示有n个房子,然后每个有一个编号,一只鹅要从一个房间中开始走,下一站就是房间的编号,现在要你求出有多少种方法编号并满足下面的要求: 1.如果从1-k房间开始走,一定能直到 1。 2.如果从k+1到n 开始走,一定走不到 1. 3.如果从 1 开始走,那么一定能回到1,并且
阅读全文
CodeForces 288A Polo the Penguin and Strings (水题)
摘要:题意:给定一个字符,让你用前 k 个字符把它排成 n 长度,相邻的字符不能相等,并且把字典序最小。 析:其实很简单么,我们只要多循环ab,就行,最后再把剩下的放上,要注意k为1的时候。 代码如下:
阅读全文
CodeForces 289B Polo the Penguin and Matrix (数学,中位数)
摘要:题意:给定 n * m 个数,然后每次只能把其中一个数减少d, 问你能不能最后所有的数相等。 析:很简单么,首先这个矩阵没什么用,用一维的存,然后找那个中位数即可,如果所有的数减去中位数,都能整除d,那就是可以,并且记录数据。 代码如下:
阅读全文
CodeForces 289A Polo the Penguin and Segments (水题)
摘要:题意:给你 n 段区间,而且还是不相交的,然后你只能向左扩展左端点,或者向右扩展右端点,然后扩展最少的步数让整数总数能够整除 k。 析:很简单么,只要在记录算一下数量,然后再算出 k 的倍数差多少就行。 代码如下:
阅读全文
CodeForces 540C Ice Cave (BFS)
摘要:题意:给定 n * m的矩阵,让你并给定初始坐标和末坐标,你只能走'.',并且走过的'.'都会变成'X',然后问你能不能在末坐标是'X'的时候走进去。 析:这个题,在比赛时就是没做出来,其实是一个水题,但是我理解错了意思,让下面提示的第一组样例给搞乱。 思路应该是这样的,从开始坐标BFS末坐标,把经
阅读全文
CodeForces 540B School Marks (贪心)
摘要:题意:先给定5个数,n, k, p, x, y。分别表示 一共有 n 个成绩,并且已经给定了 k 个,每门成绩 大于0 小于等于p,成绩总和小于等于x, 但中位数大于等于y。让你找出另外的n-k个成绩。 析:利用贪心算法,首先是只能小于等于 p,也就是成绩越小越好, 然后中位数还得大于等于y,所以我
阅读全文
CodeForces 540A Combination Lock (水题)
摘要:题意:给定一个串数,表示一种密码锁,再给定一串密码,问你滑动最少的次数,把第一行变成第二行。 析:很简单么,反正只有0-9这个10个数字,那么就是把每一个数从正着滑和倒着滑中找出一个最小的即可,正着滑就是大数减小数,倒着就是小数+10-大数。 代码如下:
阅读全文
CodeForces 427B Prison Transfer (滑动窗口)
摘要:题意:给定 n, t, c 和 n 个数,问你在这 n 个数中有多少连续的 c 个数,并且这个 c 个数不大于 t。 析:很简单么,是滑动窗口,从第一个开始遍历,如果找到 c 个数,那么让区间前端点加1,如果找不到,那么就区间前端等于后区间+1. 代码如下:
阅读全文
CodeForces 427A Police Recruits (水题)
摘要:题意:给定 n 个数,有正数和-1, -1表示罪犯,正数表示招了几个警察,一个警察只能看一个罪犯,并且要按顺序,问你有多少罪犯逃脱。 析:很简单么,从开始扫到最后,把是正数就加上,是-1判断剩余警察大于0,如果是就让警察数减1,如果不是答案加1. 代码如下:
阅读全文
CodeForces 347B Fixed Points (水题)
摘要:题意:给定 n 数,让你交换最多1次,求满足 ai = i的元素个数。 析:很简单么,只要暴力一遍就OK了,先把符合的扫出来,然后再想,最多只能交换一次,也就是说最多也就是加两个,然后一个的判,注意数组越界。 代码如下:
阅读全文
CodeForces 347A Difference Row (水题)
摘要:题意:给定 n 个数,让你找出一个排列满足每个数相邻作差之和最大,并且要求字典序最小。 析:这个表达式很简单,就是把重新组合一下,就成了x1-xn,那么很简单,x1是最大的,xn是最小的,中间排序就好。 代码如下:
阅读全文
CodeForces 346A Alice and Bob (数学最大公约数)
摘要:题意:有一堆数,然后有两个人轮流从中取出两个数,这两个数的差的绝对值不在这个集合,然后把这个数放进这个集合,如果哪个人不能拿了,就是输了,问你谁赢。 析:当时连题意都没看好,以为拿出两个数,就不放回了,如果好好分析第三组样例,就不会看成这样了。 思路应该是这样的,既然是拿了再放差的绝对值放进去,那么
阅读全文
CodeForces 474C Captain Marmot (数学,旋转,暴力)
摘要:题意:给定 4n * 2 个坐标,分成 n组,让你判断,点绕点的最少次数使得四个点是一个正方形的顶点。 析:那么就一个一个的判断,n 很小,不会超时,四个点分别从不转然后转一次,转两次。。。转四次,就这样算下去,那么如何判断是不是正方形呢?这样判定就行,把每个边都求出来,然后判定, 这里肯定有四个边
阅读全文
CodeForces 474B Worms (水题,二分)
摘要:题意:给定 n 堆数,然后有 m 个话询问,问你在哪一堆里。 析:这个题是一个二分题,但是有一个函数,可以代替写二分,lower_bound. 代码如下:
阅读全文
CodeForces 474A Keyboard (水题)
摘要:题意:给定一个键盘,然后一行字母,和一个字符,代表把那一行字母在键盘上左移还是右移一位。 析:没什么好说的,直接暴力就好。 代码如下:
阅读全文
CodeForces 690C2 Brain Network (medium)(树上DP)
摘要:题意:给定一棵树中,让你计算它的直径,也就是两点间的最大距离。 析:就是一个树上DP,用两次BFS或都一次DFS就可以搞定。但两次的时间是一样的。 代码如下: 两次BFS:
阅读全文
CodeForces 690C1 Brain Network (easy) (水题,判断树)
摘要:题意:给定 n 条边,判断是不是树。 析:水题,判断是不是树,首先是有没有环,这个可以用并查集来判断,然后就是边数等于顶点数减1. 代码如下:
阅读全文
POJ 1985 Cow Marathon (树形DP,树的直径)
摘要:题意:给定一棵树,然后让你找出它的直径,也就是两点中的最远距离。 析:很明显这是一个树上DP,应该有三种方式,分别是两次DFS,两次BFS,和一次DFS,我只写了后两种。 代码如下: 两次BFS: 一次DFS:
阅读全文
CodeForces 681D Gifts by the List (树上DFS)
摘要:题意:一个家庭聚会,每个人都想送出礼物,送礼规则是, 一个人,先看名单列表,发现第一个祖先 就会送给他礼物,然后就不送了,如果他没找到礼物 他会伤心的离开聚会!告诉你m个祖先关系, 和每个人想给谁送!让你求出名单列表! 析:这个题,真是没想到啊,还是看的题解,首先要知道的是,如果自己和父结点送的人不
阅读全文
UVa 12342 Tax Calculator (水题,纳税)
摘要:今天在uva看到一个水题,分享一下。 题意:制定纳税的总额,有几个要求,如果第一个180000,不纳,下一个300000,纳10%,再一个400000,纳15%,再一个300000,纳20%,以后的纳25%,如果总额大于0但是不过2000,纳2000, 如果总金额不是整数,纳离它最近的且比它大的整数
阅读全文
CodeForces 681C Heap Operations (模拟题,优先队列)
摘要:题意:给定 n 个按顺序的命令,但是可能有的命令不全,让你补全所有的命令,并且要求让总数最少。 析:没什么好说的,直接用优先队列模拟就行,insert,直接放入就行了,removeMin,就得判断一下队列是不是空的,然后再考虑getMin,这个是不是对应的值,如果队列中首元素比它大,那么就加上一个,
阅读全文
CodeForces 682C Alyona and the Tree (树上DFS)
摘要:题意:给定一棵树,每个叶子有一个权值,每条边也有一个权值,现在让你删最少的结点,使得从任何结点出发到另一个结点的边上权值和都小于两个结点的权值。 析:很明显是DFS,不过要想找出最少的结点可能不太容易,所以我们可以先找出剩下结点最多,那么用总数减去这个就好,那么怎么找哪些结点是剩下的呢?首先要知道,
阅读全文
CodeForces 682B Alyona and Mex (题意水题)
摘要:题意:给定一个序列,你可以对这里面的数用小于它的数来代替,最后让你求,改完后的最大的序列中缺少的最小的数。 析:这个题,读了两个多小时也没读懂,要是读懂了,肯定能做出来。。。没什么可说的,就是尽量凑1 2 3 4 5。。。如果没有了,就输出。 代码如下:
阅读全文
CodeForces 682A Alyona and Numbers (水题,数学)
摘要:题意:给定两个数 m,n,问你在从1到 n,和从 1到 m中任选两个数加起来是5的倍数,问你有多少个。 析:先计算 m 和 n中有多少个取模5是从0到4的,然后根据排列组合,相乘就得到了小于等于 m 和 n的并且能整除五的个数,然后再加上剩下的。 代码如下:
阅读全文
CodeForces 339C Xenia and Weights(暴力求解DFS)
摘要:题意:给定 1-10的某几种砝码,给定的每种有无穷多个,然后放 m 个在天平上,要满足,相邻的两次放的砝码不能是同一种,然后是在天平两端轮流放,并且放在哪一个托盘上,那么天平必须是往哪边偏。 析:这个题,我一开始就用贪心做的,我是这样想的,先放小的,然后放一个比另一个稍微大一点的,依次这样放下去,但
阅读全文
CodeForces 339D Xenia and Bit Operations (线段树)
摘要:题意:给定 2的 n 次方个数,对这些数两个两个的进行或运算,然后会减少一半的数,然后再进行异或运算,又少了一半,然后再进行或运算,再进行异或,不断重复,到最后只剩下一个数,要输出这个数,然后有 m 个询问, 每个询问有 p 和 b,要求把第 p 个数改成 b,再这样运算,输出结果。 析:这个题是不
阅读全文
CodeForces 339B Xenia and Ringroad(水题模拟)
摘要:题意:给定 n 个地方,然后再给 m 个任务,每个任务必须在规定的地方完成,并且必须按顺序完成,问你最少时间。 析:没什么可说的,就是模拟,记录当前的位置,然后去找和下一个位置相差多长时间,然后更新当前位置即可。 代码如下:
阅读全文
CodeForces 342C Cupboard and Balloons (几何问题)
摘要:题意:给定一个 r 和 h,r 是上面那个半球的半径,h 是下面那个圆柱的高度,然后有一些半径为 r/2的气球,问你最多能放几个。 析:根据题意,很容易知道,先从下面往上放,两个两个的放,放到不能放的时候,再计算在上面是不是还能再放一个。这样是最多的,关键是计算上面那能不能放上,用到几何中的两圆的位
阅读全文
CodeForces 342A Xenia and Divisors (水题)
摘要:题意:给定 n 个数(小于等于7),让你把它分成 m 组,每组有三个数,且满足,a < b < c,并且 a 能整除 b,b 能整除 c。 析:对于这个题,因为题目说了是不大于7的,那么一想不就三组数么,124,136,126.就这三组,然后确定每一组的数量,首先只有第二组有3,那么第二组的数量就确
阅读全文
UVa 1220 Party at Hali-Bula (树形DP,最大独立集)
摘要:题意:公司有 n 个人形成一个树形结构,除了老板都有唯一的一个直系上司,要求选尽量多的人,但不能同时选一人上和他的直系上司,问最多能选多少人,并且是不是唯一的方案。 析:这个题几乎就是树的最大的独立集问题,只不过多一个判断唯一性而已。用两个数组,一个用来记录人数,一个用来判断唯一性。 d[u][0]
阅读全文
CoderForces 518D Ilya and Escalator (期望DP)
摘要:题意:给定 n 个人,在每一时刻一个人进入地铁的概率是 p,站着不动的概率是 1-p,然后问你 t 时间地铁里有多少人。 析:很明显这是一个期望DP,用d[i][j]表示 i 时刻 j 个人进入地铁的概率,有两种情况,要么第 i-1 时刻已经有 j 个人了,那么就不进,要么第 i-1 时刻只有 j-
阅读全文
CoderForces 687C The Values You Can Make (01背包,DP)
摘要:题意:给定 n 个硬币和一个值 k,问你在用一些硬币组成面值为 k的这些硬币还能组成多少种其他面值。 析:如果这样说,由这些硬币能组成多少种不同的面值,那么是不是就很熟悉了,这不就是01背包么,这个题又加了一个限制条件,是用能组成 k 的这些硬币,也是类似的,d[i][j],表示硬币 j 能组成面值
阅读全文
CoderForces 689A Mike and Cellphone (水题)
摘要:题意:给定一个手机键盘数字九宫格,然后让你判断某种操作是不是唯一的,也就是说是不是可以通过平移也能实现。 析:我的想法是那就平移一下,看看能实现,就四种平移,上,下,左,右,上是-3,要注意0变成8,如果有数字变成小于等于0了,那么就是不可以,同理,下是+3,8可以变成0,其他的也是这样, 注意左右
阅读全文
CoderForces 518C Anya and Smartphone (模拟)
摘要:题意:给定一个手机,然后一共有 n 个app,告诉你每个屏幕最多放 k 个,现在要你运行 m 个app,每次都从第一个屏幕开始滑动,每运行一个,它就和前一个交换位置,第一个就不换了,现在问你要滑动多少次。 析:这个题,没什么算法,就是模拟呗,不过要注意时间,不能TLE,所以我们就得提前把所有的位置都
阅读全文
CodeForces 518B Tanya and Postcard (题意,水题)
摘要:题意:给定两个字符串,然后从第二个中找和第一个相同的,如果大小写相同,那么就是YAY,如果大小写不同,那就是WHOOPS。YAY要尽量多,其次WHOOPS也要尽量多。 析:这个题并不难,难在读题懂题意。首先把两个字符串的的每个字符存起来,然后,先扫一遍,把所有的能YAY的都选出来,剩下的再尽量先WH
阅读全文
CodeForces 513A Game (水题,博弈)
摘要:题意:两个人有n1,n2个球,然后分别最多拿出 k1,k2个球,然后扔掉,谁先拿完谁输。 析:很简单么,每人都足够聪明,就每次扔一个好了,那么,谁的球多,谁就能赢呗,如果相等,那么第一个扔的输。 代码如下:
阅读全文
CodeForces 518A Vitaly and Strings (水题,字符串)
摘要:题意:给定两个相同长度的字符串,让你找出一个字符串,字典序在两都之间。 析:这个题当时WA了好多次,后来才发现是这么水,我们只要把 s 串加上,然后和算数一样,该进位进位,然后再和 t 比较就行。 代码如下:
阅读全文
UVa 1606 Amphiphilic Carbon Molecules (扫描法+极角排序)
摘要:题意:平面上有 n 个点,每个点不是黑的就是白的,现在要放一个隔板,把它们分成两部分,使得一侧的白点数加上另一侧的黑点数最多。 析:这个题很容易想到的就是暴力,不妨假设隔板至少经过两个点,即使不经过也可以通过平移使它经过,然后每次枚举两个点,当作隔板,枚举量是n*n, 然后计算是 n,那么时间复杂度
阅读全文
CodeForces 687B Remainders Game(数学,最小公倍数)
摘要:题意:给定 n 个数,一个数 k,然后你知道一个数 x 取模这个 n 个的是几,最后问你取模 k,是几。 析:首先题意就看了好久,其实并不难,我们只要能从 n 个数的最小公倍数是 k的倍数即可,想想为什么。如果考虑用 k 除以最大公约数是错误的, 因为可能存在相同的因数,这个是不能算的。 代码如下:
阅读全文
CodeForces 687A NP-Hard Problem (二分图)
摘要:题意:给定 n 条边,然后让你把它分成两组,每组都有所有边的一个端点。 析:一开始我是先判定环,以为就不能成立,其实不是这样的,有环也行。用dfs进行搜索,并标记每一个端点,如果标记过并且和以前不一样,那么就是不能成立, 否则就能成立,并且标记上。最后分类输出就好。 代码如下:
阅读全文
CodeForces 688B Lovely Palindromes (水题回文)
摘要:题意:给一个数n,让你找出长度为偶数,并且是第 n 个回文数。 析:你多写几个就知道了,其实就是 n,然后再加上n的逆序,不过n有点大,直接用string 好了。 代码如下:
阅读全文
CodeForces 688A Opponents (水题)
摘要:题意:给定 n 行数,让你找出连续最多的全是1的个数。 析:好像也没什么可说的,那就判断一下,并不断更新最大值呗。 代码如下:
阅读全文
CodeForces 686B Little Robber Girl's Zoo (构造冒泡排序)
摘要:题意:给定一排列,让你通过一个区间交换的方式,完成排序。 析:这个题说了,最多不能超过20000次,而 n 最大才100,那么冒泡排序复杂度为 n * n,才10000,肯定是可以的,所以我们就模拟冒泡排序。 代码如下:
阅读全文
CodeForces 686A Free Ice Cream (水题模拟)
摘要:题意:给定初始数量的冰激凌,然后n个操作,如果是“+”,那么数量就会增加,如果是“-”,如果现有的数量大于等于要减的数量,那么就减掉,如果小于, 那么孩子就会离家。问你最后剩下多少冰激凌,和出走的孩子数量。 析:多水的一个题,就是一个模拟,如果是+,就加上,如果是‘-’,就判断一下,如果不够,就记录
阅读全文
UVa 11136 Hoax or what (STL)
摘要:题意:有 n 天,每天有m个数,开始的前一天没有数据,然后每天从这个里面拿出一个最大的和最小的,求 n 天的最大的和最小的差值相加。 析:一看就知道用set啊,多简单的STL,不过要注意,开long long,和multiset,因为可能数是一样。 代码如下:
阅读全文
UVa 1616 Caravan Robbers (二分+贪心)
摘要:题意:给定 n 个区间,然后把它们变成等长的,并且不相交,问最大长度。 析:首先是二分最大长度,这个地方精度卡的太厉害了,都卡到1e-9了,平时一般的1e-8就行,二分后判断是不是满足不相交,找出最长的。这个题并不难, 就是精度可能控制不好,再就是把小数化成分数时,可能有点麻烦。 代码如下:
阅读全文
UVa 10570 Meeting with Aliens (暴力)
摘要:题意:给定一个排列,每次可交换两个数,用最少的次数把它变成一个1~n的环状排列。 析:暴力题。很容易想到,把所有的情况都算一下,然后再选出次数最少的那一个,也就是说,我们把所有的可能的形成环状排列全算一下,然后选出最少的。 那么就开一个两倍的数组,然后两遍从1到n,然后每次选 n 个,进行暴力,每找
阅读全文
UVa 1153 Keep the Customer Satisfied (贪心+优先队列)
摘要:题意:给定 n 个工作,已知每个工作要用的时间 q 和 截止时间 d,问你最多完成多少个工作,每次最多能运行一个工作。 析:这个题是贪心,应该能看出来,关键是贪心策略是什么,这样想,先按截止时间排序,那么这样,所有的工作就是都是按照截止时间排,因为我们先保证, 截止时间早的先选,然后再从把所有的遍历
阅读全文
HDU 2044 一只小蜜蜂...(递推,Fibonacci)
摘要:题意:中文题。 析:首先要想到达第 n 个蜂房,那么必须经 第 n-1 或第 n-2 个蜂房,那么从第 n-1 或第 n-2 个蜂房到达第 n 个,都各自有一条路线, 所以答案就是第 n-1 + 第 n-2 个蜂房,即 ans[i] = ans[i-1] + ans[i-2];注意要用long lo
阅读全文
浙公网安备 33010602011771号