求助嗷嗷嗷20分嗷嗷嗷
查看原帖
求助嗷嗷嗷20分嗷嗷嗷
317198
MilkyCoffee楼主2020/5/11 14:09

老规矩,帮忙的关注

哈罗大家好,我又是那个牛奶小咖啡,我又来求助啦!

虽然我的代码里有注释,但是依然可读性极差,大家将就着看吧~

20分WA两个点

// #include <bits/stdc++.h> // 本地不能用万能头QwQ
#include <cmath>
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <string>
#include <cstdio>
#include <cstring>
#include <queue>
#include <stack>
using namespace std;

int n, m;
bool flag[15] = {};

void srh(int k, int cnt) {// k指第k个数有没有求,cnt指现在取到那一个了
	if (k > n) {// 如果看过的数比总数还要多
		if (cnt == m) {// 如果取得数等于应取得数m
			for (int i = 1; i <= n; i++) {// 输出
				if (flag[i] == 1) {
					cout << setw(3) << i << " ";
				}
			}
			cout << endl;
		}
		return;
	}
	flag[k] = true;
	srh(k + 1, cnt+1); // 每次都多看一个数,如果这个数取的话,取得数cnt+1
	flag[k] = false;
	srh(k + 1, cnt);// 没取得话,就不用多一个了
}

int main() {
	cin >> n >> m;
	srh(1, 0);// 进去先判断第一个数用不用取
	// 现在一个数还没求呢,所以写0
	
	return 0;
}

2020/5/11 14:09
加载中...