• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
GarySE
博客园 | | 新随笔 | 新文章 | 联系 | 订阅 订阅 | 管理

2013年8月16日

排列、组合问题(递归)
摘要: 这里主要介绍字符串排列组合问题,高中数学常见的题目,不用详细介绍,看例子就可以解决问题"1212" 全排列结果为1212,1221,1122,2112,2121,2211组合结果是 1,2,12我所理解的排列组合结果是 1,2,12,21解决方案:主要是利用递归思想排列问题:求n个字符排列问题简化求n-1个字符排列问题,逐层递归到1个字符。有n个字符的序列第一个字符与后面每一个前面没有重复的字符交换,避免了重复序列,然后求n-1个字符全排列 f(char *s, int index,int len)index为第一个下标,len是s总长度组合问题:先按照递增排序,然后挑出无 阅读全文
posted @ 2013-08-16 21:01 GarySE 阅读(739) 评论(0) 推荐(0)
 
动态规划--背包问题(01背包、完全背包、多重背包)
摘要: 01背包(ZeroOnePack):有N件物品和一个容量为V的背包。(每种物品均只有一件)第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。完全背包(CompletePack):有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。多重背包(MultiplePack):有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大 阅读全文
posted @ 2013-08-16 00:44 GarySE 阅读(569) 评论(0) 推荐(0)
 
动态规划---最长公共子序列 hdu1159
摘要: hdu1159 题目要求两个字符串最长公共子序列,状态转换方程 f[i][j]=f[i-1][j-1]+1; a[i]=b[j]时 f[i][j]=MAX{f[i-1][j],f[i][j-1]} a[i]!=b[j]时f[i][j]记录a字符串 i 前子串 与 b字符串 j 前子串最长公共子序列 初始化后,自底向上,逐步求解 动态规划的思想没有搞清楚,递归超时。。犯了很低级的错误动态规划尽可能地减少重复运算,记忆化搜索很关键正确代码:#include#include#define MAX(a,b) ((a)>(b)?(a):(b))using namespace std;ch... 阅读全文
posted @ 2013-08-16 00:18 GarySE 阅读(388) 评论(0) 推荐(0)
 
 

公告


博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3