上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
摘要: 贪心 把线段们按终止点b的先后排序,b小的在前面,b一样随便 然后设r为当前最大的b 每加入一条新的线段i,判断是否重合(i.a>=r) 如果重合就舍弃i,否则把i加入,ans++,更新r:r=i.b 证明: 加入有这样几条线段: 1: 2: 3: 4: 请问1、2、3是重合的,你选那条? 一定是选 阅读全文
posted @ 2016-05-14 10:23 FuTaimeng 阅读(290) 评论(0) 推荐(0)
摘要: 1. m进制转换10进制 把m进制的第k位分别乘以m^(k-1),求和即可 如二进制1011转换成10进制: ans = 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 = 8+0+2+1 = 11 如十六进制D6B转换为10进制: ans = D*16^2 + 6*16^1 + B*1 阅读全文
posted @ 2016-05-11 22:38 FuTaimeng 阅读(152) 评论(0) 推荐(0)
摘要: 首先,对图进行一次Floyd(g[][]是图) 1.dfs:(u是当前在的节点,d是已经走的路程) 起初我认为n<=15是dfs完全可以解决的,但是忽略了一个问题:每对城市之间都可以互相到达,边特别多,结果TLE ^_^; 正解是压缩状态的dp: dp[u][s]表示状态:走到u这个点并且前面已经走 阅读全文
posted @ 2016-05-08 18:42 FuTaimeng 阅读(226) 评论(0) 推荐(0)
摘要: 划分dp 注意环形,需要把原数复制成两份再进行,详见: http://www.cnblogs.com/FuTaimeng/p/5427426.html 初始条件:dp[i][i]=0 转移方程:dp[i][j] = max/min{ dp[i][u]+dp[u+1][j]+sum(i,j) } 答案 阅读全文
posted @ 2016-05-06 20:28 FuTaimeng 阅读(195) 评论(0) 推荐(0)
摘要: 数字三角形的新变种 设要经过的点为x y,那么dp[x][k] = -Max k=1~x and k!=y 其他一样:dp[i][j] = max(dp[i-1][j],dp[i-1[j-1])+a[i][j] 代码如下: 阅读全文
posted @ 2016-05-06 19:36 FuTaimeng 阅读(386) 评论(0) 推荐(0)
摘要: 第一次走用dfs枚举每种情况,第二次走用dp求剩下的最大值 设一个点集q用来保存有价值的点,排序,在最后加一个终点:x=m+1,y=m+1,v=0 //m是矩阵长宽 因为v=0的点是没有意义的,所以忽略它们,用q进行dfs 设当前点在q中的下标为p,已经积累的分数为score: 当p=n+1时,到了 阅读全文
posted @ 2016-05-05 22:27 FuTaimeng 阅读(255) 评论(0) 推荐(0)
摘要: dfs+dp dfs枚举每种情况,每层递归确定第k个数i:i = a[k-1]+1 to a[k-1]*n+1 当枚举完一个序列时,使用check()测试它能达到的max 使用dp。设dp[i]为凑成面值为i的最少张数 注意dp[i]一开始要设成最大值 代码如下: By the way:a[1]一定 阅读全文
posted @ 2016-05-03 21:54 FuTaimeng 阅读(375) 评论(0) 推荐(0)
摘要: 首先介绍一下LIS和LCS的DP解法O(N^2) LCS:两个有序序列a和b,求他们公共子序列的最大长度 我们定义一个数组DP[i][j],表示的是a的前i项和b的前j项的最大公共子序列的长度,那么由于是用迭代法,所以计算DP[i][j]前,DP[i-1][j]和DP[i][j-1]就都已经计算出来 阅读全文
posted @ 2016-04-29 14:48 FuTaimeng 阅读(303) 评论(0) 推荐(0)
摘要: 一个划分dp,不过由于划分个数任意,仅用一维数组就可以 设dp[i]表示前i个装箱(任意个箱子)的费用最小值 dp[i]=min(dp[u]+cost(u+1,i)) 但是n<=50000,n方的复杂度显然不能接受 设choice[i]数组存下对于每个i值,枚举所得的使f[i]最大的那个u值 打表, 阅读全文
posted @ 2016-04-28 22:11 FuTaimeng 阅读(142) 评论(0) 推荐(0)
摘要: 贪心算法,从后往前 来自codevs的题解: 设立一个大顶堆,堆中的元素是当前时间下能打的地鼠的分值把地鼠们按照消失的时间由大到小排序,循环时间temp=最后消失的地鼠的消失时间 to 1把所有消失时间等于temp的地鼠放入堆(表示可以打它们了)然后取出最大的(堆顶)打掉,累加得分即可 代码如下: 阅读全文
posted @ 2016-04-28 13:07 FuTaimeng 阅读(298) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页