题目链接:

https://codeforces.com/contest/1490/problem/F


本来是都不怎么用unordered_map的,怕卡常就用了。然而cf确实不卡常,但是卡哈希。

一般来说卡哈希用双哈希就卡不了了。

这里提供一个cf大佬的文章防止卡哈希

博客地址:http://codeforces.com/blog/entry/62393%E3%80%82

需要添加:#include<chrono>

struct custom_hash {static uint64_t splitmix64(uint64_t x) {// http://xorshift.di.unimi.it/splitmix64.cx += 0x9e3779b97f4a7c15;x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;x = (x ^ (x >> 27)) * 0x94d049bb133111eb;return x ^ (x >> 31);}size_t operator()(uint64_t x) const {static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count();return splitmix64(x + FIXED_RANDOM);}
};

200+ms正常通过

#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<map>
#include<chrono>
#include<set>
#include<cstdio>
#include<unordered_map>
#include<algorithm>
#define debug(a) cout<<#a<<"="<<a<<endl;
using namespace std;
const int maxn=2e5+1000;
typedef long long LL;
inline LL read(){LL x=0,f=1;char ch=getchar();   while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;}
vector<LL>v;
struct custom_hash {static uint64_t splitmix64(uint64_t x) {// http://xorshift.di.unimi.it/splitmix64.cx += 0x9e3779b97f4a7c15;x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;x = (x ^ (x >> 27)) * 0x94d049bb133111eb;return x ^ (x >> 31);}size_t operator()(uint64_t x) const {static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count();return splitmix64(x + FIXED_RANDOM);}
};
unordered_map<LL,LL,custom_hash>map1;
LL a[maxn];
LL solve(LL n){LL ans=0;for(LL i=1;i<=n;i++){if(!map1.count(a[i])) continue;else{v.push_back(map1[a[i]]);ans+=map1[a[i]];map1[a[i]]=0;}}LL k=1e18;LL sum=0;sort(v.begin(),v.end());for(LL i=0;i<v.size();i++){LL j1=v[i];LL k1=j1;ans-=j1;while(j1==v[i+1]){sum-=j1;i++;k1+=j1;}LL haha=sum+ans-j1*(v.size()-1-i);k=min(k,haha);sum+=k1;}return k;
}
int main(void)
{cin.tie(0);std::ios::sync_with_stdio(false);LL t;cin>>t;while(t--){v.clear();map1.clear();LL n;cin>>n;for(LL i=0;i<n+100;i++) a[i]=0;for(LL i=1;i<=n;i++){cin>>a[i];}for(LL i=1;i<=n;i++){map1[a[i]]++;}LL ans=solve(n);cout<<ans<<"\n";}
return 0;
}

防cf上unordered_map被卡相关推荐

  1. 安防视频上云的趋势、痛点及华为云视频接入服务探索及实践

    随着视频资源与内容在互联网所占比重不断提升,相应的在视频资源利用水平以及不断提高的业务和产品需求之间的矛盾也会愈加突出.本文来自华为云视频接入服务产品经理齐彦昆在线上分享中的演讲,结合在视频接入服务的 ...

  2. AI技术在安防市场上的应用主要还存有几个挑战

    概括而言,AI技术在安防市场上的应用主要还存有几个挑战: 1.认知问题相较感知问题较难解决.感知问题可以用神经网络函数逼近,相比之下认知问题解决起来比较棘手,比如如何教会机器辨识一把椅子. 2.在弱线 ...

  3. linux 将img写入硬盘,如何使用Etcher轻松将.img写入Mac上的SD卡

    如果需要从Mac将.img图像文件刻录到SD卡则可能已经发现使用默认的GUI应用程序(例如"磁盘工具")没有特别明显的方法不过不用担心存在一个称为Etcher的出色的免费第三方解决 ...

  4. 程序员如何从技术上“开挂”魔卡手游? | 技术头条

    作者 | 孙景卫 责编 | 郭   芮 如何在短时间内成为Python工程师? https://edu.csdn.net/topic/python115?utm_source=csdn_bw 最近流行 ...

  5. 【钉钉考勤打卡】--上传打卡记录

    有带毫秒的时间转时间戳请给我留言,我试了好多种还未成功! 一.钉钉2021年3月份新增了上传打卡记录的接口,这样就方便集成考勤系统.当然,也方便很多管理员"干坏事了"! 去网站上获 ...

  6. 如何在MTK6757 Android N上禁用SIM卡

    如何在MTK6757 AndroidN上禁用SIM卡 通过在设置中打开和关闭SIM卡开关,抓取系统log,抓取到关机时有关闭SIM卡的操作 然后找到packages\services\Telephon ...

  7. 智能安防赛道上,云从科技是展翅高飞还是落地成盒

    不久前,一幅由人工智能所作的<埃德蒙·贝拉米>画像在纽约佳士得以43.25万美元(约为300万人民币)的高价拍出,拍出价格远高与同场的毕加索作品.此次事件的爆出,在给人们带来"一 ...

  8. S3C2440上MMC/SD卡驱动分析(二)

    下面的文章主要是转载的,先记录下自己的经验. MMC/SD驱动有两种模式:FIFO和DMA.在代码中两种方式都予以了实现,在make menuconfig时候,可以选择是使用fifo方式还是DMA方式 ...

  9. S3C2440上MMC/SD卡驱动实例开发讲解(二)

    嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤.一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便.如有错误之处,谢请指正. 共享资源,欢迎转载:http:/ ...

最新文章

  1. material-ui_满足Material-UI —您最喜欢的新用户界面库
  2. 网络工程与机房等精华指引贴
  3. _Neofetch – 通过终端显示Linux系统信息
  4. npm install是什么命令_了解npm
  5. BZOJ 3244: [Noi2013]树的计数
  6. SCU 3133(博弈)
  7. 常见的BIOS硬盘故障现象及急救措施
  8. Linux下打印调试管理
  9. html5判断屏幕锁屏,js实现自动锁屏功能
  10. 专属微信二维码python制作_如何通过一行代码制作个人专属动态微信二维码?
  11. AMiner订阅小程序上线,随时随地掌握最新科研成果
  12. 【图文教程】注册Oculus开发者账号
  13. 消息中间件MQ及ActiveMQ介绍
  14. Augustus操作指南
  15. c#dataview遍历_C# DataView.Find方法代码示例
  16. 2019/2/3摄氏一华氏温度转换表
  17. React:安装配置使用scss
  18. CVPR2016 论文快讯:人脸专题
  19. Prometheus-部署grafana及模板展示
  20. centos7 yum安装yarn

热门文章

  1. czh的开发笔记 - 微信朋友圈 - 模拟操作
  2. 现在流行的服务器操作系统,现在主流服务器操作系统
  3. 继承Thread类实现多线程简单实例
  4. CDD数据库文件制作(四)——Services(0x10)
  5. 提升网站排名,必备百度SEO诊断工具技巧!
  6. ArrayDeque常用的方法总结
  7. 翻译Houdini官方文档:HQueue总览
  8. “放下屠刀,立地成佛”
  9. Grafana简介及使用
  10. Java之super用法