# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
186838 | 2020-01-12T11:03:24 Z | nicolaalexandra | Political Development (BOI17_politicaldevelopment) | C++14 | 5 ms | 2808 KB |
#include <bits/stdc++.h> #define DIM 50010 using namespace std; priority_queue <pair<int,int>, vector <pair<int,int> >, greater<pair<int,int> > > H; set <int> L[DIM]; int n,k,i,j,sol,el,nod; int v[DIM],x[DIM],viz[DIM],f[DIM],g[DIM],mask[DIM]; int verif (int x, int y){ if (L[x].find(y) != L[x].end()) return 1; return 0; } void back (int pas){ sol = max (sol,pas-1); if (pas >= k) return; for (int i=1;i<=el;++i){ if (!f[i] && v[i] > x[pas-1] && verif(pas,v[i])){ x[pas] = v[i]; f[i] = 1; back(pas+1); f[i] = 0; } } } void get_max_clique (int nod){ el = 0; v[++el] = nod; for (auto vecin:L[nod]) v[++el] = vecin; sort (v+1,v+el+1); for (int i=1;i<=el;i++) for (int j=1;j<=el;j++){ if (i == j){ mask[i] |= (1<<(i-1)); continue; } if (verif(i,j)) mask[i] |= (1<<(j-1)); } int val = (1<<el)-1; for (int i=1;i<=el;i++) val &= mask[i]; sol = max (sol,__builtin_popcount(val)); } int main (){ FILE *fin = stdin; FILE *fout = stdout; fscanf (fin,"%d%d",&n,&k); for (i=1;i<=n;++i){ fscanf (fin,"%d",&g[i]); for (j=1;j<=g[i];++j){ fscanf (fin,"%d",&nod); L[i].insert(nod+1); } H.push (make_pair(g[i],i)); } while (!H.empty()){ int nod = H.top().second; int grad = H.top().first; H.pop(); if (grad != g[nod]) /// inseamna ca nu e ala cu gradul minim continue; /// vreau sa gasesc clica maxima din care poate face parte nod get_max_clique (nod); viz[nod] = 1; /// acum il elimin pe nod si toate muchiile for (auto vecin:L[nod]){ if (viz[vecin]) continue; /// nu am incercat sa obtin clica de aici deloc viz[vecin] = 1; --g[vecin]; L[vecin].erase(L[vecin].find(nod)); H.push(make_pair(g[vecin],vecin)); } L[nod].clear(); } fprintf(fout,"%d",sol); return 0; } /// din nou, nu sunt in stare sa citesc un enunt cum trb
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 2680 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 2680 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 2808 KB | Output is correct |
2 | Incorrect | 4 ms | 2680 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 2680 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 2680 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |