爱奇艺第一题,结束后写完,仅供参考

爱奇艺第一题,容量设置错误没有ac上,这是结束后写完的,仅供参考,思路:全排列里根据条件筛选
#include <iostream>
#include <vector>

using namespace std;

int sums = 0;

void permutation(vector<int>& array, int begin, int end, vector<int>& A)
{
	if (begin == end)
	{
		bool flags = false;
		for (int i = 0; i <= end; ++i)
		{
			// stt[m].push_back(array[j]);
			// cout << array[j] << " ";
			if (i < end)
			{
				if (A[i] == 1)
				{
					if (array[i] < array[i + 1])
					{
						flags = false;
						break;
					}
					else
						flags = true;
				}

				if (A[i] == 0)
				{
					if (array[i] > array[i + 1])
					{
						flags = false;
						break;
					}
					else
						flags = true;
				}
			}
		}
		if (flags)
			++sums;
		return;
	}
	else 
	{
		for (int i = begin; i <= end; ++i)
		{
			swap(array[i], array[begin]);
			permutation(array, begin + 1, end, A);
			swap(array[i], array[begin]);
		}
	}
}

int main(int argc, char **argv)
{
	int N;
	cin >> N;
	vector<int> arr;
	for (int i = 1; i <= N; ++i)
		arr.push_back(i);
	
	vector<int> A;
	int val;
	for (int i = 1; i < N; ++i)
	{
		cin >> val;
		A.push_back(val);
	}

	permutation(arr, 0, arr.size() - 1, A);

	cout << "sums:" << sums << endl;

	return 0;
}


#爱奇艺##题解#
全部评论
力扣903
点赞 回复 分享
发布于 2019-09-08 17:42

相关推荐

评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务