题解 | #数组分组#
数组分组
https://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86
#include <iostream>
#include <vector>
using namespace std;
int n;
vector<int> v;
int sum = 0;
bool success = false;
void dfs(int idx, int l, int r)
{
if(idx == n)
{
if(l == sum / 2)
success = true;
return;
}
if(v[idx] % 5 == 0)
dfs(idx + 1, l + v[idx], r);
else if(v[idx] % 3 == 0)
dfs(idx + 1, l, r + v[idx]);
else
{
dfs(idx + 1, l + v[idx], r);
dfs(idx + 1, l, r + v[idx]);
}
}
int main()
{
cin >> n;
v.resize(n);
for(int i = 0; i < n; i++)
{
cin >> v[i];
sum += v[i];
}
if(sum % 2)
{
puts("false");
return 0;
}
dfs(0,0,0);
if(success) puts("true");
else puts("false");
return 0;
}
查看17道真题和解析