首页 > 其他分享 >质因数分解+状态压缩求区间积

质因数分解+状态压缩求区间积

时间:2024-11-26 19:34:00浏览次数:8  
标签:pre typedef 因数分解 int 压缩 mp 区间 ll

例题https://www.luogu.com.cn/problem/P10724

#include<bits/stdc++.h>
#define endl '\n'
#define lowbit(x) (x&-x)
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
const double pi=acos(-1);

int num[15]={2,3,5,7,11,13,17,19,23,29};
int n;

ll ck(int x){
    ll res=0;
    for(int i=0;i<10;i++){
        if(num[i]>x) break;
        while(x%num[i]==0){
            res^=(1<<i);
            x/=num[i];
        }
    }
    return res;
}

void solve(){
    cin>>n;
    vector<ll> pre(n+1);
    map<ll,ll> mp;
    ll ans=0;
    mp[0]=1;
    for(int i=1;i<=n;i++){
        cin>>pre[i];
        pre[i]=ck(pre[i])^pre[i-1];
        ans+=mp[pre[i]];
        mp[pre[i]]++;
    }
    cout<<ans<<endl;
}

signed main(){
    ios::sync_with_stdio(false);cin.tie(nullptr);
    int t=1;
    //cin>>t;
    while(t--) solve();
    return 0;
}

标签:pre,typedef,因数分解,int,压缩,mp,区间,ll
From: https://www.cnblogs.com/TaopiTTT/p/18570830

相关文章

  • C++ 1112 超标区间 (乙级)
    上图是用某科学研究中采集的数据绘制成的折线图,其中红色横线表示正常数据的阈值(在此图阈值是25)。你的任务就是把超出阈值的非正常数据所在的区间找出来。例如上图中横轴[3,5]区间中的3个数据点超标,横轴上点9(可以表示为区间[9,9])对应的数据点也超标。输入格式:输......
  • cryptography与zlib系列:数据压缩与加密
    cryptography与zlib系列:数据压缩与加密这里采用对称加密方法进行加密,首先创建一个Fernet加密器,这里的key,通过密钥派生函数与设定的密码进行创建,具有更强的保密功能。创建Fernet加密器函数importosfrombase64importurlsafe_b64encodefromcryptography.fernetimpor......
  • Gzipped 压缩
    Gzipped压缩bilibili视频Gzip压缩Gzip的动态压缩和静态压缩是两种不同的压缩方式,它们在实际应用中有各自的特点和适用场景。一、定义与原理动态压缩:动态压缩是指服务器在响应客户端请求时,实时地对文件进行压缩,并将压缩后的数据发送给客户端。在Nginx等Web服务器中,动态压......
  • 代码随想录之滑动窗口、螺旋矩阵、区间和、开发商土地;Java之数据结构、集合源码、File
    代码随想录滑动窗口1、如果给两个字符串s和t,判断t是否为s的子串或是否s包含t的排列,用t的长度固定滑动窗口的大小,初始化将s的前t.length()个长度的字符情况存储在int数组中,int数组的大小由字符串中字符的类型决定,最大为ascii表的长度,为128。  每次循环滑动窗口向前移一位,即lef......
  • 多维数组与特殊矩阵:存储与压缩
    多维数组与特殊矩阵:存储与压缩一、多维数组的存储(一)基本概念多维数组是线性表的推广,例如二维数组可以看作是元素为一维数组的线性表,三维数组可以看作是元素为二维数组的线性表,以此类推。在内存中,多维数组需要按照一定的顺序进行存储,常见的存储方式有行优先存储和列优先存......
  • 洛谷P1253 扶苏的问题(区间加值,区间修改,求区间max)
    题目Description给定一个长度为 nn 的序列 aa,要求支持如下三个操作:给定区间 [l,r][l,r],将区间内每个数都修改为 xx。给定区间 [l,r][l,r],将区间内每个数都加上 xx。给定区间 [l,r][l,r],求区间内的最大值。Input第一行是两个整数,依次表示序列的长度 nn 和操......
  • 632.最小区间 全网最详细python3解答 分析 代码 Python解决方案:最小区间问题
    Python解决方案:最小区间问题题目背景在这道题中,给定了k个非递减排列的整数列表。目标是找到一个最小区间[a,b],使得每个列表中至少有一个数包含在该区间内。为了定义“最小区间”,我们用以下规则来比较区间[a,b]和[c,d]:如果b-a<d-c,则[a,b]更小。如果......
  • 动态规划(一)——基本工具(上)第三章节之区间DP
    问题导入我们来看一个最最简单的区间DP问题:求每个区间[i…j]......
  • CTF-压缩包总结——更新中
    1.十六进制分析(伪加密以及注释提示)一个压缩包可以有多个数据区和目录区压缩源文件数据区:010Editor中变量名称为structZIPFILERECORDrecord[]504B0304:这是头文件标记1400:解压文件所需pkware版本0000:全局方式位标记(有无加密)XXXX:压缩方式XXXX:最后修改文件......
  • Mac开发_制作.dmg压缩镜像文件
    1创建一个文件夹2打开终端进入此文件夹cd/Users/gc/Desktop/GC_Codes/打包dmg专用/Ocer_1.0.0_2024112318003使用命令生成application替身,执行以下命令ln-s/Applications/Applications4.app文件放入文件夹5打开磁盘工具:6新建映像->选择基于文件夹新建映......