区间覆盖 和amp; 线段覆盖 和amp; 二分
P2082 区间覆盖(加强版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
做法:
void solve() {
int n; cin>>n;
vector<array<LL,2>> seg(n);
for(auto &t: seg) cin>>t[0]>>t[1];
sort(all(seg), [](array<LL,2> pre, array<LL,2> suf) {
if(pre[0] == suf[0]) return pre[1] < suf[1];
return pre[0] < suf[0];
});
vector<array<LL,2>> last;
last.push_back(seg[0]);
for(int i = 1; i < n; i) {
if(seg[i][0] <= last.back()[1]) last.back()[1] = max(last.back()[1], seg[i][1]);
else last.push_back(seg[i]);
}
LL ans = 0;
for(auto &t: last) ans = t[1] - t[0] 1;
cout<<ans;
}
差分解决区间覆盖:(这题不能过,但是感觉这个做法有用)
void solve() {
int n; cin>>n;
vector<int> dif(1000 1);
int rl = 0;
rep(i,1,n) {
int l, r; cin>>l>>r;
dif[l] ;
dif[r 1]--; rl = max(rl, r);
}
int sum = 0;
int now = 0;
rep(i,1,rl) {
now = dif[i];
if(now > 0) sum ;
}
cout<<sum;
}
问题描述: 坐标轴中共有多少个整数坐标的点满足恰好被 k条线段覆盖。
思路:离散化差分,用map(。根据差分可以找线段被多少哥线段覆盖。
代码:
void solve() {
int n; cin>>n;
map<LL,LL> mll;
vector<LL> ans(n 1);
rep(i,1,n) {
LL l,r; cin>>l>>r;
mll[l] ;
mll[r 1]--;
}
LL last = -1,sum = 0;
for(auto t: mll) {
LL f = t.vf, s = t.vs;
if(last != -1) ans[sum] = f - last;
sum = s;
last = f;
}
rep(i,1,n) cout<<ans[i]<<" ";
}
问题描述:根据对话,找可能的最多正确的对话。
思路:
如果是 val
,说明猜的数val比答案要大,此时,答案在区间(-inf, val)
。
如果是val -
,说明猜的数val比答案要小,此时,答案在区间(val, inf)
。
如果是val .
,说明猜的数val等于答案,此时,答案在区间[val, val 1)
。
可以用差分求最大覆盖区间。数据离散,可以用map代替差分离散化。
代码:
void solve() {
LL inf = LONG_LONG_MAX - 123456789;
int n; cin>>n;
map<LL,LL> mll;
char op[2];
rep(i,1,n) {
int v; cin>>v>>op;
if(op[0] == '.') { // 等于 [val, val 1)
mll[v] , mll[v 1]--;
}
else if(op[0] == ' ') { // 大 (-inf, v)
mll[-inf] ;
mll[v]--;
} else { // 小 (v 1, inf)
mll[v 1] ;
mll[inf]--;
}
}
int ans = 0, sum = 0;
for(auto t: mll) {
sum = t.vs;
ans = max(sum, ans);
}
cout<<ans;
}
【2023陕西训练营】day1 枚举和枚举优化 - Virtual Judge (vjudge.net)
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhiahjjh
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22