#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
pair<int,int>a[];
bool cmp(pair<int,int>a,pair<int,int>b){
if(a.second!=b.second)
return a.second>b.second;//按照时间从大到小排序
return a.first<b.first;
}
map<int,int>fa;
int find_(int x){
if(!fa[x])
return x;
return fa[x]=find_(fa[x]);
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
cin>>n;
for(int i=;i<=n;++i)
cin>>a[i].first;
for(int i=;i<=n;++i)
cin>>a[i].second;
sort(a+,a++n,cmp);
long long ans=;
for(int i=;i<=n;++i){//按照个数从小到大排序,可能会让个数小而时间多的不停++,而原本个数多时间少的却加的不多,导致答案不对,先搞时间多的代价大的才是正解
int x=find_(a[i].first);
if(a[i].first==x){//当前个数唯一
int y=find_(a[i].first+);//把它合并到+1的位置
fa[x]=y;
}
else{//当前已有,放到最近一个比它大且没别选中的位置
ans+=1ll*(x-a[i].first)*a[i].second;//更新贡献
int y=find_(x+);//合并到+1的位置(原本的位置更新后被占了)
fa[x]=y;
}
}
cout<<ans;
return ;
}

最新文章

  1. 在C#里面给PPT添加注释
  2. 使用ASP.NET MVC局部视图避免JS拼接HTML,编写易于维护的HTML页面
  3. Ionic实战四:ionic 即时通讯_ionic仿雅虎邮箱
  4. How to take partial screenshot with Selenium WebDriver in python
  5. tcp protocol number
  6. Linux C学习笔记06--Tlist使用(编程工具篇)
  7. jenkins 插件Copy Artifacts + Artifacts to copy
  8. JSON介绍与JavaScript解析
  9. 【hadoop2.6.0】MapReduce原理
  10. [iOS UI进阶 - 5.0] 手势解锁Demo
  11. LightOJ 1236 Pairs Forming LCM 合数分解
  12. Entity Framework数据库迁移
  13. Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的适用版本
  14. 易Android登录Demo
  15. IOS学习【前言】
  16. weex 环境搭建
  17. Web前端学习——HTML
  18. 详细介绍MySQL/MariaDB的锁
  19. Java集合框架——jdk 1.8 ArrayList 源码解析
  20. Linux下部署Samba服务环境的操作记录

热门文章

  1. setter&amp;getter
  2. Spark调优指南
  3. Linux 文件(持续更新)
  4. 【Flutter】环境搭建以及HelloWorld创建
  5. JavaSE学习笔记(6)---异常
  6. Excel创建下拉列表限制数据有效性
  7. Java8新特性一览表
  8. MacOs使用CleanMyMac X清除可清除空间
  9. hdu 1005 Number Sequence(循环节)
  10. 订阅消息---由于微信小程序取消模板消息,限只能开发订阅消息