| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1334635 | yhkhoo | Council (JOI23_council) | C++17 | 4094 ms | 10584 KiB |
#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> pii;
#define fi first
#define se second
#define pop __builtin_popcount
const int MAXN = 300000, MAXM = 20, MAXM2 = 1048576, INF = MAXN*67;
int n, m;
int a[MAXN], s[MAXM];
pii memo[MAXM2];
pii dp(int msk){
auto& mem = memo[msk];
if(mem.fi != -1){
return mem;
}
auto& [m1, m2] = mem;
m1 = INF, m2 = INF;
for(int i=0; i<n; i++){
int cur = pop(a[i] & msk);
if(cur <= m1){
m2 = m1;
m1 = cur;
}
else if(cur < m2){
m2 = cur;
}
}
return mem;
}
signed main(){
ios_base::sync_with_stdio(0); cin.tie(0);
memset(memo, -1, sizeof(memo));
cin >> n >> m;
int x = n/2;
for(int i=0; i<n; i++){
for(int j=0, aij; j<m; j++){
cin >> aij;
if(aij){
a[i] ^= (1<<j);
s[j]++;
}
}
}
int tot = 0, r = 0;
for(int i=0; i<m; i++){
if(s[i] >= x){
tot++;
}
if(s[i] == x){
r ^= (1<<i);
}
}
for(int i=0; i<n; i++){
int cr = r, d = 0;
for(int j=0; j<m; j++){
if(!(a[i] & (1<<j))) continue;
if(s[j] == x){
cr ^= (1<<j);
d++;
}
else if(s[j] == x+1){
cr ^= (1<<j);
}
}
auto [m1, m2] = dp(cr);
int cm = pop(a[i] & cr);
int ans = tot - d;
if(cm == m1){
ans -= m2;
}
else{
ans -= m1;
}
cout << ans << '\n';
}
return 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... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
