当前位置: 首页 > news >正文

【学习笔记】EC-Final 2022 K. Magic

最近的题都只会抄题解😅

首先,操作顺序会影响答案,因此不能直接贪心。其次,因为是求贡献最大,所以可以考虑枚举最终哪些位置对答案产生了贡献,进而转化为全局贡献。

1.1 1.1 1.1 如果 [ l 1 , r 1 ) ⊆ [ l 2 , r 2 ) [l_1,r_1)\subseteq [l_2,r_2) [l1,r1)[l2,r2),那么一定是贪心的先操作 [ l r , r 2 ) [l_r,r_2) [lr,r2),因此这部分限制不用考虑

1.2 1.2 1.2 对于两个区间 [ l 1 , r 1 ) , [ l 2 , r 2 ) [l_1,r_1),[l_2,r_2) [l1,r1),[l2,r2),如果满足 l 1 < l 2 < r 1 < r 2 l1<l2<r_1<r_2 l1<l2<r1<r2,并且选择了 r 1 r_1 r1,那么意味着 l 2 l_2 l2一定比 r 1 r_1 r1先操作;反之亦然,因此 l 2 l_2 l2 r 1 r_1 r1不能同时被选择。注意到 l i , r i l_i,r_i li,ri互不相同,因此我们考虑到了所有位置,并且每个位置至少有一次产生贡献的机会。

容易证明这样不会产生环,因为 r r r是递增的

发现只有 l i l_i li r i r_i ri之间会有连边,问题转化为求二分图最大独立集。

使用 bitset \text{bitset} bitset优化,复杂度 O ( n 3 w ) O(\frac{n^3}{w}) O(wn3)

类似的题目:[ARC092F] Two Faced Edges

#include<bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define ll long long
using namespace std;
const int N=5005;
int n,tot,l[N],r[N],match[N];
int px[N],py[N];
bitset<N>to[N],vs;
queue<int>Q;
int bfs(int u){while(Q.size())Q.pop();vs.set(),Q.push(u);int v=-1;while(Q.size()){int x=Q.front();Q.pop();bitset<N>tmp=vs&to[x];for(int y=tmp._Find_first();y<=n;y=tmp._Find_next(y)){int z=match[y];vs[y]=0;if(z==0){match[y]=x,v=x;break;}Q.push(z),px[z]=x,py[z]=y;}if(~v)break;}if(v==-1)return 0;while(v!=u){match[py[v]]=px[v];v=px[v];}return 1;
}
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>n;for(int i=1;i<=n;i++){cin>>l[i]>>r[i];}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(l[i]<l[j]&&l[j]<r[i]&&r[i]<r[j]){to[i][j]=1;}}}for(int i=1;i<=n;i++){tot+=bfs(i);}cout<<2*n-tot;
}
http://www.lryc.cn/news/171154.html

相关文章:

  • MySQL数据库笔记
  • 大数据之Hive(三)
  • 让高分辨率的相机芯片输出低分辨率的图片对于像素级的值有什么影响?
  • FastGPT 接入飞书(不用写一行代码)
  • 蓝桥杯 题库 简单 每日十题 day6
  • 使用Arduino简单测试HC-08蓝牙模块
  • 如何在 CentOS 8 上安装 OpenCV?
  • 一台主机外接两台显示器
  • 笔记-搭建和使用docker-registry私有镜像仓库
  • 爬虫框架Scrapy学习笔记-2
  • 6.1 使用scikit-learn构建模型
  • React 全栈体系(十一)
  • AI 时代的向量数据库、关系型数据库与 Serverless 技术丨TiDB Hackathon 2023 随想
  • Vue的路由使用,Node.js下载安装及环境配置教程 (超级详细)
  • vue修改node_modules打补丁步骤和注意事项
  • CSS 响应式设计:媒体查询
  • Qt开发 - Qt基础类型
  • Docker-如何获取docker官网x86、ARM、AMD等不同架构下的镜像资源
  • Vuex状态管理最佳实践
  • platform和led中断项目
  • R语言-关于颜色
  • 抖音seo优化排名源码搭建
  • pytorch的卷积层池化层和非线性变化 和机器学习线性回归
  • Java手写快速选择算法应用拓展案例
  • js制作柱状图的x轴时间, 分别展示 月/周/日 的数据
  • 安防监控/视频汇聚/云存储/AI智能视频分析平台EasyCVR下级海康设备无法级联是什么原因?
  • HttpUtils带连接池
  • 智慧养殖:浅谈视频监控与AI智能识别技术助力奶牛高效、智慧养殖
  • 一文总结提示工程框架,除了CoT还有ToT、GoT、AoT、SoT、PoT
  • Java面试笔试acm版输入