dec 긴 컨테스트 (codechef)의 질문 - http://www.codechef.com/problems/SANSKAR, diff 가중치가있는 n 엔티티가 주어진 부분에서 나누어 질 수 있는지, 각 부분의 무게가 같은지 여부 만 알면됩니다. 나는 AC를 얻지 못해 해결책을 찾지 못했다. - http://ideone.com/3hB8lI, 이 솔루션은 문제를 단순화하기 위해 비트 연산을 사용하지만 비트 연산은 알고 있지만이 솔루션에서 사용 된 접근법을 얻을 수 없다. odrs 코드를 복사하는 것이 내가 비트 작전이 답을 얻을 수있는 솔루션에 사용하는 방법을 알고 싶어하지만, 좋은 생각 ..비트 연산의 사용법을 이해하지 못합니다.
#include<stdio.h>
int main() {
int T, N, K;
scanf("%d", &T);
while(T--) {
scanf("%d %d", &N, &K);
long long a[N];
for(int i=0; i<N; i++)
scanf("%lld", &a[i]);
long long totSans=0;
for(int i=0; i<N; i++)
totSans+=a[i];
long long eachSans;
if(N<K || totSans%K) {
printf("no\n");
continue;
}
if(totSans%K==0)
eachSans=totSans/K;
long long takeAll=0;
int cnt=0;
for(int i=0; i<(1<<N); i++) {
long long sum=0;
for(int j=0; j<N; j++)
if(i & (1<<j))
sum+=a[j];
if(sum==eachSans && !(i & takeAll)) {
takeAll |= i;
cnt++;
}
}
printf(!totSans || cnt>=K ? "yes\n" : "no\n");
}
}
전체 코드를 붙여 넣을 필요는 없습니다. 관련 비트만 제공해주세요. 또한, [mcve] (http://stackoverflow.com/help/mcve). – Pradhan
들여 쓰기가 어디에 있습니까? – martijnn2008
코드에서 martijnn2008 –