摘自CSDN论坛的优秀算法
qq120848369
这个作者很懒,什么都没留下…
展开
-
数字序列加入+,*运算符后取得最大值问题; 动态规划;打破传统从决策入手思想;找出问题的特有性质;从例子入手找特点;
假设有一个数组A,里面的元素都大于1的正整数,只采用加号或乘号,不改变数组元素的位置,如何使最后结果最大?比如:A={2,1,1,1,1,2}那么就用加号结果为8,B={3,1,3}那么就用乘号结果为9。 一开始我想从决策入手,即对每个位置逐次加上+或者*,然后利用回溯方面的思想或者动态规划来做,可是发现一旦遇到*,或者连续*,问题显得很复杂,无法实施。 这个题的特点就是发现特有原创 2010-04-06 11:05:00 · 1925 阅读 · 0 评论 -
A*启发搜索+二进制压缩存储; 代码效率不错,对二进制的应用理解越来越深刻了;
电子老鼠闯迷宫时限:1000ms 内存限制:10000K 总时限:3000ms描述:有一只电子老鼠被困在如下图所示的迷宫中。这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路。电子老鼠可以在路上向上、下、左、右行走,每一步走一个格子。现给定一个起点S和一个终点T,求出电子老鼠最少要几步从起点走到终点。输入:本题包含一个测例。在测例的第一行有四个由空格分隔的整原创 2010-05-17 19:44:00 · 1199 阅读 · 0 评论 -
筛法求素数;终于找到一篇一看即会的BLOG了;
#include #include using namespace std;#define KEPT true#define DELETED falseint main(){ //筛法求素数,输入范围: n int range; cin>>range; //挑选小于n的奇数记录入数组,因为偶数一定不是素数,下标cnt的元素对应奇数2*cnt+1,并初原创 2010-04-30 12:39:00 · 2272 阅读 · 3 评论 -
动态规划小题目;
<br />#include <stdio.h>const int M = 1000;int input[M][M];int row[M];int col[M];int m,n;void dpCol(int r){ int c=input[r][n-1],d=0; int i; for(i=n-2;i>=0;--i) { int a=input[r][i]+d,b=c; d=c; c = a > b ? a:b; } ro原创 2010-06-24 22:39:00 · 1172 阅读 · 0 评论 -
线段树;贴海报~
#include using namespace std;#define LEN 20000#define NO_POSTER -2 //无海报#define MIX_POSTER -1 //混合(间断)海报#define NO_FLAG 0//线段树的静态表示,左边界,右边界,标志域,结点对应海报编号,海报能否看见的标记数组,结点数量,最终能看见的海报数量int原创 2010-04-27 13:41:00 · 1300 阅读 · 0 评论 -
数码城竞选海报问题;空间换时间;类似于哈希表的思想一样;过一阵贴上另一种的算法;
#include using namespace std;int wall[10000001]={0}; //开个10000001的数组标记每个byte贴的哪一张海报,只用1...10000000int *flag;//动态开个海报数量的数组用来标记哪张海报没被覆盖int n; //n张海报int sum=0;int main(){ cin>>n;原创 2010-04-22 15:02:00 · 2365 阅读 · 0 评论 -
枚举法;STL;9位数分组1:2:3;98年ACM;
#include #include #include using namespace std;//1,2.....9 一共9个数分成3组, 形成3个3位数,比值为1:2:3 列出所有情况int main(){ char s[20]; char ch; string str; int j; for(int i=123;i<=321;++i)原创 2010-04-22 10:04:00 · 1245 阅读 · 0 评论 -
枚举算法;100块钱买100只鸡;重点掌握枚举的优化与约束;
#include using namespace std;//100块,买100只鸡,大:3块1只,小:1块3只,中2块一只int main(){ for(int max=0;max<=100;++max) { for(int min=0;min<=100;++min) { if((100-max-min)>=0&&(100-max-min)%3==原创 2010-04-21 19:07:00 · 2583 阅读 · 1 评论 -
ACM;邮局问题;动态规划;O(n3); 四边形法则可以优化,暂时没研究,等待添加;
#include using namespace std;#define MAX 99999class PostStation{private: int **least;//least[i][j]表示i....n个村庄用j个邮局覆盖的最小距离和 int **cost;//cost[i][j]表示用1个邮局覆盖i....j的最小距离和,邮局位置只有取i到j的中点才原创 2010-04-07 16:22:00 · 1684 阅读 · 0 评论 -
ACM;修路;3星;
#include using namespace std;typedef struct{ int start; int end;}road;class BuildPath{private: int *set; bool *flag; road *path; int numOfVex; int numOfPath; int co原创 2010-04-06 22:12:00 · 851 阅读 · 1 评论 -
Loli们的儿童节★★★;用STL做的;Primer C++读完之后的实战;
#include #include #include using namespace std;int main(){ vector candy; string command; int n,m; void respond(char,int,int,int,vector &); cin>>n>>m; while(n!=0&&m!=0) {原创 2010-04-18 21:10:00 · 787 阅读 · 0 评论 -
回文数问题;动态规划;
问题描述所谓回文,就是像"acbca"或者"12966921"这样的字符串,左右对称。现在的问题是,假如给你"abaqbaa"这样的字符串,你可以对它添加一些字符,得到"aabaqqabaa"变成回文,一共加了3个字符。问对于随意给的一字字符串,你最少要加多少个字符才能使它变成回文?对于刚刚的"abaqbaa",其实可以只加2个字符变成"aabaqabaa"就成为回文了,2就是这个字符串的最少添加原创 2010-04-18 16:37:00 · 1712 阅读 · 1 评论 -
蛇形矩阵的打印;开拓思路与设计方法的面试题;编程技巧比较巧妙;转自CSDN论坛;
public class LearningJava { public static void main(String[] args) { final int N=5; //Right,Down,Left,Up int[][] direction={{0,1},{1,0},{0,-1},{-1,0}};原创 2010-04-02 20:06:00 · 2433 阅读 · 0 评论 -
资源URL。
http://www.cnblogs.com/leoo2sk/archive/2011/07/10/mysql-index.htmlhttp://tech.idv2.com/2008/07/31/memcached-005/http://www.mysqlops.com/2011/09/10/innodb-primary.htmlhttp://blog.csdn.net/joylnwa原创 2011-11-01 23:36:36 · 2567 阅读 · 0 评论