
刷题
文章平均质量分 82
qdbszsj
游荡ing
我的邮箱:qdbszsj@163.com
展开
-
hiho 1642 三角形面积和 [Offer收割]编程练习赛37 Problem B
题目2 : 三角形面积和时间限制:10000ms单点时限:1000ms内存限制:256MB描述如下图所示,在X轴上方一共有N个等腰直角三角形。这些三角形的斜边与X轴重合,斜边的对顶点坐标是(Xi, Yi)。 (11,5) (4,4) /\ /\(7,3) \ /原创 2017-11-26 14:47:25 · 617 阅读 · 0 评论 -
矩阵连乘问题 DP
题目大意:要你求矩阵A1*A2*A3*A4*A5*A6…………*An的最优解法,就是求乘的次序,因为一个i*j的矩阵*一个j*k的矩阵时间复杂度为i*j*k,通过适当的改变运算顺序,可以使原来的问题规模变小。这里给你若干矩阵的行列数,求计算顺序。解题思路:一道典型的dp,算法老师在课上讲的,然后留的作业,不难。令dp[i][j],为计算从第i到j这段区间的矩阵所需的最小次数,其可以由dp[i+原创 2015-04-13 22:13:36 · 773 阅读 · 0 评论 -
zoj 3710 Friends The 10th Zhejiang Provincial Collegiate Programming Contest - F
题目大意:告诉你有一些人,他们之间有的人之间互相是朋友,输入人的个数,和存在的朋友关系的个数,再输入一个k值(k可以为0!!!!!我一开始没注意这个细节,WA了一次),然后输入若干条谁跟谁是朋友。如果两个人的共同的好友数量达到了k,那么这两个人也会成为朋友,然后有的人可以靠这个新建立的朋友关系再交朋友。输出新建立的关系个数。解题思路:这是一个图的问题,我没用vector,直接用了个二维原创 2015-04-12 21:03:17 · 574 阅读 · 0 评论 -
poj 1742 Coins
题目大意:一个人有若干不同面值、同面值不同数量的硬币。告诉你硬币面值的种类和对应的数量,求用这些硬币能正好凑成多少个小于m的整数。解题思路:类似于素数打表,开一个m大的bool数组记录哪些数能被凑出来,外层for循环硬币的种类,对于每种硬币都把m挨个算一遍,时间复杂度为O(n*m=1000w)。在算的时候首先要判断当前的点有没有已经能被凑出来了,如果值得去凑,那么再看j-A[i]那个点原创 2015-04-08 18:45:13 · 609 阅读 · 0 评论 -
poj 3280 Cheapest Palindrome DP
题目大意:给你一个长度最大为2000的小写的字符串,要你把他变成回文串(空串也行),你可以在串里任意位置删除或者添加任意数量的字母,但是每当删除或者添加的时候会消耗一定的点数,每个字母对应不同的删除和添加点数,问如何让点数最小并达到要求。解题思路:令dp[i][j]为把这个字符串从i到j变为回文串所需要消耗的最小点数,显然,当i=j时,dp[i][j]=0,当i~j很长时,我们可以用递原创 2015-04-08 12:23:57 · 487 阅读 · 0 评论 -
SGU 134 Centroid 树形DP
题目大意:给你一颗树,定义树的中心为:如果去掉某个结点,那么剩下的若干子树中,结点最多的树的结点个数就是某结点的价值,计算所有的点的价值,那么价值最小的点就是树的中心。中心可以存在好多个。要你求那个最小的价值,中心的个数,并把这些中心点的编号按照升序输出。解题思路:用一遍dfs就搞定了,从第一个点开始往下遍历,如果没有访问过就去访问。sum[i]指从第一个点往下遍历的方向上,以i为根的原创 2015-04-07 18:32:08 · 541 阅读 · 0 评论 -
poj 3616 Milking Time DP
还是一道《挑战程序设计竞赛》上的基础题目题目大意:给一头奶牛挤奶,一共在N时间内,奶牛能下M次奶,但是每次挤完,都要休息R分钟才能接着挤,每次下的奶的数量不一样,给出每次下奶的时间段,和下奶量,求如何能让挤出的奶最多思路:可以直接把R加到y上,相当于结束时间直接加上休息时间。首先还是按照初始时间排序,然后把dp数组都初始化为在每个时间点能挤的奶量。dp[i]表示挤到牛第i次下奶的时原创 2015-04-05 19:30:17 · 542 阅读 · 0 评论 -
poj 2385 Apple Catching DP
本人是初出茅庐的小菜,代码繁琐,算法低端,写给自己看的,希望大神们多多指教题目大意:有一个人在两棵掉苹果的树下来回接苹果,每分钟都有个树往下掉,编号为1、2的两棵树,一共掉T分钟,然后这个人只能动W次,一开始站在1树,问最后最多能接多少个苹果。思路:令dp[x][y][z],为已经过去了x分钟,已经走了y步,目前在z(1 or 2)树下,并且苹果已经落下来了,因为初原创 2015-04-05 18:40:29 · 600 阅读 · 0 评论 -
poj 3258 二分 River Hopscotch
River HopscotchTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 12355 Accepted: 5286DescriptionEvery year the cows hold an event featuring a peculiar ver原创 2017-01-08 15:33:20 · 487 阅读 · 0 评论 -
最长公共子序列 DP
一道dp基础题,给你两个序列,问你最长公共子序列是什么,比如:(a,b)是(a,c,d,b)的子序列。注意不是最长公共子串,这里的子序列可以不连续。两个for循环就出来了,每一个dp[i][j]可以从dp[i-1][j-1]、dp[i-1][j]、dp[i][j-1]三种情况更新过来,取个最大的,然后把路径用123存下来,最后再顺着路径找然后逆序输出就行。原创 2015-04-26 10:29:05 · 1036 阅读 · 0 评论 -
2015 湘潭大学程序设计比赛(Internet)Problem D:最小的数
这个题没有什么算法,就是用俩嵌套for循环,然后要注意一下边界条件就能A,比赛的时候WA了好几次,要么是忘了memset,要么ct忘了重置为0,要么就是j写成i,总之非常egg pain,犯了好多低级错误,不在状态啊。我解释一下我的代码和思路把。我这个类似于贪心算法,就是每次都把整个数列扫描一遍,用num[0~9]标记出0~9这10个数第一次出现的位置,然后从0开始往9for循环,如果最小的数的位置与当前要确定的位置距离小于等于k,那么就可以把这个数组挨个往后挪,然后把那个小的数放到当前操作的位置,k-原创 2015-04-26 20:38:58 · 1072 阅读 · 0 评论 -
hdu4772 水题 Zhuge Liang's Password (2013 Asia Hangzhou Regional Contest problem C)
题意:给你俩矩阵,一一对应的匹配,看最多有几个相同的数字,矩阵可以旋转90*k度13年杭州的签到题,做旋转匹配一下就行了Zhuge Liang's PasswordTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 15原创 2015-10-11 12:53:42 · 456 阅读 · 0 评论 -
zoj3882 Help Bob 博弈
题意:两个人博弈,地上有n个标号从1~n的石子,然后每人依次拿走一个石头,在拿走一个石头的同时,它的因数石子也会被同时去掉,0解题思路:想明白了很简单,想不通就做不出来。假设存在一种n并且先手选2~n,是先手必败,那么后手就是必胜了,此时1已经被取走了,因为1是所有数的因数。那么如此来看,先手如果不选2~n,而选1,那么必败态就留给后手了,所以无论如何主动权都是在先手的人,先手可以选择是否原创 2015-09-29 21:59:56 · 473 阅读 · 0 评论 -
hdu5476 Explore Track of Point 2015上海网络赛
题目大意:一道几何题,题意是这样的,如图所示。有一个等腰三角形ABC,底边是BC,M是BC中点,在三角形内有一个点P,现在求P的轨迹,使得角BPM+角APC=角APB+角CPM=180度。ABC三个点的坐标已知。解题思路:这个题显而易见的能发现,AM三线合一,肯定是P的轨迹,因为角两两相等。除此之外,在比赛的时候,给的样例告诉我们,P的轨迹肯定不止这一条线,然后我就找从B、C出发的角平分线原创 2015-09-28 21:24:02 · 632 阅读 · 0 评论 -
hdu4430 Yukari's Birthday 2012 ACM_ICPC Asia ChangChun Regional Contest problem K
题意:有个人过生日在蛋糕上插蜡烛,一圈一圈的插成同心圆,要求每一圈从里到外正好依次插k的i(1~r)次幂个蜡烛,最中间圆心可插可不插,给一个n(18~1w亿),输出k和r。并且要求k*r尽可能小,同时r尽可能小。数据一共1w组左右。思路:看到有1w组n,并且n是10的12次方,那明显要用2分才能做了。题目时间给的很充足,所以先打个表。把小于1w亿的k的r次幂都打到表里(1次幂就不要打了,会超内原创 2015-09-23 21:53:49 · 505 阅读 · 0 评论 -
2013 ACMICPC Asia Regional 长春 problem C
长春区域赛的第二简单的题,类似于01背包。有N个判断题,每个题有个分值,有个sb随机地做,某题对了就得分,不对不得分。再给你一个P值,问:what score should I get at least so that I will not lose in the contest with probability of at least P?(至少以p的概率不输,要得多少分)我直接用概率d原创 2015-09-23 16:38:55 · 622 阅读 · 0 评论 -
hdu 5360 Hiking
贪心+优先队列,注意一下各种边界条件。HikingTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1230 Accepted Submission(s): 642Special Judge原创 2015-09-21 20:56:10 · 498 阅读 · 0 评论 -
POJ 1753 Flip Game
好久没发题解了,先发一道水题题解。这个题跟poj3279类似,比那个简单一些,棋盘大小只有4*4,但是做法类似,都是穷举第一行的2^n种可能,然后根据每种状态贪心的得出相应状态,最后判断最后一行。但是这个题是翻成黑的白的都行,所以要讨论两种情况,注意一下就好。Flip GameTime Limit: 1000MS Memory Limit: 65536K原创 2015-09-20 23:15:31 · 386 阅读 · 0 评论 -
ZOJ 3878 The 12th Zhejiang Provincial Collegiate Programming Contest - J
浙江省赛一道水题,模拟一个键盘,能按键替代的。我交了三遍WA,一直没搞明白为何WA了,然后我把输出改成一个个的输出,就AC了。。。我一直没弄懂原来的咋错了,求大神帮我看看。做这个题真是日狗了。。。莫名其妙啊……我把原来的代码注释了。下面是代码:原创 2015-05-13 16:57:54 · 986 阅读 · 0 评论 -
HDU 5996 Nim博弈
题意是给一个树,每个结点上有若干石子,两个人博弈,每次可以从子结点移动任意(至少1个)数量的石子到父节点,最后无子可移动的人判负。这个题是Nim博弈。首先我们可以忽略深度为偶数的结点,假设你是玩家,对手移动偶数深度的结点,你把他刚移动的那些石子直接移动到上层就行了,假设奇数深度的结点全部为空的时候,是先手必败的,因为先手只要移动任何一个石子,肯定会到奇数层,后手跟着移动这些奇数层的石子到偶原创 2017-09-07 21:04:36 · 267 阅读 · 0 评论 -
HDU 1527 取石子游戏 威佐夫博弈 Wythoff
两堆石子,每次可以进行两种操作中的一种:1.从一堆取任意数量石子2.从两堆里取相同数量石子给出两堆的石子数量,先取完的人胜,问先后手必胜否?可以建立一个直角坐标系,假设输入的为(a,b),那么(0,0)是必败态,以(0,0)为基础,存在任意的x,(0,x)或(x,0)或(x,x)都是必胜态,继续拓展,我们发现(1,2)和(2,1)向下都只能进入必胜态,所以此时的先手肯定是必原创 2017-09-08 16:52:37 · 280 阅读 · 0 评论 -
hiho 1623 有歧义的号码 [Offer收割]编程练习赛35 Problem A
题目1 : 有歧义的号码时间限制:10000ms单点时限:1000ms内存限制:256MB描述小Hi参加了一场大型马拉松运动会,他突然发现面前有一位参赛者背后的号码竟然和自己一样,也是666。仔细一看,原来那位参赛者把自己号码帖反(旋转180度)了,结果号码999看上去变成了号码666。 小Hi知道这次马拉松一共有N名参赛者,号码依原创 2017-11-12 14:50:11 · 682 阅读 · 0 评论 -
hiho 1624 最短游览路线 [Offer收割]编程练习赛35 Problem B
题目2 : 最短游览路线时间限制:10000ms单点时限:1000ms内存限制:256MB描述十一期间小Hi被朋友拉去某座名山旅游。这座山上一共有N个景点,编号1~N,通过M条单向缆车相连。 小Hi和朋友的出发点在1号景点。小Hi正在等待某公司的面试电话,所以他希望找一条路线,搭乘最少次数的缆车(至少一次),回到出发点。 你能原创 2017-11-12 14:52:19 · 529 阅读 · 0 评论 -
hiho 1625 重复字符串匹配 [Offer收割]编程练习赛35 Problem C KMP模板题
题目3 : 重复字符串匹配时间限制:10000ms单点时限:1000ms内存限制:256MB描述给定两个字符串A和B,请你求出字符串A最少重复几次才能使得B是A的子串。 例如A="hiho",B="hohihohi"。则A重复3次之后变为"hihohihohiho",这时B是A的子串。输入输入包含多组数据。 第一行原创 2017-11-12 14:58:46 · 621 阅读 · 1 评论 -
hiho 1626 缩写命名 [Offer收割]编程练习赛35 Problem D 二分图匹配
#1626 : 缩写命名时间限制:10000ms单点时限:1000ms内存限制:256MB描述很多计算机科学工作者都喜欢给自己发明的系统或者方法起个拉风的名字。他们一般会用若干个单词描述这个系统,并且从这些单词中各取出一个字母组合在一起作为系统的名字。如果组合在一起的名字恰好是个有意义的单词,那就更COOL了。 例如 "FAWN:a原创 2017-11-12 16:53:44 · 432 阅读 · 0 评论 -
hiho 1619 “共同富裕” [Offer收割]编程练习赛34 Problem A 数学
把n个x共同相对x以外的数减一需要n步,相对减k则需要k*n步,因此一个公式for循环就跑出来了。#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std原创 2017-11-05 15:30:45 · 362 阅读 · 0 评论 -
hiho 1620 股票价格3 [Offer收割]编程练习赛34 Problem B 单调栈
这个题想了好久才做出来,本来感觉要维护一个区间最值的数据结构,然后每次搜索的时候借助那个区间最值帮助剪枝,后来发现好多人都过了,我就觉得这题应该不用那么麻烦,果然,想了一会,维护一个单调栈,贪心就可以解决了。从右往左往栈里放点,从栈底到栈顶必须单调递减,如果有大元素值放入,那么把它底下的所有小于等于它的元素全部pop掉,再往里放,这样子O(n)解决。#include #include原创 2017-11-05 15:41:28 · 537 阅读 · 0 评论 -
hiho 1638 小Hi的天平 [Offer收割]编程练习赛36 Problem B 并查集+图dfs乱搞
题目2 : 小Hi的天平时间限制:1000ms单点时限:1000ms内存限制:256MB描述小Hi给小Ho邮寄了一个天平。收到天平后,小Ho想知道天平在运输过程中是否损坏,为此它准备了A类物品和B类物品共n个(可能只有A类物品,也可能只有B类物品),但无法确定一个物品是哪一类。A类物品的质量都相同,B类物品的质量也相同,但A类物品与B类物原创 2017-11-19 15:17:47 · 578 阅读 · 0 评论 -
hiho 1641 热门号码 [Offer收割]编程练习赛37 Problem A
题目1 : 热门号码时间限制:10000ms单点时限:1000ms内存限制:256MB描述 1 2 3 ABC DEF 4 5 6 GHI JKL MNO 7 8 9 PQRS TUV WXYZ * 0 #我们知原创 2017-11-26 14:42:32 · 847 阅读 · 0 评论 -
hiho 1607 H星人社交网络 [Offer收割]编程练习赛31 Problem A 二分乱搞
这个题,对于每个A[i],题目都给出了3个否定的区间,是不能交朋友的,本来我想用容斥,1+2+3-12-13-23+123这样子写了一发然后WA了,后来发现没那么麻烦,每个人的交友区间都能求出一个单一的区间来[v1,v2],v1的值可以由第一条规则的出来,v2的值就是第二第三条规则的临界值的min,然后如果自己在这个区间里,给去掉就行了。找的过程中用upper和lower bound非常方便。原创 2017-10-15 14:59:17 · 493 阅读 · 0 评论 -
HDU5119 2014北京区域赛H DP
给40个数,大小不超过100万,求异或和超过M的组合个数。do[i][j]表示前i个数异或和是j的组合个数然后就可以从i-1更新到i了,选第i个或者不选第i个,类似背包问题。#include#include#include#include#includeusing namespace std;int A[50];int N,M;const int MAXN=1<<20;原创 2017-10-15 14:51:40 · 549 阅读 · 0 评论 -
HDU 1845 Brave Game 巴什博弈 Bash
这个博弈叫巴什博弈,比较简单易懂。有n个石子,轮流取,每次取1~m个,无子可取的人判负。给对方留m+1个子,遍可取胜,当子数是m+1的倍数的时候,对方取多少,自己只要让其保持m+1的倍数就好,因此当n%(m+1)==0的时候,先手必败。如果把规则稍微改一下,最后取完的人判负,那么我们就要努力给对手只留一个子,也就是要给对手留m+1+1个子,因此n%(m+1)==1的时候,先手必败。原创 2017-09-08 15:08:01 · 295 阅读 · 0 评论 -
hiho 1599 dfs乱搞 [Offer收割]编程练习赛29 Problem A 逃离迷宫4
时间限制:10000ms单点时限:1000ms内存限制:256MB描述小Hi被坏女巫抓进一座由无限多个格子组成的矩阵迷宫。小Hi一开始处于迷宫(x, y)的位置,迷宫的出口在(a, b)。小Hi发现迷宫被女巫施加了魔法,假设当前他处在(x, y)的位置,那么他只能移动到(x+y, y)或者(x, x+y)的位置上。小Hi想知道自己能不能逃离迷宫。原创 2017-10-01 16:47:02 · 498 阅读 · 0 评论 -
hiho 1601 背包DP乱搞 [Offer收割]编程练习赛29 Problem C 最大得分
时间限制:10000ms单点时限:1000ms内存限制:256MB描述小Hi和小Ho在玩一个游戏。给定一个数组A=[A1, A2, ... AN],小Hi可以指定M个不同的值S1,S2, S3 ... SM,这样他的总得分是 ΣSi × count(Si)。(count(Si)是数组中与Si相等的元素的个数)。为了增加难度,小Ho要求小Hi选原创 2017-10-01 16:54:30 · 486 阅读 · 0 评论 -
hiho 1615 矩阵游戏II [Offer收割]编程练习赛33 Problem A 贪心暴力
把每列取反后所能获得的收益记录下来,然后排序,从高到低一对对的取,大于0就算上。#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;int N;原创 2017-10-29 14:35:25 · 911 阅读 · 0 评论 -
hiho 1617 方格取数 [Offer收割]编程练习赛33 Problem C DP
有两条路径,设上面的路径为路径1,下面的为路径2,路径1上的点为x1,y1,路径2上的点为x2,y2dp[i][j][k]表示x1,x2,step由step可以确定出y1和y2,这样可以缩小一维,本来暴力起来应该是200的四次方,16亿,肯定爆内存。然后对于每个状态,可以由step-1的四种状态(↓↓,↓→,→→,→↓)更新过来,更新过程中注意判断一下边界条件别RE就可以了,复杂度O(原创 2017-10-29 14:38:55 · 405 阅读 · 0 评论 -
hiho 1611 气泡图 [Offer收割]编程练习赛32 Problem A 数学公式暴力
大圆套小圆,针对每个圆,找出包含它的那个面积最小的圆就行了,一共1000个,复杂度n方这个题我还WA了两发。。。我还以为是EPS的问题,最后发现那个max值设的太小了,之前就写了一串9,后来改成比输入值的max大就过了。。。#include #include #include #include #include #include #include #include #inc原创 2017-10-22 14:45:42 · 649 阅读 · 2 评论 -
hiho 1612 候选人追踪 [Offer收割]编程练习赛32 Problem B 乱搞
这个题最后没过,全场只过了3个人,然后好多人包括我都是得了90分,我一直不知道问题在哪,哪组数据把我HACK了呢?求大犇指点一下小弟。。。说一下我的思路,先给输入数据按照时间排个序,然后,根据时间的流逝,维护一个MIN和MAX,分别代表集合S里的最小值,和不在集合里的人的最大值。最大值比较容易维护,直接max就行了,但是最小值,不太好搞,因为初值都是0,为了解决这个问题,我用了一个ticket原创 2017-10-22 14:53:20 · 531 阅读 · 0 评论 -
hiho 1613 墨水滴 [Offer收割]编程练习赛32 Problem C 优先队列+BFS
这个题挺简单的,也挺有意思,我第一次做这种优先队列结合BFS的题目,给的数据量很大,暴力肯定TLE,但是我们可以用优先队列进行剪枝,先处理颜色深度高的点,就是这样吧,代码很短。#include #include #include #include #include #include #include #include #include #include #include原创 2017-10-22 15:06:57 · 533 阅读 · 2 评论 -
hdu4771 BFS Stealing Harry Potter's Precious (2013 Asia Hangzhou Regional Contest problem B)
题意:一个迷宫,里面最多4个宝物,从起点出发,求至少几步把宝物全拿到手思路:先从每个宝物的位置做起点,做bfs,得出两两间最短距离,然后做一个暴力的旅行商问题就行了,数据量只有4个宝物,算法很好想,代码比较繁琐,认真仔细点就好,我自己做的时候WA了两次,sb错误。如果比赛的时候一起敲,应该能1A,或者少WA一次把。我写的BFS没啥大问题,后来检查出来一些小错都改正了,最后那个旅行商问题的处理,原创 2015-10-11 13:00:42 · 455 阅读 · 0 评论