P1036代码求助!!!!
查看原帖
P1036代码求助!!!!
693585
QWVnbGVzZWVrZXI3D楼主2023/9/9 19:01

事情是这样的,本来是想刷一些题目,做到这一题的时候发现我居然提交过代码(编译错误),然后我把_builtin_popcount(S)换成了__builtin_popcount(S),居然ac惹,我看不懂我的代码(awa),应该是以前写的忘了(以前的我辣么厉害吗,有可能是抄课件的),所以有没有大佬把代码解释一下啊啊啊啊啊qwq

以下是我的代码

#include <iostream>
using namespace std;
int a[30];
bool check(int x)
{
	if (x<2) return 0;
	for (int i=2;i*i<=x;i++) if (x%i==0) return 0;
	return 1;
}
int main()
{
	int n,k,ans=0;
	cin>>n>>k;
	for (int i=0;i<n;i++) cin>>a[i];
	int U=1<<n;
	for (int S=0;S<U;S++)
		if (__builtin_popcount(S)==k)
		{
			int sum=0;
			for (int i=0;i<n;i++)
				if (S & (1<<i)) sum+=a[i];
			if (check(sum))	ans++;
		}
	cout<<ans;
	return 0;
}
听着挺滑稽荒唐的,但是这是真的!
2023/9/9 19:01
加载中...