제출 #73599

#제출 시각아이디문제언어결과실행 시간메모리
73599MKopchev친구 (IOI14_friend)C++14
35 / 100
5 ms876 KiB
#include<bits/stdc++.h> #include "friend.h" using namespace std; const int nmax=1e3+42; vector<int> adj[nmax]; int conf[nmax]; int dp[nmax][2]; int rec(int node,int par,bool take) { if(dp[node][take]!=-1)return dp[node][take]; int ans=(take?conf[node]:0); if(take) { for(auto k:adj[node]) if(k!=par) ans=ans+rec(k,node,0); } else { for(auto k:adj[node]) if(k!=par) ans=ans+max(rec(k,node,0),rec(k,node,1)); } dp[node][take]=ans; return ans; } bool edge[15][15]; int findSample(int n,int confidence[],int host[],int protocol[]) { int sum=confidence[0],maxi=confidence[0]; bool zero=1,one=1,two=1; for(int i=1;i<n;i++) { if(protocol[i]!=0)zero=0; if(protocol[i]!=1)one=0; if(protocol[i]!=2)two=0; sum=sum+confidence[i]; maxi=max(maxi,confidence[i]); } if(one)return sum; if(two)return maxi; if(zero) { for(int i=0;i<n;i++) conf[i]=confidence[i]; for(int i=1;i<n;i++) { adj[host[i]].push_back(i); adj[i].push_back(host[i]); } memset(dp,-1,sizeof(dp)); return max(rec(0,0,0),rec(0,0,1)); } for(int i=1;i<n;i++) { if(protocol[i]==0) { edge[host[i]][i]=1; edge[i][host[i]]=1; continue; } for(int j=0;j<n;j++) if(edge[j][host[i]]) { edge[i][j]=1; edge[j][i]=1; } if(protocol[i]==2) { edge[i][host[i]]=1; edge[host[i]][i]=1; } } int ans=0; for(int mask=0;mask<(1<<n);mask++) { int sum=0; for(int j=0;j<n;j++) if(mask&(1<<j))sum=sum+confidence[j]; for(int j=0;j<n;j++) for(int k=j+1;k<n;k++) if(edge[j][k]&&mask&(1<<j)&&mask<<(1<<k))sum=0; ans=max(ans,sum); } return ans; }

컴파일 시 표준 에러 (stderr) 메시지

friend.cpp: In function 'int findSample(int, int*, int*, int*)':
friend.cpp:84:45: warning: '<<' in boolean context, did you mean '<' ? [-Wint-in-bool-context]
             if(edge[j][k]&&mask&(1<<j)&&mask<<(1<<k))sum=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...