博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ4925 城市规划
阅读量:4624 次
发布时间:2019-06-09

本文共 1230 字,大约阅读时间需要 4 分钟。

  对每个人行道求出移动距离在哪些区间内时其在建筑物前面。现在问题即为选一个点使得其被最多的区间包含。差分即可。对建筑暴力去掉重叠部分。开始时没有去重用了nm次vector的push_back,时间大概是去重写法的300倍,不知所措。

#include
#include
#include
#include
#include
#include
#include
using namespace std;#define ll long long#define N 10010#define M 1010#define K 1000010char getc(){ char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<'0'||c>'9')) c=getchar();return c;}int gcd(int n,int m){ return m==0?n:gcd(m,n%m);}int read(){ int x=0,f=1;char c=getchar(); while (c<'0'||c>'9') { if (c=='-') f=-1;c=getchar();} while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar(); return x*f;}int n,m,a[N],delta[K<<1],cnt,d=K,s;struct data{ int l,r; bool operator <(const data&a) const { return l
=b[i].r) {flag=0;break;} if (flag) c[++cnt]=b[i]; } m=cnt;sort(c+1,c+m+1); cnt=0; for (int i=1;i<=m;i++) { int t=i; while (t
<=c[t].r) t++; cnt++;b[cnt].l=c[i].l,b[cnt].r=c[t].r; i=t; } m=cnt; for (int i=1;i<=n;i++) for (int j=1;j<=m;j++) delta[b[j].l-a[i]+K]++,delta[b[j].r+1-a[i]+K]--; cnt=0; for (int i=0;i<(K<<1);i++) { cnt+=delta[i]; if (cnt>s||cnt==s&&abs(i-K)

 

转载于:https://www.cnblogs.com/Gloid/p/10050900.html

你可能感兴趣的文章
Jmeter学习笔记12-监听器以及测试结果的分析
查看>>
ASP.NET Core中使用GraphQL - 第九章 在GraphQL中处理多对多关系
查看>>
Python 开发与测试 Webservice(SOAP)
查看>>
结对第一次—原型设计(文献摘要热词统计)
查看>>
selenium +python 对table的操作
查看>>
get提交时中文传值乱码的有关问题
查看>>
Node.js初体验
查看>>
百度之星 1004 Labyrinth
查看>>
crm创建报告补充导航
查看>>
几种开源分词工具的比較
查看>>
等于null和长度0有区别,null不能调用任何方法,如Tostring 和.length 源于checkbox的未勾选返回值为null,勾选的返回值为on...
查看>>
项目管理专业 知识点总结(三)
查看>>
关于Android 打开新的Activity 虚拟键盘的弹出与不弹出
查看>>
“万能数据库查询分析器”在四大软件下载网站的排行榜中均入围前10,可喜可贺...
查看>>
和菜鸟一起学linux总线驱动之smartcard操作模式和协议与参数选择
查看>>
android 开发工具(转)
查看>>
python中的uuid4
查看>>
CSS 必知的7个知识点
查看>>
asp.net mvc 生成条形码
查看>>
单调队列
查看>>