随笔分类 -  递归调用

摘要:/*循环日程表问题(递归分治)*/#include #include#include#include#include#include#include#includeusing namespace std;#define maxn 2600//int f=0;int a[maxn][maxn];void cir(int i,int j,int n){ int p,q; if(n==2)//递归出口 { a[i][n]=j; a[i][n-1]=i; a[j][n]=i; a[j][n-1]=j; // pri... 阅读全文
posted @ 2013-07-27 19:52 myth_HG 阅读(467) 评论(0) 推荐(0) 编辑
摘要:/* Monthly ExpenseTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 10757 Accepted: 4390DescriptionFarmer John is an astounding accounting wizard and has realized he might run out of money to run the farm. He has already calculated and recorded the exact amount of money (1 ≤ mo... 阅读全文
posted @ 2013-07-25 15:29 myth_HG 阅读(314) 评论(0) 推荐(0) 编辑
摘要:/*困难串(无两个相邻的重复字串)*/#include #include#include#include#include#include#include#includeusing namespace std;#define maxn 1000int cnt,n,L;int S[maxn];int dfs(int cur)//返回0表示已经得到解,无须继续搜索{ int i,ok,j,k,equals; if(cnt++==n)//输出方案 { for(i=0; i<cur; i++) printf("%c",'A'+S[i]); ... 阅读全文
posted @ 2013-07-22 16:25 myth_HG 阅读(428) 评论(0) 推荐(0) 编辑
摘要:/*n皇后问题*/#include #include#include#include#include#include#include#includeusing namespace std;#define maxn 1000int n,tot,col[maxn],vis[3][maxn];void search(int cur){ int i,j; if(cur==n) { tot++; printf("----解%d:----\n",tot); for(i=0; i<n; i++) { printf... 阅读全文
posted @ 2013-07-22 10:45 myth_HG 阅读(265) 评论(0) 推荐(0) 编辑
摘要:/*子集生成的各种实现*/#include #include#include#include#include#include#include#includeusing namespace std;#define maxn 26000int A[maxn];int B[maxn];int n,sum;void print_subset(int n,int *A, int cur)//用增量法实现子集生成{ int i; for(i=0; i < cur ; i++) { printf("%d ",A[i]);//打印当前集合 if(i==0) ... 阅读全文
posted @ 2013-07-21 18:47 myth_HG 阅读(354) 评论(0) 推荐(0) 编辑
摘要:/*枚举生成可重集排列*/#include #include#include#include#include#include#include#includeusing namespace std;#define maxn 2600000int A[maxn];int P[maxn];int sum;void print_p(int n,int *A,int *P,int cur){ int i,j; if(cur==n) { for(i=0; i#include#include#include#include#include#include#includeusi... 阅读全文
posted @ 2013-07-19 17:31 myth_HG 阅读(275) 评论(0) 推荐(0) 编辑
摘要:/*枚举生成1~n的排列*/#include #include#include#include#include#include#include#includeusing namespace std;#define maxn 2600000int A[maxn];void print_p(int n,int *A,int cur){ int i,j; if(cur==n) { for(i=0;i<n;i++) printf("%d ",A[i]); printf("\n"); } else { for(i... 阅读全文
posted @ 2013-07-19 16:33 myth_HG 阅读(244) 评论(0) 推荐(0) 编辑
摘要:/*给出n个位置,每个位置可以填充0和1,但有条件限制:1不能相邻。求满足条件的序列的所有可能情况。*/#include<iostream>using namespace std;__int64 a[47][2];int main(){ int T,n,i,s; a[1][0]=1;a[1][1]=1; /*按上面的递推公式求出n从1到46的结果存储在数组a[47][2]中。*/ for(i=2;i<=46;i++) { a[i][0] = a[i-1][0]+a[i-1][1]; a[i][1]=a[i-1][0]; } ... 阅读全文
posted @ 2012-10-31 19:12 myth_HG 阅读(199) 评论(0) 推荐(0) 编辑
摘要:母牛的故事Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24700 Accepted Submission(s): 11997Problem Description有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛? Input输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。n=0表示输入数据的结束 阅读全文
posted @ 2012-08-01 17:08 myth_HG 阅读(218) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示