状压dp求条!
查看原帖
状压dp求条!
1140231
ChangeYuAN楼主2024/11/23 10:07
#include<bits/stdc++.h>
using namespace std;
const int MAXLEN=(1<<21)+1;
int dp[MAXLEN],n,l,r,ans=0,a[20];

signed main(){
	scanf("%d%d%d",&n,&l,&r);
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	for(int i=1;i<=(1<<(n+1));i++){
		for(int j=1;j<=n;j++){
			if(i&(1<<j)){
				dp[i]+=a[j];
			}
		}if(dp[i]>=l&&dp[i]<=r) ans++;
	}printf("%d",ans>>1);
	return 0;
}
2024/11/23 10:07
加载中...