题解 | #合并表记录#

合并表记录

http://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201

#include #include using namespace std; const int N = 13390; int q[N]; int idx[N]; void quick_sort(int idx[], int l, int r) {//直接快排模板 if (l >= r) return; int i = l - 1, j = r + 1; int x = idx[(l + r) / 2]; while (i < j) { do i++; while (idx[i] < x); do j--; while (idx[j] > x); if (i < j) swap(idx[i], idx[j]); } quick_sort(idx, l, j); quick_sort(idx, j + 1, r);

} int main() { int n; int k = 0;

cin >> n;
int bi = n;


memset(q, 0, sizeof q);
while (n--) {//这里n的值在自减,快排时用到元素个数,用bi保存元素个数
    int a;
    long int b;
    cin >> a >> b;
    q[a%13331] += b;//编号相同元素的放入同一个位置,累加求和,这里采用哈辛映射,直接映射的话,会爆内存,取13331属于经验值
    idx[k++] = a;//编号存入数组,搞个快排!
}
quick_sort(idx, 0, bi - 1);
for (int i = 0; i < bi; i++) {
    if (idx[i + 1] == idx[i]) continue;
    printf("%d ", idx[i]);
    cout << q[idx[i] % 13331] << endl;
}

return 0;

}

全部评论

相关推荐

07-24 13:43
门头沟学院 Java
longerluck...:我猜说的是“你真**是个天才”
投递美团等公司10个岗位
点赞 评论 收藏
分享
嗨害嗨我来了:感谢我吧,上次我在食堂敲打了一个姓雷的,他说马上给大学生们准备hc
不卡学历的大厂有哪些?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务