【题意】:给出一个数列,可以进行的操作为最多能取K个互相不重叠的区间并将其反转,问经过操作以后,用冒号排序法排序数组所能达到的数的交换次数的最小值。例如:一个数列{7,2,2,13,5,5,2}最多可以取2个互相不重叠的区间,那么有[0,2],[3,6],反转后的数组为{2,2,7,2,5,5,13...
分类:
其他好文 时间:
2014-07-14 09:01:31
阅读次数:
223
原题: ZOJ 3684http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3684题意: 给你一棵树,树的根是树的中心(到其他点的最远距离最小)。现在你要破坏所有叶子节点到根节点的连通,每条边破坏都需要一定能量。你有一个能量为p...
分类:
其他好文 时间:
2014-07-13 23:52:11
阅读次数:
367
dp[i][j]表示从i,j开始的最长路径,记忆化搜索一下。#include #include #include using namespace std;#define maxn 120int dp[maxn][maxn],map[maxn][maxn];int r,c;int dfs(int i,...
分类:
其他好文 时间:
2014-07-13 23:46:25
阅读次数:
259
多重背包问题。
我的背包训练第三题,多重背包。似乎有点理解多重背包了。
我对背包九讲多重背包的理解:
当某件物品 体积*数量 超过背包的容积的时候,这就做完全背包(相当于无限取)
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
题意:求0-B的满足
思路:数位DP,记忆化搜索
#include
#include
#include
#include
using namespace std;
int A, B;
int dp[20][200000];
int bit[20];
int dfs(int cur, int num, int flag) {
if (cur == -1)
return num ...
分类:
其他好文 时间:
2014-07-13 00:02:35
阅读次数:
338
一天查看数据库长会话,发现1个sql跑得很慢,1个多小时不出结果,花了点时间把它给优化了。
优化前:
SELECT 20131023,
"A2"."ORG_ID",
COUNT(DISTINCT NLSSORT(CASE "A2"."RES_TYPE"
WHEN 'DP' THEN
...
分类:
其他好文 时间:
2014-07-12 23:48:46
阅读次数:
217
题目来源:Light OJ 1406 Assassin`s Creed
题意:有向图 派出最少的人经过所有的城市 并且每个人不能走别人走过的地方
思路:最少的的人可以走完全图 明显是最小路径覆盖问题 这里可能有环 所以要缩点 但是看样例又发现 一个强连通分量可能要拆分 n最大才15 所以就状态压缩
将全图分成一个个子状态 每个子状态缩点 求最小路径覆盖 这样就解决了一个强连通分量拆分的问题...
分类:
其他好文 时间:
2014-07-12 20:42:34
阅读次数:
265
poj1163The Triangle(简单DP)...
分类:
其他好文 时间:
2014-07-12 19:45:10
阅读次数:
168
题意:
已知每个点的加油站的油价单价(即点权),每条路的长度(边权)。
有q个询问,每个询问包括起点s、终点e和油箱容量。
问从起点走到终点的最小花费。如果不可达输出impossible,否则输出最小的旅途费用。
算法:
其实要分析状态= =感觉就像是dp。
最直接的想法是 每到一个点都加上要走到下一个点所需要的油量。但是走的路不同,到底怎么处理加多少的问题呢?
因...
分类:
其他好文 时间:
2014-07-12 18:19:04
阅读次数:
198