擅长排列的小明 II
2015-04-23 15:25
288 查看
擅长排列的小明 II
时间限制:1000 ms | 内存限制:65535 KB难度:3描述小明十分聪明,而且十分擅长排列计算。有一天小明心血来潮想考考你,他给了你一个正整数n,序列1,2,3,4,5......n满足以下情况的排列:1、第一个数必须是12、相邻两个数之差不大于2你的任务是给出排列的种数。输入多组数据。每组数据中输入一个正整数n(n<=55).输出输出种数。样例输入4样例输出
4
打表找规律:
#include<iostream>#include <cstring>#include <cmath>using namespace std;int n;int f[60],a[60],sum;void dfs(int cnt){if (cnt+1==n){/* for (int i=0;i<n;++i){cout << a[i] ;}cout << endl;*/sum++;return;}for (int i=2;i<=n;++i){if (!f[i]&&abs(a[cnt]-i)<=2){a[++cnt]=i;f[i]=1;dfs(cnt);f[i]=0;cnt--;}}}int main(){for(int i=1;i<=55;++i){n=i;memset(f,0,sizeof(f));sum=0;a[0]=1;dfs(0);cout << sum << '\t';if (n%5==0){cout << endl;}}return 0;}AC代码:
#include <stdio.h>int main(){int i,f[60],n;f[1]=f[2]=1; f[3]=2;for(i=4;i<56;i++)f[i]=f[i-1]+f[i-3]+1;while(scanf("%d",&n)!=EOF) printf("%d\n",f);return 0;}
相关文章推荐
- nyoj 469 擅长排列的小明 II
- NYOJ 469 擅长排列的小明 II
- 擅长排列的小明 II
- nyoj 擅长排列的小明 II
- NYOJ_469_擅长排列的小明 II
- 擅长排列的小明 II(nyoj 469)
- NYOJ 469 擅长排列的小明 II (dp问题)
- nyoj-469-擅长排列的小明II
- NYOJ - 擅长排列的小明 II
- NYOJ 469 擅长排列的小明 II
- 擅长排列的小明 II
- 擅长排列的小明 II
- 擅长排列的小明 II 递推公式
- NYOJ 题目469擅长排列的小明 II(递推)
- 擅长排列的小明II
- 擅长排列的小明 II
- 擅长排列的小明 II
- nyoj——469 擅长排列的小明 II
- NYOJ 469 擅长排列的小明 II(基础dp)
- 擅长排列的小明 II