坐标离散化

复制代码
int compress(int *x1,int *x2,int w){
   vector<int> xs;
   for(int i=0;i<N;i++){
     for(int d=-1;d<=1;d++){
        int tx1=x1[i]+d,tx2=x2[i]+d;
        if(1<=tx1&&tx1<=w) xs.push_back(tx1);
        if(1<=tx2&&tx2<=w) xs.push_back(tx2);
     }
   }
   sort(xs.begin(),xs.end());
   xs.erase(unique(xs.begin(),xs.end()),xs.end());
   for(int i=0;i<N;i++){
     x1[i]=find(xs.begin(),xs.end(),x1[i])-xs.begin();
     x2[i]=find(xs.begin(),xs.end(),x2[i])-xs.begin();
   }
   return xs.size();
}
复制代码

 

posted @   lmjer  阅读(103)  评论(0编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
点击右上角即可分享
微信分享提示