1:#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,k,a[10];
void dfs(int x,int kk) { //值,第几层
a[kk]=x;
if(kk==n) {
for(int i=1; i<=n; i++) {
cout<<a[i]<<" ";
}
cout<<"\n";
return;
}
for(int i=1; i<=k; i++) {
dfs(i,kk+1);
}
}
void solve() {
cin>>n>>k;
dfs(0,0);
}
signed main() {
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int t=1;
//cin>>t;
while(t--) {
solve();
}
}
2:
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,a[15];
void dfs(int x,int k){
a[k]=x;
if(k==n){
for(int i=1;i<=n;i++){
if(a[i]==1){
cout<<"Y";
}
else{
cout<<"N";
}
}
cout<<"\n";
return;
}
dfs(0,k+1);
dfs(1,k+1);
}
void solve() {
cin>>n;
dfs(-1,0);
}
signed main() {
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int t=1;
//cin>>t;
while(t--) {
solve();
}
}
3:
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,k,a[15],vis[15];
void dfs(int x,int kk){
a[kk]=x;
if(kk==k){
for(int j=1;j<=k;j++){
cout<<a[j]<<" ";
}
cout<<"\n";
return;
}
for(int i=1;i<=n;i++){
if(vis[i]) continue;
vis[i]=1;
dfs(i,kk+1);
vis[i]=0;
}
}
void solve() {
cin>>n>>k;
dfs(-1,0);
}
signed main() {
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int t=1;
//cin>>t;
while(t--) {
solve();
}
}
4:
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=40+10;
int n,l,r,a[N],pre[N],cnt;
void dfs(int x,int sum) {
if(sum>r) {
return;
}
if(x==n) { //结束
if(sum>=l&&sum<=r) {
cnt++;
}
return;
}
dfs(x+1,sum+a[x+1]);//选
dfs(x+1,sum);//不选
}
void solve() {
cin>>n>>l>>r;
for(int i=1; i<=n; i++) {
cin>>a[i];
}
dfs(0,0);
cout<<cnt<<"\n";
}
signed main() {
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int t=1;
//cin>>t;
while(t--) {
solve();
}
return 0;
}
/*
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=40+10;
int n,l,r,a[N],pre[N],cnt;
void dfs(int x,int sum) {
if(sum>r) {
return;
}
if(x==n+1) { //结束
if(sum>=l&&sum<=r) {
cnt++;
}
return;
}
dfs(x+1,sum+a[x+1]);//选
dfs(x+1,sum);//不选
}
void solve() {
cin>>n>>l>>r;
for(int i=1; i<=n; i++) {
cin>>a[i];
}
dfs(0,0);
cout<<cnt/2<<"\n";
}
signed main() {
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int t=1;
//cin>>t;
while(t--) {
solve();
}
return 0;
}*/
【洛谷】B3621,B3622,B3623,B3624(dfs件套)
最新推荐文章于 2024-07-27 16:02:05 发布