思路:暴力剪枝,先在n个中选出k个,然后先不考虑顺序,看所有抑或值能否包括l到ans,不能则退出再选,能则考虑顺序情况。
反思:昨天到今天都曲解题意了。。。wa了几发看别人博客才发现,还有我剪枝太不优越了,T了几发果断重写。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
int a[22];
int b[10];
int n,k,l;
int ans;
bool v[20];
int c[10][10];
bool vis[111];
void check(int num,int sum)
{
vis[sum]=1;
if(num==k)return;
ch......
阅读全文