Submission #1794822
Source Code Expand
#include<bits/stdc++.h> using namespace std; using vi = vector< int >; using vii = vector< vi >; struct Bipartite_Matching { vector< vector< int > > graph; vector< int > match, alive, used; int timestamp; Bipartite_Matching(int n) { timestamp = 0; graph.resize(n); alive.assign(n, 1); used.assign(n, 0); match.assign(n, -1); } void add_edge(int u, int v) { graph[u].push_back(v); graph[v].push_back(u); } bool dfs(int v) { used[v] = timestamp; for(int i = 0; i < graph[v].size(); i++) { int u = graph[v][i], w = match[u]; if(alive[u] == 0) continue; if(w == -1 || (used[w] != timestamp && dfs(w))) { match[v] = u; match[u] = v; return (true); } } return (false); } int bipartite_matching() { int ret = 0; for(int i = 0; i < graph.size(); i++) { if(alive[i] == 0) continue; if(match[i] == -1) { ++timestamp; ret += dfs(i); } } return (ret); } }; struct Fix_Matching : Bipartite_Matching { Fix_Matching(int sz) : Bipartite_Matching(sz) {} int add(int k) // 加える { alive[k] = 1; ++timestamp; return (dfs(k)); } int kill(int k) // 消す { alive[k] = 0; if(match[k] == -1) return (0); match[match[k]] = -1; ++timestamp; int ret = dfs(match[k]); match[k] = -1; return (ret - 1); } }; int main() { int N; cin >> N; vector< vii > v(26, vii(N)); for(int i = 0; i < N; i++) { string s; cin >> s; for(int j = 0; j < s.size(); j++) { v[s[j] - 'a'][i].push_back(j); } } for(int i = 0; i < 26; i++) { const int P = 100000; Fix_Matching flow(P + N); for(int j = 0; j < N; j++) { for(int k : v[i][j]) { flow.add_edge(k, P + j); } } for(int j = 0; j < P; j++) flow.kill(j); int f = 0, k = 0; for(int j = 0; j < P; j++) { while(k < P && k - j < N) { f += flow.add(k++); } if(f == N) { cout << "YES" << endl; return (0); } f += flow.kill(j); } } cout << "NO" << endl; }
Submission Info
Submission Time | |
---|---|
Task | B - コメント |
User | ei13333 |
Language | C++14 (GCC 5.4.1) |
Score | 30 |
Code Size | 2257 Byte |
Status | TLE |
Exec Time | 2104 ms |
Memory | 7740 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 30 / 30 | 0 / 60 | ||||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt |
Subtask1 | sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt |
Subtask2 | sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 6 ms | 3776 KB |
sample_02.txt | AC | 37 ms | 3776 KB |
subtask1_01.txt | AC | 36 ms | 3776 KB |
subtask1_02.txt | AC | 37 ms | 3900 KB |
subtask1_03.txt | AC | 37 ms | 3840 KB |
subtask1_04.txt | AC | 37 ms | 3840 KB |
subtask1_05.txt | AC | 24 ms | 3900 KB |
subtask1_06.txt | AC | 37 ms | 3840 KB |
subtask1_07.txt | AC | 3 ms | 3840 KB |
subtask1_08.txt | AC | 41 ms | 3900 KB |
subtask1_09.txt | AC | 3 ms | 3840 KB |
subtask1_10.txt | AC | 38 ms | 3840 KB |
subtask1_11.txt | AC | 37 ms | 3840 KB |
subtask1_12.txt | AC | 37 ms | 3840 KB |
subtask1_13.txt | AC | 13 ms | 3840 KB |
subtask1_14.txt | AC | 37 ms | 3840 KB |
subtask1_15.txt | AC | 15 ms | 3840 KB |
subtask1_16.txt | AC | 37 ms | 3840 KB |
subtask2_01.txt | AC | 13 ms | 4480 KB |
subtask2_02.txt | AC | 197 ms | 4540 KB |
subtask2_03.txt | AC | 19 ms | 5180 KB |
subtask2_04.txt | AC | 44 ms | 4540 KB |
subtask2_05.txt | AC | 9 ms | 4864 KB |
subtask2_06.txt | TLE | 2104 ms | 7740 KB |
subtask2_07.txt | AC | 12 ms | 7672 KB |
subtask2_08.txt | AC | 13 ms | 4480 KB |
subtask2_09.txt | AC | 195 ms | 4540 KB |
subtask2_10.txt | AC | 41 ms | 4284 KB |
subtask2_11.txt | AC | 175 ms | 4540 KB |
subtask2_12.txt | AC | 56 ms | 4540 KB |
subtask2_13.txt | AC | 20 ms | 4540 KB |
subtask2_14.txt | AC | 197 ms | 4540 KB |
subtask2_15.txt | AC | 34 ms | 4540 KB |
subtask2_16.txt | AC | 112 ms | 4540 KB |
subtask2_17.txt | AC | 72 ms | 4480 KB |
subtask2_18.txt | AC | 98 ms | 4540 KB |
subtask2_19.txt | AC | 87 ms | 4540 KB |
subtask2_20.txt | AC | 58 ms | 4668 KB |
subtask2_21.txt | AC | 53 ms | 4608 KB |
subtask2_22.txt | AC | 53 ms | 4608 KB |
subtask2_23.txt | AC | 33 ms | 4668 KB |
subtask2_24.txt | AC | 50 ms | 4736 KB |
subtask2_25.txt | AC | 53 ms | 4608 KB |
subtask2_26.txt | AC | 30 ms | 4664 KB |
subtask2_27.txt | AC | 167 ms | 4664 KB |
subtask2_28.txt | AC | 167 ms | 4664 KB |