from time import timedef cost_time(func): def result(*arg,**args): begin=time() func(*arg,**args) print "cost time:",time()-be...
分类:
编程语言 时间:
2014-07-13 22:38:16
阅读次数:
328
多重背包问题。
我的背包训练第三题,多重背包。似乎有点理解多重背包了。
我对背包九讲多重背包的理解:
当某件物品 体积*数量 超过背包的容积的时候,这就做完全背包(相当于无限取)
void completepack(int h,int cost,int a)
{
for(int i=cost;i<=a;i++)
dp[i]=max(d...
分类:
其他好文 时间:
2014-07-13 00:09:57
阅读次数:
192
dp转移方程很容易想 dp[i][j] = min{dp[i - 1][k] + abs(pos[i][j] -pos[i - 1][j]) + cost[i][j]}
n行m列 每次转移扫描m次 共n*m*m 为O(10^7) 1500ms,可以暴力一试。姿势不对就会TLE
其实加上个内联函数求绝对值,同时赋值时候不使用min(a, b) 用G++交 就可以水过
正解是:因...
分类:
其他好文 时间:
2014-07-12 19:55:08
阅读次数:
421
查询占用cpu最高的20条sql语句,sql2008SELECT TOP 10 a.creation_time,total_worker_time/execution_count AS avg_cpu_cost, plan_handle,execution_count,(SELECT SUBSTRI...
分类:
数据库 时间:
2014-07-11 18:32:51
阅读次数:
271
d[i]=cost[i]-ans*dis[0][i]
据此二分。
但此题用Dinkelbach迭代更好
#include
#include
#include
#include
#include
using namespace std;
#define N 1010
double mp[N][N],c[N][N],x[N],y[N],z[N],e[N][N],d[N];
int vi...
分类:
其他好文 时间:
2014-07-10 21:48:32
阅读次数:
199
There are N gas stations along a circular route, where the amount of gas at station i is gas[i].
You have a car with an unlimited gas tank and it costs cost[i] of gas
to travel from station i to ...
分类:
其他好文 时间:
2014-07-10 20:59:16
阅读次数:
239
POJ 1160 Post Office (动态规划)
题目大意:
有n个村庄,m个邮局,每个村庄的位置坐标告诉你,现在要将m个邮局设立在这n个村庄里面,问你最小花费是多少?花费为每个村庄到最近的邮局的距离和。
解题思路:
dp[i][j] 记录 i个邮局 j个村庄的最小花费,cost[k+1][j],记录在k+1号村庄到 j 号村庄设立一个邮局的最小花费。
那么:dp[i][j]=min { dp[i][k]+cost[k+1][j] }
最后输出dp[m][n]即可。
但是在k+1号村庄到 j 号村...
分类:
其他好文 时间:
2014-07-10 17:28:24
阅读次数:
168
题目大意: 建造公路,将几个城市联系起来,给你每个城市之间公路建造的费用,让你找出将每个城市联系起来所使用最小的费用。然后输出建造公路中花费最多的那条公路的费用。解题思路: 根据测试数据建图,将各个城市的公路费用作为cost值,然后找出最小生成树,然后再找出花费最多的那条公路的费用即可。...
分类:
其他好文 时间:
2014-07-10 15:37:29
阅读次数:
145
题意:
给定一个序列,以最小代价将其变成单调不增或单调不减序列,这里的代价看题目公式。
思路:
很容易想到是DP。
1.
对前i个序列,构成的最优解其实就是与两个参数有关。一个是这个序列处理后的最大值mx,和这个序列处理的代价值cost。
显然最大值mx最小最好(这样第i+1个值可以不花代价直接接在其后面的可能性更大),cost最小也最好(题意要求),但是两者往往是鱼和熊掌。
用dp...
分类:
其他好文 时间:
2014-07-06 09:37:41
阅读次数:
350
算法介绍:
编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。
步骤详解:
我们算V1中的值:以红色的0所在的格子为例
根据步骤5:
如果 s[i] 等于 t[j],则编辑代价cost为 0;
如果 s[i] 不等于 t[j],则编辑代价cost为1。
和
步骤6:
设置单元v1[j]为下面的最小值之一:
a、紧邻该单元上方+1:v1[j-1] + ...
分类:
编程语言 时间:
2014-07-06 08:31:41
阅读次数:
337