ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#213987 | #2400. 椅子 | ThySecret | 55 | 427ms | 14624kb | C++11 | 2.8kb | 2024-11-14 21:25:47 | 2024-11-14 23:07:49 |
answer
#include <bits/stdc++.h>
using namespace std;
// #define int long long
// #define x first
// #define y second
#define File(a) freopen(a".in", "r", stdin), freopen(a".out", "w", stdout)
inline void debug() { cerr << '\n'; }
template<typename Type, typename... Other>
inline void debug(const Type& x, const Other&... y) { cerr << x << ' '; debug(y...); }
#define DEBUG(a...) cerr << "[" << #a << "] = ", debug(a);
typedef long long LL;
typedef pair<int, int> PII;
const int N = 1000010, M = 4000010;
const int INF = 0x3f3f3f3f;
const int D = 200000;
template<typename Type>
inline void read(Type &res)
{
res = 0;
int ch = getchar(), flag = 0;
while (!isdigit(ch)) flag |= ch == '-', ch = getchar();
while (isdigit(ch)) res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
res = flag ? -res : res;
}
template<typename Type, typename... Other>
inline void read(Type &res, Other&... y) { read(res), read(y...); }
int n, m, st, ed;
int cpy[N], h[N], e[M], ne[M], w[M], idx;
int dist[N], que[N], hh = 0, tt = -1;
inline void add(int a, int b, int c)
{
e[++ idx] = b, w[idx] = c, ne[idx] = h[a], h[a] = idx;
e[++ idx] = a, w[idx] = 0, ne[idx] = h[b], h[b] = idx;
}
bool bfs()
{
memset(dist, 0, sizeof dist);
hh = 0, tt = -1;
dist[st] = 1, que[++ tt] = st;
while (hh <= tt)
{
int ver = que[hh ++];
for (int i = h[ver]; ~i; i = ne[i])
{
int to = e[i];
if (!dist[to] && w[i] > 0)
dist[to] = dist[ver] + 1, que[++ tt] = to;
}
}
return dist[ed];
}
int dfs(int ver, int flow)
{
if (ver == ed || !flow) return flow;
for (int &i = cpy[ver]; ~i; i = ne[i])
{
int to = e[i];
if (dist[to] == dist[ver] + 1 && w[i] > 0)
{
int temp = dfs(to, min(flow, w[i]));
if (temp > 0)
{
w[i] -= temp, w[i ^ 1] += temp;
return temp;
}
}
}
return 0;
}
int dinic()
{
int ans = 0, temp = 0;
while (bfs())
{
memcpy(cpy, h, sizeof cpy);
while (temp = dfs(st, INF))
ans += temp;
}
return ans;
}
signed main()
{
memset(h, -1, sizeof h), idx = -1;
read(n, m);
st = 0, ed = 1000001;
for (int ver = 1; ver < m; ver ++)
add(ver + D + 1, ver + D, INF), add(ver + 2 * D, ver + 2 * D + 1, INF);
for (int ver = 1; ver <= m; ver ++)
add(ver + D, ed, 1), add(ver + 2 * D, ed, 1);
for (int ver = 1; ver <= n; ver ++)
{
int l, r; read(l, r);
add(st, ver, 1), add(ver, l + D, 1), add(ver, r + 2 * D, 1);
}
cout << n - dinic() << '\n';
// cout << dinic() << '\n';
return 0;
}
Details
小提示:点击横条可展开更详细的信息
Test #1:
score: 5
Accepted
time: 0ms
memory: 12904kb
input:
8 8 1 8 1 5 2 8 0 5 0 3 2 6 2 6 2 6
output:
1
result:
ok single line: '1'
Test #2:
score: 5
Accepted
time: 0ms
memory: 12904kb
input:
10 10 0 5 2 9 3 10 2 7 1 6 0 10 0 9 2 10 0 9 1 10
output:
2
result:
ok single line: '2'
Test #3:
score: 5
Accepted
time: 5ms
memory: 12908kb
input:
20 20 4 16 2 11 3 19 6 12 7 18 1 14 4 10 5 20 6 14 8 17 1 12 2 11 7 18 7 15 0 15 1 12 2 19 7 13 4 10...
output:
1
result:
ok single line: '1'
Test #4:
score: 5
Accepted
time: 8ms
memory: 12920kb
input:
96 93 2 67 5 61 4 74 15 68 3 63 40 91 14 58 6 66 9 57 18 85 13 63 40 85 17 89 16 73 10 72 15 74 15 6...
output:
7
result:
ok single line: '7'
Test #5:
score: 5
Accepted
time: 6ms
memory: 12920kb
input:
100 100 29 70 17 68 25 77 13 74 9 79 42 90 34 99 18 100 3 80 21 71 26 63 6 54 43 89 41 78 19 78 13 9...
output:
2
result:
ok single line: '2'
Test #6:
score: 5
Accepted
time: 16ms
memory: 13064kb
input:
952 954 182 871 114 769 110 694 91 741 22 509 53 841 124 858 16 465 160 789 24 720 96 939 56 689 313...
output:
64
result:
ok single line: '64'
Test #7:
score: 5
Accepted
time: 17ms
memory: 13076kb
input:
1000 1000 74 795 175 641 39 618 19 971 162 873 93 731 480 989 357 932 4 693 266 965 89 581 47 560 27...
output:
74
result:
ok single line: '74'
Test #8:
score: 5
Accepted
time: 63ms
memory: 13696kb
input:
4516 4690 665 4024 1062 3765 1573 4200 1035 4155 441 2678 31 3472 87 3450 146 2286 310 4267 1231 450...
output:
69
result:
ok single line: '69'
Test #9:
score: 5
Accepted
time: 75ms
memory: 13764kb
input:
5000 5000 62 4476 1146 3647 531 4569 1042 3464 2044 4817 2186 4584 2223 4892 1224 4761 1154 4943 147...
output:
250
result:
ok single line: '250'
Test #10:
score: 5
Accepted
time: 61ms
memory: 14132kb
input:
10000 5000 1106 4454 1138 4746 926 4805 609 4507 259 4543 1435 4211 790 3399 528 3426 38 4665 87 404...
output:
5347
result:
ok single line: '5347'
Test #11:
score: 5
Accepted
time: 176ms
memory: 14624kb
input:
10000 10000 2224 8599 3697 9779 1264 7760 266 8474 601 9386 5276 9907 4231 9619 2206 8589 3306 9731 ...
output:
574
result:
ok single line: '574'
Test #12:
score: 0
Time Limit Exceeded
input:
93875 99655 0 25859 0 30798 0 89053 0 29230 0 93483 0 83280 0 47502 0 39669 0 69861 0 64184 0 35067 ...
output:
result:
Test #13:
score: 0
Time Limit Exceeded
input:
100000 100000 0 50602 0 56129 0 65965 0 75241 0 71832 0 26413 0 79671 0 73842 0 78772 0 94149 0 3483...
output:
result:
Test #14:
score: 0
Time Limit Exceeded
input:
91057 96847 21419 89318 2406 89095 2941 51033 14888 77083 28023 74840 18260 62296 6297 51346 7735 88...
output:
result:
Test #15:
score: 0
Time Limit Exceeded
input:
100000 100000 16723 78322 7205 66894 9839 72285 7661 85725 38680 93140 6182 88375 30785 99006 38538 ...
output:
result:
Test #16:
score: 0
Time Limit Exceeded
input:
198495 197435 63738 165927 17757 117506 9207 170263 50748 141346 18132 120887 49285 188664 25304 190...
output:
result:
Test #17:
score: 0
Time Limit Exceeded
input:
199260 192470 22818 156104 9228 171776 43025 139453 39938 135662 18272 171006 68109 171295 28220 116...
output:
result:
Test #18:
score: 0
Time Limit Exceeded
input:
200000 200000 75002 167675 8656 181873 54606 156991 48075 167451 74414 194621 55633 180796 4565 1657...
output:
result:
Test #19:
score: 0
Time Limit Exceeded
input:
200000 200000 59298 170956 2760 194028 35447 153792 1945 163425 73195 176225 62065 185526 85886 1916...
output:
result:
Test #20:
score: 0
Time Limit Exceeded
input:
200000 200000 67496 171474 36806 170296 86759 193181 7951 171117 85324 184470 8949 171983 10465 1547...