贪心算法也是用来求解最优化问题的,相比较动态规划很多问题使用贪心算法更为简单和高效,但是并不是所有的最优化问题都可以使用贪心算法来解决。贪心算法就是在每个决策点都做出在当时看来最佳的选择。贪心算法的设计步骤:1、将最优化问题转换为:对其做出一次选择之后,只剩下一个问题需要求解的形式(动态规划会留下多...
分类:
编程语言 时间:
2015-04-10 11:04:49
阅读次数:
147
题目大意:一个N个点的序列,要将他们全部覆盖,求总最少费用;费用计算:c+(x-y)2分析:斜率优化DP我们假设k=sum[i],那么j点此时是比i点要更优,但是同时g[j,k]>g[i,j]>sum[i]。这说明还有k点会比j点更优,同样排除j点。排除多余的点,这便是一种优化!接下来看看如何找最优...
分类:
其他好文 时间:
2015-04-09 23:14:33
阅读次数:
162
感觉这道dp题还是有点技巧的,此题设置了两个数组:open[]和close[],分别用来记录capslock一直开启状态和一直关闭状态下的最少输入次数。此时只要判断字母的大小写,选用最优子结构即可。状态转移方程为:str[i]是小写字母: open[i]=min(open[i-1]+2,close[...
分类:
其他好文 时间:
2015-04-09 21:49:13
阅读次数:
105
分析可知,最优的x应该在区间中的数排列后最中间的地方选择。由于区间的数个数有奇偶之分,于是当奇数个时,就是中位数了。偶数个时,就是排列后中间两数区间的任意一个。可以应用划分树求得前半部分,树状数组统计。#include #include #include #include #define LL __...
分类:
其他好文 时间:
2015-04-09 21:46:50
阅读次数:
140
简单的dp,最优子结构是dp[i],即从0~i来看,是的dp[i]最大,然后找到最大中的最大就可以了,转移方程是:dp[i]=max{dp[i],dp[j]+value[i]},注意这里有两个判断条件。#include"iostream"#include"stdio.h"#include"strin...
分类:
其他好文 时间:
2015-04-09 19:09:59
阅读次数:
126
.net3.5中新添加给C#的LINQ查询,提供了直观便捷的数据查询方式。并且支持多种数据源的查询。 本章介绍标准的LINQ操作,如何用最优的方式使用LINQ 以及 LINQ to XML.
分类:
Web程序 时间:
2015-04-09 16:49:21
阅读次数:
124
题目大意给你一张nn*mm矩形地图。上面有些点上有敌营。给你起点和终点, 你找出一条最优路径。满足最优路径上的点离敌营的最近最短距离是所有路径最短的。若有多条找路径最短的一条。分析通过二分来确定路径离敌营最短距离。然后bfs来验证。 1 #include 2 #include 3 #inclu...
分类:
其他好文 时间:
2015-04-08 14:47:30
阅读次数:
125
作者:海子 出处:http://www.cnblogs.com/dolphin0520/Dijkstra算法(单源最短路径) 单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。在弄清楚如何求算单源最短路径问题之前,必须弄清楚最短路径的最优子结构性质。一.最短路径的最优子结构性质 ...
分类:
编程语言 时间:
2015-04-08 12:41:36
阅读次数:
175
有次去面试,面试官突然问我这个问题,当时我只知道怎么写最优化,但是具体不知道为什么那样写,身价立马下降哦1. 以下开发习惯,你怎么看? for(int i=0;i<2;i++){ Person person = new Person(); }如下图:循环一次,会在堆内存中开辟一个内存空间,...
分类:
编程语言 时间:
2015-04-08 12:23:40
阅读次数:
215
题目大意:
二个人玩取石子游戏,一共有三堆石子,分别为m、n、p个。两个人轮流取石子,每次可以任选一堆石子,
然后取斐波那契数列中的f(n)个。每次都使用最优策略,先取完的人获胜。问:先手的人会赢还厚后手的人会
赢?
思路:
这是一道博弈题。
Fibo[] = {1,2,3,5,8,13,21,…}。根据题意每次只能取fibo[i]个。则:
1.如果只有1堆m个,而m是某个fibo[i],则m是必胜点。m = 1,2,3,5,8,13,21,…是必胜点。
可以看出来0,4就是必败点。如果从m中取走k个(k...
分类:
其他好文 时间:
2015-04-08 11:04:06
阅读次数:
204