算法训练
qq_36086886
这个作者很懒,什么都没留下…
展开
-
poj2503 在线翻译
// poj2503 【在线翻译】#include <iostream>#include <algorithm>#include <ctime>#include <string>#include <cmath>#include <cstdlib>#include <vector>#include原创 2018-04-19 13:58:41 · 413 阅读 · 0 评论 -
动态规划-0-1背包
/*动态规划的题目:给定不同会议的时间及其价值(会议时间会有重叠,已按结束时间升序排序),选定总价值之和最高的会议,且同一时间只能进行一场会议;递归实现*/#include <iostream>#include <algorithm>using namespace std;int arr[]={3,34,4,12,5,2};bool rec_subset(in...原创 2018-04-19 14:12:09 · 122 阅读 · 0 评论 -
动态规划-数字三角形
//数字三角形,使用了动态规划//函数solve是《算法入门经典》里面的;其余都是自己写的。/* 提示 9-3 :可以用递推法计算状态转移方程。地推的关键是边界和计算顺序。 在多数情况下,递推法的时间复杂度是:“状态总数*每个状态的决策个数*决策时间。“ “如果不同状态的决策个数不同,需具体问题具体分析。”*/#include <iostream>#include <algori...原创 2018-04-19 14:11:03 · 150 阅读 · 0 评论 -
动态规划-数字三角形
//数字三角形,动态规划(没用递归)/* 从朴素递归到各种优化,以及动态规划具体讲解blog: https://www.cnblogs.com/LYLtim/p/4286150.html 本题后来由我自己重新做了一遍,并且AC了。 与原答案不同也只是在第二步的双重for循环中。 后来发现,这是《算法入门经典》里面的第二种方法——递推计算,时间复杂度和记忆化搜索一样的...原创 2018-04-19 14:10:12 · 116 阅读 · 0 评论 -
动态规划-最长上升子序列
//最长上升子序列#include <iostream>#include <algorithm>#include <cstring>#include <cmath>#include <vector>#include <queue>#include <map>#include <set原创 2018-04-19 14:08:47 · 118 阅读 · 0 评论 -
动态规划-求最长公共子序列
//最长公共子序列#include <iostream>#include <algorithm>#include <ctime>#include <string>#include <cmath>#include <cstdlib>#include <vector>#include <原创 2018-04-19 14:05:57 · 126 阅读 · 0 评论 -
动态规划-找出最大和
// 要求,不能同时选择相邻的两个数;找出最大的总和;#include <iostream>#include <algorithm>using namespace std;int arr[]={1,2,4,1,7,8,3};int rec_opt(int i){ if(i == 0) return arr[0]; else if(i ==...原创 2018-04-19 14:04:54 · 136 阅读 · 0 评论 -
动态规划-找出最大和
//不能选择相邻的两个数;找出最大和;递推完成//用数组保存起来;#include <iostream>#include <algorithm>using namespace std;int arr[]={1,2,4,1,7,8,3};int rec_opt(int n){ int opt[sizeof(arr)+20]; memset(...原创 2018-04-19 14:03:51 · 239 阅读 · 0 评论 -
0-1背包
// 0-1背包问题#include <iostream>#include <algorithm>#include <cstdio>#include <string>using namespace std;int N,M;struct Item{ int w,d;};Item items[3520];int f[130...原创 2018-04-19 14:02:28 · 89 阅读 · 0 评论 -
二进制转换为十进制
//用一行语句实现二进制转换为十进制#include <cstdio>#include <string>int main(){ char *p = "1010110001100"; int n =0; for(int i = 0; i<strlen(p); i++) { n = n*2 + (p[i]-'0')...原创 2018-04-19 14:01:21 · 255 阅读 · 0 评论