codeforces 1097B. Petr and a Combination Lock(1200)

链接:https://codeforces.ml/problemset/problem/1097/B

题意:判断能否用所给的数据凑出360的倍数或者0;

题解:

n才15,暴力dfs走起;

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

int num[100005] = { 0 };
int ans = 0;
void dfs(int step, int n, int sum)
{
	/*cout << sum <<" " << " ";*/
	if (step == n+1)
	{
		cout << endl;
		if (sum == 0)
		{
		/*	cout << "1";*/
			ans = 1;
		}
		else if (sum % 360 == 0)
		{
			/*cout << '2';*/
			ans = 1;
		}
		return;
	}
	dfs(step + 1, n, sum + num[step]);


	dfs(step + 1, n, sum - num[step]);
}
int main()
{
	int t;
	cin >> t;
	for (int i = 1; i <= t; i++)
	{
		cin >> num[i];
	}
	dfs(1, t, 0);
	//cout << ans;
	if (ans==1)
		cout << "YES";
	else
		cout << "NO";
}

上一篇:《Mask TextSpotter v3: Segmentation Proposal Network for Robust Scene Text Spotting》论文阅读笔记


下一篇:SQLite的SQL语法