博客
关于我
D. Equalize the Remainders[模拟+set中lower_bound效率问题]
阅读量:527 次
发布时间:2019-03-08

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

题意:要求改变一个数组,使得模m后,结果为0,1,2,3,...,m-1都是n/m个,每次操作可以选择一个数+1,问至少执行多少次,并输出最终的数组

思路:模拟当前元素应该往哪个元素去改变

注意:std::set::lower_bound的复杂度为logN,而std::lower_bound的复杂度在set里是logn+n,原因大致是set是一颗平衡树,用普通的lower_bound会有额外的增量时间,具体的,不研究.

具体的,可以上stackoverflow 或者 cppreference 参考两个函数的API接差别.

#include
#define PI acos(-1.0)#define pb push_back#define F first#define S secondusing namespace std;typedef long long ll;const int N=4e5+5;const int MOD=1e9+7;int a[N],sum[N];int cnt[N];set
st;int main(void){ ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); int n,m; cin >>n >> m; for(int i=1;i<=m;i++) st.insert(i-1); const int need=n/m;// cout << need << endl; ll ans=0; for(int i=1;i<=n;i++){ cin >> a[i]; int mo=a[i]%m; int dest; if(mo>*st.rbegin()) dest=*st.begin(); else dest=*st.lower_bound(mo);// cout <
<<"~"<
<<" "<
<

转载地址:http://ufkiz.baihongyu.com/

你可能感兴趣的文章
Nginx配置如何一键生成
查看>>
Nginx配置实例-动静分离实例:搭建静态资源服务器
查看>>
Nginx配置实例-反向代理实例:根据访问的路径跳转到不同端口的服务中
查看>>
Nginx配置实例-反向代理实现浏览器请求Nginx跳转到服务器某页面
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Nginx配置自带的stub状态实现活动监控指标
查看>>
Nginx配置详解
查看>>
nginx配置详解、端口重定向和504
查看>>
Nginx配置负载均衡到后台网关集群
查看>>
Nginx配置限流,技能拉满!
查看>>
Nginx配置静态代理/静态资源映射时root与alias的区别,带前缀映射用alias
查看>>
Nginx面试三连问:Nginx如何工作?负载均衡策略有哪些?如何限流?
查看>>
nginx:/usr/src/fastdfs-nginx-module/src/common.c:21:25:致命错误:fdfs_define.h:没有那个文件或目录 #include
查看>>
Nginx:NginxConfig可视化配置工具安装
查看>>
ngModelController
查看>>
ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
查看>>
ngrok内网穿透可以实现资源共享吗?快解析更加简洁
查看>>
ngrok内网穿透可以实现资源共享吗?快解析更加简洁
查看>>
NHibernate学习[1]
查看>>