제출 #151712

#제출 시각아이디문제언어결과실행 시간메모리
151712willi19친구 (IOI14_friend)C++14
11 / 100
41 ms6520 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...