标签:wap ++i stdout i+1 stdio.h pen highlight algorithm nbsp
最大子序列和
dp转移方程 sum[i] = max{sum[i-1]+a[i],a[i]}
int MaxSum(int n) { int sum=0,tmp=0; for(int i=0;i<n;i++) { if(tmp>0) tmp+=a[i]; else tmp=a[i]; if(tmp>sum) sum=tmp; } return sum; }
递归求全排列
先处理第一层,比如123 第一位置分别和第一个位置、第二个位置、第三个位置交换 ->{123 213 321}
再递归处理第二层 比如 123 第二位置分别和第二位置、第三位置交换 ->{ 123 132}
再递归处理第三层 比如 123 第三位置和第三位置交换 ->{123}
然后就是回溯分别处理
#include <stdio.h> #include <algorithm> using namespace std; int ans = 0; void permutation(int k, int n, int a[]) { if(k == n-1){ ans+=1; for(int i = 0; i < n; ++i) printf("%d ", a[i]); puts(""); }else{ for(int i = k; i < n; ++i){ swap(a[k],a[i]); permutation(k+1, n, a); swap(a[k],a[i]); } } } int main() { freopen("1.txt","w",stdout); int a[100]; int n = 3; for(int i = 0; i < n; ++i) a[i] = i+1; permutation(0, n, a); printf("%d\n",ans); return 0; }
多做点记录,只有好处,没坏处。认真一点,进个大公司!
标签:wap ++i stdout i+1 stdio.h pen highlight algorithm nbsp
原文地址:http://www.cnblogs.com/ya-cpp/p/7622997.html