首页 > 学院 > 开发设计 > 正文

526. Beautiful Arrangement

2019-11-06 07:32:25
字体:
来源:转载
供稿:网友

题目链接: https://leetcode.com/PRoblems/beautiful-arrangement/?tab=Description

这里写图片描述

代码如下:

#include <iostream>#include<cstdio>#include<cstring>using namespace std;int sum;int aa[20];int vis[20];void search(int cur,int n){ if(cur==n+1) { sum++; } else { for(int i=1; i<=n; i++) { int ok=1; aa[cur]=i; if(aa[cur]%cur!=0&&cur%aa[cur]!=0) { continue; } for(int j=1;j<cur;j++) { if(aa[j]==aa[cur]) { ok=0; break; } } if(ok) search(cur+1,n); } }}int main(){ int n; while(scanf("%d",&n)==1) { memset(vis,0,sizeof(vis)); sum=0; search(1,n); printf("%d/n",sum); }}

search函数二:

void search(int cur,int n){ if(cur==n+1) { sum++; } else { for(int i=1; i<=n; i++) { int ok=1; if(!vis[i]&&(i%cur==0||cur%i==0)) { aa[cur]=i; vis[i]=1; search(cur+1,n); vis[i]=0;///定义的全局数组,需要进行回溯 } } }}
上一篇:UVA 1595 Symmetry(对称轴)

下一篇:堆排序

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表