**链接 : ** Here!

**思路 : ** 如果用 $STL$ 的 $map$ 或者是使用 $unordered\underline{}map$ 的话是会 $T$ 的, 所以得手写一个 $hash表$. 其实这个题题意一开始看的话还是蛮难以理解的. 但是如果理解了题意, 这道题就非常简单了.

题目样例解析 : 小 $K$ 一共采访了 $5$ 个同学, 他们反馈的结果是 $1, 1, 2, 2, 3$ . 那么, 最优解为 $9$, 下面给出一个表, 表示最优解的详细情况. 首先先给 $5$ 名同学编号 $1, 2, 3, 4, 5$ , $1$ 号同学和 $2$ 号同学都说有 $1$ 个人跟他们成绩一样, 因此可以把 $1,2$ 放到一个集合中, 发现满足要求, 不需要添加新同学($+0$). $3$ 号同学和 $4$ 号同学都说有 $2$ 个人跟他们成绩一样, 因此可以把 $3, 4$ 放到一个集合中, 发现不满足要求, 需要添加新同学($+1$). $5$ 号同学说有 $3$ 个人跟他成绩一样, 因此可以把 $5$ 放到一个集合中, 发现不满足要求, 需要添加新同学($+3$). 因此答案就是 $5 + 0 + 1 + 3 = 9$

**思路 : ** 注意数据范围!注意数据范围!!!


#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; typedef long long ll;
const int MAX_N = 10000019; ll _hash[MAX_N + 10] = {0}, _count[MAX_N + 10];
ll N, M;
ll _seed; void insert_hash(ll x) {
ll pos = (x % MAX_N);
// 处理hash冲突, 如果模一个素数的话...应该很少遇到冲突
while (_hash[pos] != x && _hash[pos] != 0) {
pos = pos + 1;
pos %= MAX_N;
}
if (_hash[pos] == 0) {
_hash[pos] = x;
}
++_count[pos];
} int main() {
scanf("%lld%lld", &N, &M);
for (int i = 0 ; i * 100 < N ; ++i) {
scanf("%lld", &_seed);
for (int j = 0 ; j < 100 ; ++j) {
insert_hash(_seed + 1);
_seed = (_seed * 109 + 107) % M;
}
}
ll ans = 0;
for (int i = 0 ; i < MAX_N ; ++i) {
if (_hash[i] == 0) continue;
ans += ((_count[i] % (_hash[i]) == 0) ? _count[i] : (ll)(_count[i] / (_hash[i]) + 1) * (ll)(_hash[i]));
}
printf("%lld\n", ans);
return 0;
}

计蒜客 成绩统计 (Hash表)的更多相关文章

  1. 计蒜客模拟赛5 D2T1 成绩统计

    又到了一年一度的新生入学季了,清华和北大的计算机系同学都参加了同一场开学考试(因为两校兄弟情谊深厚嘛,来一场联考还是很正常的). 不幸的是,正当老师要统计大家的成绩时,世界上的所有计算机全部瘫痪了. ...

  2. 爬虫acm比赛成绩(多页成绩整合在一起、获取复制不了的数据)(hihocoder、计蒜客)

    https://github.com/congmingyige/web-crawler_rank-of-competition-in-JiSuanKe-and-hihocoder 1. 计蒜客(获取复 ...

  3. 2019icpc徐州站 Cat 计蒜客 - 42540 && The Answer to the Ultimate Question of Life, The Universe, and Everything. 计蒜客 - 42545

    VJ链接:https://vjudge.net/contest/412095#problem/A Cat 计蒜客 - 42540 题意: 给你一个区间[L,R],给你现在拥有的钱S.你需要从[L,R] ...

  4. 计蒜客 作弊揭发者(string的应用)

    鉴于我市拥堵的交通状况,市政交管部门经过听证决定在道路两侧安置自动停车收费系统.当车辆驶入车位,系统会通过配有的摄像头拍摄车辆画面,通过识别车牌上的数字.字母序列识别车牌,通过连接车管所车辆信息数据库 ...

  5. 计蒜客的一道题dfs

    这是我无聊时在计蒜客发现的一道题. 题意: 蒜头君有一天闲来无事和小萌一起玩游戏,游戏的内容是这样的:他们不知道从哪里找到了N根不同长度的木棍, 看谁能猜出这些木棍一共能拼出多少个不同的不等边三角形. ...

  6. 计蒜客 等边三角形 dfs

    题目: https://www.jisuanke.com/course/2291/182238 思路: 1.dfs(int a,int b,int c,int index)//a,b,c三条边的边长, ...

  7. 计蒜客 方程的解数 dfs

    题目: https://www.jisuanke.com/course/2291/182237 思路: 来自:https://blog.csdn.net/qq_29980371/article/det ...

  8. 计蒜客 买书 dfs

    题目: https://www.jisuanke.com/course/2291/182236 思路: 递归解决,从第一本书开始,每本书都有两种选择: //index是book里面每本书价格的下标, ...

  9. 计蒜客:Entertainment Box

    Ada, Bertrand and Charles often argue over which TV shows to watch, and to avoid some of their fight ...

随机推荐

  1. 模块化开发(二)--- seaJs入门学习

    SeaJS是一个基于CMD模块定义规范实现一个模块系统加载器   [CMD规范](https://github.com/cmdjs/specification/blob/master/draft/mo ...

  2. 金典 SQL笔记 SQL语句汇总

    SELECT * FROM (SELECT ROW_NUMBER() OVER ( ORDER BY id) AS rowN,FNumber, FName,FSalary ,Fage FROM dbo ...

  3. html 转word

    今日头条发表文章 python-docx — python-docx 0.8.6 documentation http://python-docx.readthedocs.io/en/latest/

  4. Jsp内置对象和EL隐藏(内置)对象

      JSP中的内置对象一共有九个, 由于有的不太常用, 所以总是记不住, 从Sun公司的网站上找到的PDF文档, 把这一部分放在这里, 以备随时查用:     JSP九个内置对象: Implicit ...

  5. document.getElementById方法在火狐和谷歌浏览器兼容

    转自:http://www.office68.com/computer/6505.html 对于前台设计,浏览不兼容是一个很头晕的事情,为此记录下来与大家分享,并供日后自己参考. 例:有一个名为pwd ...

  6. Grunt环境搭建及使用

    jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用! 1. 前言 各位web前端开发人员,如果你现在还不知道grunt或者听说过 ...

  7. NET运用String的十八层境界

    古往今来,文本处理一直是所有编程语言的最基础的功能,也是最核心最重要的功能.任何初学者,如果想学一门编程语言,都要面对大量的文本处理.而或许有一天,即使你成了大师级的人物,也不敢说自己驾驭文本处理的能 ...

  8. Gym - 101982B 2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) B. Coprime Integers Mobius+容斥 ab间gcd(x,y)=1的对数

    题面 题意:给你 abcd(1e7),求a<=x<=b,c<=y<=d的,gcd(x,y)=1的数量 题解:经典题目,求从1的到n中选x,从1到m中选y的,gcd(x,y)=k ...

  9. Dockerfile镜像的制作

    Dockerfile镜像的制作 如果学习Docker,那么制作镜像这一步肯定不能少的,别人给你的是环境,而你自己做的才是你最终需要的东西,接下来就记录一下如何制作一个满足自己的镜像,我们使用docke ...

  10. Git学习之序

    最近在忙毕业论文的事,需要用NS2仿真,其中需要修改NS2的源码,故想藉此机会学习一下Git,方便代码的管理. 由于我在以前实习的时候接触过代码管理工具SVN,因此对代码管理的一些概念还是有的.如果从 ...