이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "friend.h"
#include<bits/stdc++.h>
using namespace std;
int n,c[100100],h[100100],p[100100],edge[12][12],dp[100000];
int ans(int state)
{
if(dp[state]!=0)
return dp[state];
int ret=0;
for(int i=0;i<n;i++)
if(state&(1<<i))
ret+=c[i];
for(int i=0;i<n;i++)
{
if((state&(1<<i))!=0)
continue;
bool pos=true;
for(int j=0;j<n;j++)
if((state&1<<j)!=0&&edge[i][j]==1)
pos=false;
if(pos)
ret=max(ret,ans(state|(1<<i)));
}
dp[state]=ret;
return ret;
}
int findSample(int in,int confidence[],int host[],int protocol[]){
n=in;
for(int i=0;i<n;i++)
{
c[i]=confidence[i];
h[i]=host[i];
p[i]=protocol[i];
}
for(int i=1;i<n;i++)
{
if(p[i]==0)
edge[i][h[i]]=edge[h[i]][i]=1;
else
{
for(int j=0;j<n;j++)
edge[j][i]=edge[i][j]=edge[h[i]][j];
if(p[i]==2)
edge[i][host[i]]=edge[host[i]][i]=1;
}
}
return ans(0);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |