作业:
已做:

#include <iostream>
using namespace std;
int n;
int a[100];
void func(int ,int);
int main(){cin>>n;func(0,n);return 0;
}
void func(int k,int m){if(k>m-1){for(int i=0;i<m;i++){cout<<a[i];}cout<<endl;return;}for(int i=1;i<=m;i++){a[k]=i;func(k+1,m);}
}

#include <iostream>
using namespace std;
int n;
int a[100];
bool b[100];
void func(int ,int);
int main(){cin>>n;func(0,n);return 0;
}
void func(int k,int m){if(k>m-1){for(int i=0;i<m;i++){cout<<a[i]<<' ';}cout<<endl;return;}for(int i=1;i<=m;i++){if(b[i]==0){b[i]=1;a[k]=i;func(k+1,m);b[i]=0;}}
}

#include <iostream>
#include <algorithm>
using namespace std;
int n;
int a[100];//xb
bool b[100];//bj
int c[100];//sz
void func(int ,int);
int main(){cin>>n;for(int i=0;i<n;i++)cin>>c[i];sort(c+0,c+n);func(0,n);return 0;
}
void func(int k,int m){if(k>m-1){for(int i=0;i<m;i++){cout<<c[a[i]]<<' ';}cout<<endl;return;}for(int i=0;i<m;i++){if(b[i]==0){b[i]=1;a[k]=i;func(k+1,m);b[i]=0;}}
}

#include <iostream>
using namespace std;
int n,r;
int a[100];
bool b[100];
void func(int ,int,int);
int main(){cin>>n>>r;func(0,n,r);return 0;
}
void func(int k,int m,int r){if(k>r-1){for(int i=0;i<r;i++){cout<<a[i]<<' ';}cout<<endl;return;}for(int i=1;i<=m;i++){if(b[i]==0){b[i]=1;a[k]=i;func(k+1,m,r);b[i]=0;}}
}

#include <iostream>
#include <algorithm>
using namespace std;
int n,l;
int a[100];//xb
bool b[100];//bj
char c[100];//sz
void func(int,int,int,int,int);
void pri(int);
int main() {cin>>l>>n;for(int i=0; i<n; i++)cin>>c[i];sort(c+0,c+n);func(0,n,l,0,0);return 0;
}
void func(int k,int m,int l,int cntf,int cnty) {if(k>l-1) {if(cntf>=2&&cnty>=1) {for(int i=0; i<l; i++) {cout<<c[a[i]];}cout<<endl;}return;}for(int i=0; i<m; i++) {if(b[i]==0&&(k==0?1:c[a[k-1]]<c[i])) {b[i]=1;if(c[i]=='a'||c[i]=='e'||c[i]=='i'||c[i]=='o'||c[i]=='u')cnty++;else cntf++;a[k]=i;func(k+1,m,l,cntf,cnty);b[i]=0;}}
}

#include <iostream>
using namespace std;
bool b[1010]={1};
int cnt=0;
int a[6];//max
int ai[6];//var
const int az[6]={1,2,3,5,10,20};
void func(int,int);
int main(){for(int i=0;i<6;i++){cin>>a[i];}func(0,6);cout<<"Total:"<<cnt;return 0;
}
void func(int k,int m){if(k>m-1){int sum=0;for(int i=0;i<6;i++)sum+=ai[i]*az[i];if(b[sum]==0){cnt++;b[sum]=1;}return;}for(int i=0;i<=a[k];i++){ai[k]=i;func(k+1,m);}
}

#include <iostream>
using namespace std;
int n;
int a[100];
bool b[100];
void func(int,int);
int main() {func(0,9);return 0;
}
void func(int k,int m) {if(k>m-1) {for(int i=0;i<3;i++){cout<<a[i];}cout<<' ';for(int i=3;i<6;i++){cout<<a[i];}cout<<' ';for(int i=6;i<9;i++){cout<<a[i];}cout<<endl;return;}for(int i=1; i<=m; i++) {bool flag=1;if(k==5) {int a1=0,a2=0;for(int j=0; j<2; j++) {a1=a1*10+a[j];a2=a2*10+a[j+3];}a1=a1*10+a[2];a2=a2*10+i;if(2*a1!=a2)flag=0;}if(k==8) {int a1=0,a2=0;for(int j=0; j<2; j++) {a1=a1*10+a[j];a2=a2*10+a[j+6];}a1=a1*10+a[2];a2=a2*10+i;if(3*a1!=a2)flag=0;}if(b[i]==0&&flag) {b[i]=1;a[k]=i;func(k+1,m);b[i]=0;}}
}

#include <iostream>
using namespace std;
int a[20];
int n;
void func(int,int);
bool zs(int);
int main(){cin>>n;func(0,n);return 0;
}
void func(int k,int m){if(k>m-1){for(int i=0;i<m;i++){cout<<a[i];}cout<<endl;return;}for(int i=1;i<=9;i++){int sum=0;for(int j=0;j<k;j++){sum=sum*10+a[j];}sum=sum*10+i;if(zs(sum)){a[k]=i;func(k+1,m);}}
}
bool zs(int a){if(a==1||a==4)return 0;if(a==2||a==3)return 1;for(int i=2;i*i<=a;i++)if(a%i==0)return 0;return 1;
}

#include <iostream>
using namespace std;
bool bj[1000]= {0};
int a[20];
int n,cnt=0;
void func(int,int);
bool zs(int);
int main() {cin>>n;func(0,n);cout<<"total:"<<cnt;return 0;
}
void func(int k,int m) {if(k>m-1) {cnt++;cout<<cnt<<':';for(int i=0; i<m; i++) {cout<<a[i]<<' ';}cout<<endl;return;}for(int i=1; i<=m; i++) {if(k==m-1) {if(zs(a[0]+i)&&zs(a[k-1]+i)&&bj[i]==0) {bj[i]=1;a[k]=i;func(k+1,m);bj[i]=0;}} else if(k==0) {bj[i]=1;a[k]=i;func(k+1,m);bj[i]=0;} else if(k>0&&k<m-1) {if(zs(a[k-1]+i)&&bj[i]==0) {bj[i]=1;a[k]=i;func(k+1,m);bj[i]=0;}}}
}
bool zs(int a) {if(a==1||a==4)return 0;if(a==2||a==3)return 1;for(int i=2; i*i<=a; i++)if(a%i==0)return 0;return 1;
}

#include <iostream>
using namespace std;
bool bj[1000]= {0};
int a[20];
int n,cnt=0;
void func(int,int);
bool zs(int);
int main() {cin>>n;if(n%2)return 0;func(0,n);return 0;
}
void func(int k,int m) {if(cnt>10)return;if(k>m-1) {cnt++;for(int i=0; i<m; i++) {cout<<a[i]<<' ';}cout<<endl;return;}if(k==0) {bj[1]=1;a[k]=1;func(k+1,m);bj[1]=0;}for(int i=1; i<=m; i++) {if(k==m-1) {if(zs(a[0]+i)&&zs(a[k-1]+i)&&bj[i]==0) {bj[i]=1;a[k]=i;func(k+1,m);bj[i]=0;}} else if(k>0&&k<m-1) {if(zs(a[k-1]+i)&&bj[i]==0) {bj[i]=1;a[k]=i;func(k+1,m);bj[i]=0;}}}
}
bool zs(int a) {if(a==1||a==4)return 0;if(a==2||a==3)return 1;for(int i=2; i*i<=a; i++)if(a%i==0)return 0;return 1;
}

#include <iostream>
#include <algorithm>
using namespace std;
struct word{char sta;char end;void chsta(char a){sta=a;}void chend(char a){end=a;}
};
word w[60];
int n,maxcnt=0;
int a[100];
bool b[100];
void func(int ,int);
bool tmp(word,word);
int main(){cin>>n;for(int i=0;i<n;i++){char s,e;cin>>s>>e;w[i].chsta(s);w[i].chend(e);}sort(w+0,w+n,tmp);func(0,n);cout<<maxcnt+1;return 0;
}
void func(int k,int m){if(maxcnt<k){maxcnt=k;}for(int i=1;i<=m;i++){if(b[i]==0&&(k==0?1:w[a[k]].sta==w[a[k-1]].end)){b[i]=1;a[k]=i;func(k+1,m);b[i]=0;}}
}
bool tmp(word a,word b){if(a.sta>b.sta)return 1;if(a.end>b.end)return 1;return 0;
}
未做:

