- 博客(16)
- 收藏
- 关注
原创 HDU 2992 Hotel booking(spfa+floyd)
spfa求到可到达点的最短路径,如果小于600说明可以到达,然后标记一下。在floyd求出有多少个点。然后减一。Hotel bookingTime Limit: 20000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 357 Accepted
2014-03-31 18:57:59 1004
原创 POJ 1141 Brackets Sequence(记录路径的dp)
这是在看书的时候遇到的一到练习题,算法设计编程实验P200.但是感觉书上写错了啊P201的判断if((str[i] == '(' && str[j] == ')') || (str[i] == '[' && str[j] == ']'))之后不能直接返回而作者写了continue。此时匹配的不一定是最优啊。Brackets SequenceTime Limit: 1
2014-03-26 21:27:06 694
原创 HDU 4597 Play Game(四维记忆化搜索)
做之前问虎哥比赛的时候怎么过掉的,虎哥说秒过。感觉自己好水啊。。。。四维记忆化搜索。决策的条件是如果你剩下的数越小你得到的数越大。dp[l1][r1][l2][r2]代表当前状态的最优的情况。dp[l1][r1][l2][r2] = sum-{四种衍生出来的状态};Play GameTime Limit: 2000/1000 MS (Java/Others) Me
2014-03-25 09:39:45 852
原创 HDU 4497 GCD and LCM(拆素数+组合)
解体的思路:lcm(x,y,z)=k;gcd(x,y,z)=t;若:x=a*t; y=b*t; z=c*t;则lcm(a,b,c)=k/t;若k/t=2^A;则a,b,c中至少有一个数为2^A,至少有一个数是2^0,另外一个数为2^(0~A);共6*A种情况。则,若k/t=2^A*3^B*5^C;a,b,c的情况数为:
2014-03-22 19:17:07 849
原创 HDU 4020 Ads Proposal(很巧妙的哈希)
题目的意思是:一共有n个人,一共在百度上发布m个广告。每个广告的时间长度为lenth。有q次询问让你求出每次询问下每个人点击量排前k个的时间长度的和。(这里要注意有可能这个人发的广告的次数少于k个。这样和就是他发布的所有的时间和)。解题的思路是:先对点击数量进行排序同时记录原先的下标。以点击量的数量数组排序后的下标进行hash。然后用vis标记数组记录每个ower出现的次数(vis中每个owe
2014-03-19 22:05:35 790
原创 HDU 4472 Count(记忆化搜索)
竟然是记忆化搜索,一直以为是递推。。。。CountTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1184 Accepted Submission(s): 783Problem Descriptio
2014-03-17 21:56:13 885
原创 FZU Problem 2140 Forever 0.5
竟然是一个找规律,推出图形后直接在上面加一些点。真是长知识了啊。注意:是有n条边满足长度为1。一定要先做出来那个一个点在圆心其他三个点在正规圆的四边形出来,然后其他的点在两个点之间插就行了啊。 Problem 2140 Forever 0.5Accept: 38 Submit: 117 Special JudgeTime Limit: 1000 mSec
2014-03-16 21:25:59 1133
原创 sdut oj 2619 地板砖(简单的状压)
这是校赛的一道题目,后来一直没有看。现在才A掉,有点水了啊。地板砖Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述利用假期时间,豆豆找个了临时工,帮有钱人家贴地板砖,假设房子的形状为 N x M 的矩形,每个地板砖的大小为 1 x 1,且只有黑白两种颜色,这家人很奇
2014-03-13 09:05:48 891
原创 POJ 3254 Corn Fields(简单的状态压缩dp)
这是第一次写状态压缩。题目描述:给你n*m的一个草地,放牛。牛不能相邻。并且值为0的地方不能放牛。问一共有多少种方案,可以放牛。不放也算一种。Corn FieldsTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 6143 Accepted: 3259
2014-03-13 07:53:48 839
原创 ZOJ 3605 Find the Marble(三维dp)
n个杯子,有一个石头放在第s号杯子里,然后交换这些杯子m次,只能记住k次,每次交换被忘掉的概率相同,那个猜的人最可能猜哪号杯里有石头。dp[i][j][t] 代表从第i个交换中有j次没看到。然后这是第t个情况为dp[i][j][t]。选择一个最大的dp[m][m-k][ti]输出ti。状态转移: if(能看见) if(t==x) dp[i][j][t] += dp[i-1][j][y] els
2014-03-10 13:13:50 843
原创 HDU 1466 计算直线的交点数(简单dp)
解体思路:设a1+a2+......+an = n;代表每组平行的直线有ai个。所以一共有交点s=(a1*(n-a1)+a2*(n-a2)+....+an*(n-an))/2。化简的到2*s = (a1n+..+an*n)-(a1^2+a2^2+...an^2) = (n*n)-(a1^2+a2^2+...an^2)。所以枚举第i条直线中有多少个ai的和。if(dp[i-k][j-k*k] =
2014-03-08 09:46:26 875
原创 ZOJ 3715 Kindergarten Election(枚举+贪心)
今天练习赛的一个题目,做的时候错了N边,sad啊、、贪心的时候贪错了啊。我是这么贪的,把得到的选票进行排序。然后判断第一个人的的票的多少与最多的的票的差距。然后从所有的里面选择新的糖果数少的,加入。这样贪心的话,会出现错误。比如说第一个比最大的一个少1票。如果从最大的里面拿出一票给第一个的值小于从其他的地方拿来两个的值小的话。这么贪心就出现错误了啊。正确的方法是:由于这里的n比较小,我们只要枚
2014-03-06 20:14:57 1130
原创 HDU 1428 漫步校园(SPFA+记忆化搜索)
先用spfa求出每个点到达终点的最小距离,然后再记忆化搜索终点到原点最多的路径。漫步校园Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2615 Accepted Submission(s): 772
2014-03-05 20:55:39 799
原创 HDU 1227 Fast Food(简单二维dp)
题意是在n个餐厅之间选择k个地方修建仓库使得,各个餐厅到仓库的距离和最小。dp[i][j] = min{dp[i][j], dp[i-1][m]+w[m+1][j]}。i表示仓库数目,j表示第几个餐厅。状态转移方程式的意思是:到达j的时候区间(i,j)上所拥有的最小的值。到达j的时候可以选择j位置上不修建仓库dp[i][j] = dp[i][j]。或者选择修仓库那么之前已经有i-1个仓库修建好
2014-03-04 17:41:22 1009
原创 POJ 2891 Strange Way to Express Integers(扩展GCD)
题意就是给你k组数,每组是m,a.有一个数字x对每组的m取余得到的余数为a。让你求出满足条件的最小的x。分析假设只有一组数据那最小的就是余数a。如果有两组的话:x%m1 = a1,x%m2 = a2. m1*y+a1 = m2*z+a2。化简得到:m1*y-m2*z=a2-a1.通过扩展GCD可以得到一组解y,z。所以可以得到一个x = y*m1+a1。满足条件。如果x=(y*m1+a1)+
2014-03-04 16:00:02 718
转载 学习笔记----扩展欧几里德
原文连接:http://www.cnblogs.com/ka200812/archive/2011/09/02/2164404.html我个人觉得第一次看到这个程序你会有以上两个不明白的地方(见注释),下面我分别解释不明处1:由扩展欧几里得定理:ax+by==gcd(a,b)---式1,而此时b==0,也就是说gcd(a,0)==a。原式变为ax+by==a --> x==1,y=
2014-03-03 19:54:02 778
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人