首页 > 其他分享 >洛谷P3396 哈希冲突

洛谷P3396 哈希冲突

时间:2023-12-11 22:22:23浏览次数:34  
标签:ch 洛谷 哈希 P3396 include define

根号分治模板题

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <cstring>
#include <cmath>
#define RED "\033[0;32;31m"
#define NONE "\033[m"
#define R(x) x = read()
#define For(i, j, n) for (int i = j; i <= n; ++i)
using namespace std;
typedef long long ll;

const int N = 150005, M = 390;
inline int read()
{
    int x = 0;
    char ch = getchar();
    while (ch < '0' || ch > '9')
        ch = getchar();
    while (ch >= '0' && ch <= '9')
        x = x * 10 + ch - '0', ch = getchar();
    return x;
}

int n, f[N][M], a[N], m;
char c[5];

int main()
{
    R(n);
    R(m);
    int mn = sqrt(n);
    For(i, 1, n)
        R(a[i]);
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= mn; j++)
            f[j][i % j] += a[i];
    int x, y;
    while (m--)
    {
        scanf("%s", c);
        R(x);
        R(y);
        if (c[0] == 'A')
        {
            if (x <= mn)
                printf("%d\n", f[x][y]);
            else
            {
                int sum = 0;
                for (int i = y; i <= n; i += x)
                    sum += a[i];
                printf("%d\n", sum);
            }
        }
        else
        {
            for (int i = 1; i <= mn; i++) // 更新第x个数所涉及到的所有的池
                f[i][x % i] += y - a[x];
            a[x] = y;
        }
    }
    return 0;
}

 

标签:ch,洛谷,哈希,P3396,include,define
From: https://www.cnblogs.com/smartljy/p/17895740.html

相关文章

  • 算法--哈希表
    哈希表利用空间换时间当我们要快速判断一个元素是否出现在集合里的时候,就需要考虑哈希表。哈希表一般会选择三种数据结构,分别是:数组、set(集合)、map(映射)。数组就是简单的哈希表,但是其大小不能无限开辟优先使用unordered_set(因为其查找和增删效率最优);若需要集合有序,则用set;若不......
  • 洛谷P4199 万径人踪灭
    题目链接考虑容斥:拿满足条件\(1\)的方案数减去满足条件\(1\)但不满足条件\(2\)的方案数就是答案。满足条件\(1\)但不满足条件\(2\)的方案可以用\(\text{Manacher}\)算法\(O(n)\)计算。对于满足条件\(1\)的总方案数,我们记\(c_i\)表示以\(i\)位置为对称轴时,......
  • 【JavaSE】数据结构-哈希表(HashSet/HashMap底层哈希表详解,源码分析)
    哈希表结构JDK8版本之前:数组+链表JDK8版本及之后:数组+链表+红黑树哈希表HashMapput()方法的添加流程创建HashSet集合时,构造方法中自动创建HashMap集合;HashMap空参构造方法会创建一个默认长度为16,默认加载因子为0.75的数组,数组名为table(tips:实际上,HashSet对象创建后,第......
  • 字符串哈希
    单哈希且用自然溢出代替取模操作,常数小但是容易被卡单字符串区间内比较typedefunsignedlonglongULL;constintN=100010,P=131;intn,m;charstr[N];ULLh[N],p[N];ULLget(intl,intr){returnh[r]-h[l-1]*p[r-l+1];}intmain(){......
  • 「杂题乱刷」洛谷P1216
    题目链接一道dp的入门题。\(O(2^n)\):考虑直接爆搜,可以考虑到所有情况。\(O(n^2)\):考虑\(dp\),设\(dp_{i,j}\)代表到达第\(i\)层第\(j\)个数所能达到的最大值。状态转移方程为\(dp_{i,j}=a_{i,j}+\max(dp_{i-1,j-1},dp_{i-1,j})\)。最终答案就是\(\max(dp_{n,1},d......
  • 【洛谷 P2670】[NOIP2015 普及组] 扫雷游戏 题解(模拟)
    [NOIP2015普及组]扫雷游戏题目背景NOIP2015普及组T2题目描述扫雷游戏是一款十分经典的单机小游戏。在行列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的......
  • 【LGR-168-Div.4】洛谷入门赛 #18
    打表过样例题目描述很不幸,你遇到了不负责任的出题人。在某道试题里,共有\(N\)个测试点,组成了\(k\)个Subtask,第\(i\)个Subtask包含\(p_i\)个测试点,第\(j\)个测试点的编号为\(w_{i,j}\)。请注意,一个测试点可能属于多个Subtask。Subtask每个Subtask包含多个测......
  • 「杂题乱刷」洛谷P1544
    题目链接数字三角形的变形。直接在原来的基础上加个判断\(3\)倍的就行了。参考代码:点击查看代码#include<bits/stdc++.h>usingnamespacestd;longlongn,m,ans=-1e18,a[110][110],dp[110][110][5010];#definelc(x)x<<1#definerc(x)x<<1|1#definelowbit(x)x&-......
  • 「杂题乱刷」洛谷P2285
    题目传送门一道小清新动态规划题,直接设\(dp[i]\)表示前\(i\)个鼹鼠最多能打到几个,然后状态转移方程也很好想了。参考代码:点击查看代码#include<bits/stdc++.h>usingnamespacestd;longlongn,m,ans,dp[10010],x[10010],y[10010],times[10010];#definelowbit(x)x&-......
  • 【OpenSSL】哈希、非对称加密和对称加密函数使用
    1.哈希1.1md5的使用头文件#include<openssl/md5.h>#include<openssl/sha.h>MD5散列值的长度#defineMD5_DIGEST_LENGTH16//根据这个分配一块空内存保存散列值初始化MD5->给MD5传入运算的数据(可以多次传入)->计算MD5#defineMD5_DIGEST_LENGTH1......