제출 #780245

#제출 시각아이디문제언어결과실행 시간메모리
780245Sohsoh84친구 (IOI14_friend)C++17
11 / 100
27 ms4372 KiB
#include "friend.h" #include <bits/stdc++.h> using namespace std; #define debug(x) cerr << #x << ": " << x << endl; const int MAXN = 1e4 + 10; int dp[MAXN]; vector<int> adj[MAXN]; inline void add(int u, int v) { adj[u].push_back(v); adj[v].push_back(u); } int findSample(int n, int C[], int host[], int protocol[]){ for (int i = 1; i < n; i++) { if (protocol[i] % 2 == 0) add(host[i], i); if (protocol[i] > 0) { for (int u : adj[host[i]]) add(i, u); } } for (int mask = 1; mask < (1 << n); mask++) { int v = __builtin_ctz(mask); dp[mask] = dp[mask ^ (1 << v)]; int tmask = (1 << v); for (int u : adj[v]) tmask |= (1 << u); dp[mask] = max(dp[mask], dp[(mask | tmask) ^ tmask] + C[v]); } return dp[(1 << n) - 1]; }
#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...