C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了P2519-[HAOI2011]problem a大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
 1 #include <bits/stdc++.h>
 2 #define _for(i,a,b) for(register int i = (a);i < b;i ++)
 3 #define _rep(i,b) for(register int i = (a);i > b;i --)
 4 #define INF 0x3f3f3f3f
 5 #define MOD 100000000
 6 #define maxn 150003
 7 #define pb push_back
 8 typedef long long ll;
 9 
10 using namespace std;
11 typedef pair<int,int> P;
12 inline ll read()
13 {
14     ll ans = 0;
15     char ch = getchar(),last =  ;
16     while(!isdigit(ch)) last = ch,ch = getchar();
17     while(isdigit(ch)) ans = (ans << 1) + (ans << 3) + ch - 0,ch = getchar();
18     if(last == -) ans = -ans;
19     return ans;
20 }
21 inline void write(ll x)
22 {
23     if(x < 0) x = -x,putchar(-);
24     if(x >= 10) write(x / 10);
25     putchar(x % 10 + 0);
26 }
27 struct line
28 {
29     int l;
30     int r;
31     int w;
32     bool operator < (line b)
33     {
34         if(r != b.r)
35             return r < b.r;
36         return l < b.l;
37     }
38 };
39 int N;
40 vector<line> v;
41 map<pair<int,int>,int> m;
42 int dp[maxn];
43 int binarysearch(int l,int r,int val)
44 {
45     while(l <= r)
46     {
47         int mid = (l + r) / 2;
48         if (v[mid].r < val) 
49             l = mid + 1;
50         else 
51             r = mid - 1;
52     }
53     return r;
54 }
55 int main()
56 {
57     N = read();
58     _for(i,1,N+1)
59     {
60         int a = read();
61         int b = read();
62         if(a+b+1>N) continue;
63         m[{a+1,N-b}] ++;
64     }
65     v.pb({});
66     for(auto p:m)
67     {
68         line tmp;
69         int d = p.first.second-p.first.first+1;
70         tmp.l = p.first.first;
71         tmp.r = p.first.second;
72         tmp.w = min(d,p.second);
73         v.pb(tmp);
74     }
75 
76     sort(v.begin(),v.end());
77 
78     dp[1] = v[1].w;
79     _for(i,2,v.size())
80     {
81         int nxt = binarysearch(1,i-1,v[i].l);
82         dp[i] = max(dp[i-1],dp[nxt] + v[i].w);
83     }
84     write(N-dp[v.size()-1]);
85     return 0;
86 }

大佬总结

以上是大佬教程为你收集整理的P2519-[HAOI2011]problem a全部内容,希望文章能够帮你解决P2519-[HAOI2011]problem a所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: