【51NOD 1675】序列变换

Xilinx Aurora 8B/10B IP核详解和仿真 Xilinx Aurora 8b/10b IP核的详解,以及使用与仿真示例,对IP核的配置和如何仿真有非常详细的说明,除了对IP核官方文档的内容进行了解析以外,还对GTX引脚的选择等比较容易混淆和不好理解的地方进行了说明。最后对IP核的仿真运行进行了STEP BY STEP 的说明,对仿真的结果也进行了简要的说明。 该文档对Xilinx FPGA和ZYNQ SOC下 AURORA 8B/10B IP核的使用提供了一个快速上手的指导。 阅读详情

Description

lyk有两序列a和b。
lyk想知道存在多少对x,y,满足以下两个条件。
1:gcd(x,y)=1
2: abx=bay

例如若a={1,1,1},b={1,1,1}。那么存在7对,因为除了x=2,y=2或x=3,y=3外都满足条件。

Solution

51NOD的40分题我一个晚上都没搞出来我是不是可以回家种田了QwQ~

很显然可以发现,我们可以设a′x=abx , b′x=bax,
这样问题就简化了很多,
先考虑不同的数分开来做,
设我们当前做到数I,
设aax=[ax=I],bbx=[bx=I]
上反演:
当前的贡献为:

∑d=1nμ(d)∗(∑i=1⌊nd⌋aaid)∗(∑i=1⌊nd⌋bbid)

这样暴力做的复杂度最差是O(n2log(n)),
我们发现,枚举一个数的所有倍数的复杂度为O(nlog(n)),
那么,枚举一个数的所有因数也不就是O(nlog(n))的吗
而且,上面的式子每个数只会访问一次,所以复杂度是可以做到O(nlog(n))的,

Code

标程用的是暴力的nn−−√求因数,跑的很慢

#include <iostream>
#include <cstdio>
#include <cstdlib>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fod(i,a,b) for(int i=a;i>=b;i--)
#define min(q,w) ((q)>(w)?(w):(q))
#define max(q,w) ((q)<(w)?(w):(q))
using namespace std;
typedef long long LL;
const int N=200500;
int read(int &n)
{
    char ch=' ';int q=0,w=1;
    for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar());
    if(ch=='-')w=-1,ch=getchar();
    for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;
}
int m,n;
LL ans;
int a1[N],b1[N],a[N],b[N];
int pr[N/5],mu[N],la[N];
bool prz[N];
int A[N],B[N][2],B0;
int A1[N],B1[N][2],B10;
int f[2][N];
int d[N];
void link(int q,int w){B[++B0][0]=A[q],A[q]=B0,B[B0][1]=w;}
void link1(int q,int w){B1[++B10][0]=A1[q],A1[q]=B10,B1[B10][1]=w;}
void JIA(int q,int I,int E)
{
    f[I][1]+=E;
    if(q>1)
    {
        if(!f[I][q])d[++d[0]]=q;
        f[I][q]+=E;
    }
    for(int i=2;i*i<=q;i++)if(q%i==0)
    {
        int t=i;
        {
            if(!f[I][t])d[++d[0]]=t;
            f[I][t]+=E;
            int t1=q/t;
            if(t1!=t)
            {
                if(!f[I][t1])d[++d[0]]=t1;
                f[I][t1]+=E;
            }
        }
    }
}
int main()
{
    int q,w;
    read(n);
    fo(i,1,n)read(a1[i]);
    fo(i,1,n)read(b1[i]);
    fo(i,1,n)link(a1[b1[i]],i);
    fo(i,1,n)link1(b1[a1[i]],i);
    mu[1]=1;
    fo(i,2,n+1)
    {
        if(!prz[i])pr[++pr[0]]=i,mu[i]=-1,la[i]=1;
        fo(j,1,pr[0])
        {
            int t=pr[j]*i;
            if(t>n+1)break;
            la[t]=i;
            prz[t]=1;
            if(i%pr[j]==0)break;
            mu[t]=-mu[i];
        }
    }
    fo(I,1,n)if(A[I]&&A1[I])
    {
        for(int i=A[I];i;i=B[i][0])JIA(B[i][1],0,1);
        d[0]=0;
        for(int i=A1[I];i;i=B1[i][0])JIA(B1[i][1],1,1);

        int sl=ans;
        d[++d[0]]=1;
        for(;d[0];d[0]--)
            ans+=(LL)mu[d[d[0]]]*(LL)f[0][d[d[0]]]*(LL)f[1][d[d[0]]];

        for(int i=A[I];i;i=B[i][0])JIA(B[i][1],0,-1);
        for(int i=A1[I];i;i=B1[i][0])JIA(B1[i][1],1,-1);
    }
    printf("%lld\n",ans);
    return 0;
}
1.3 重叠因子:希尔伯特变换趋势线(Hilbert Transform - Instantaneous Trendline)概念与Python实战 希尔伯特变换趋势线(Hilbert Transform - Instantaneous Trendline)是一种基于希尔伯特变换的高级技术分析工具。它使用数字信号处理技术来识别价格的主导周期,并生成一条平滑的趋势线。这种方法可以有效过滤市场噪音,提供更准确的趋势信号。 阅读详情

相关推荐

电磁炉线圈加热仿真全流程:用Ansys Maxwell分析涡流效应与热损耗

本文详细介绍了使用Ansys Maxwell进行电磁炉线圈加热仿真的全流程。通过构建2D轴对称涡流场模型,深入分析了高频下的涡流效应、趋肤效应与热损耗分布,为优化线圈设计、提升加热效率与均匀性提供了量化依据和实用指南。

sss66的博客 963

51nod1675-序列变换【莫比乌斯反演】

正题 题目连接:http://www.51nod.com/Challenge/Problem.html#problemId=1675 题目大意 给出两个长度为nnn的序列a,ba,ba,b,求有多少对x,yx,yx,y满足 gcd(x,y)=1且abx=baygcd(x,y)=1且a_{b_x}=b_{a_y}gcd(x,y)=1且abx​​=bay​​ 1≤n≤105,1≤ai,bi≤n1\leq n\leq 10^5,1\leq a_i,b_i\leq n1≤n≤105,1≤ai​,bi​≤n 解题

QuantAsk 416

2022(一等奖)B360基于Arcpy与SVM的滑坡易发性评价

此外,在ArcGIS平台下,“易发性图预测(多进程)”工具的运行时间为2h 48m 3s,“易发性图预测(单进程)”工具的运行时间为5h 19m 27s,运行时间缩短了近2h 31m 24s,运行效率提高了47.39%。在ArcGIS Pro平台下,“易发性图预测(多进程)”工具的运行时间为20m 12s,“易发性图预测(单进程)”工具的运行时间为1h 26m 47s,将运行时间缩短了近1h 6m 35s,运行效率提高了76.72%。滑坡的发生受各种影响因素的影响,目前,影响因素的选择没有一个统一的标准。

2301_77310370的博客 1467

51nod 1675 序列变换(莫比乌斯反演)

1675 序列变换 题目来源: 原创 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 lyk有两序列a和b。 lyk想知道存在多少对x,y,满足以下两个条件。 1:gcd(x,y)=1。 2: abx = bay 。 例如若a={1,1,1},b={1,1,1}。那么存在7

信仰.的博客 713

Marin说PCB之LPDDR5的布线注意事项--03

这个规则中是把每个字节中的WCK to RDQS 以及DM / DQ to WCK等长规则都加到了DM / DQ这个等长规则中去了,因为芯片手册上的设计要求中的DM / DQ这个group的等长误差是+-50MIL, WCK to RDQS的等长group的规则是62.5MIL,DM / DQ to WCK等长group的规则是相对松一些是150MIL。其实上面的等长规则还是建少了一些的,例如手册上要求的每个channel的WCK0:1,WCK2:3等长误差在+-488MIL,这个规则建议还是补上去吧。

weixin_45223454的博客 1229

用HFSS复现经典论文:从零搭建带孔缝屏蔽箱体模型(附完整建模步骤与避坑指南)

本文详细介绍了如何使用HFSS电磁仿真软件复现经典论文中的带孔缝屏蔽箱体模型,包括从零搭建模型、设置激励与边界条件、求解优化及结果验证的全过程。特别提供了建模中的布尔运算陷阱、激励设置技巧等实操难点的避坑指南,帮助工程师和学生深入理解电磁屏蔽效能研究。

weixin_30530339的博客 157

51nod 1675 序列变换 莫比乌斯反演

题意lyk有两序列a和b。 lyk想知道存在多少对x,y,满足以下两个条件。 1:gcd(x,y)=1。 2: abx=baya_{bx} = b_{ay} 。 例如若a={1,1,1},b={1,1,1}。那么存在7对,因为除了x=2,y=2或x=3,y=3外都满足条件。 n<=100000,1<=a[i],b[i]<=n分析一开始没什么思路,后来看到评论有人说用反演可做,于是就会了。

beginend 576

基于紫光展锐平台的音频调用到hal层逻辑

基于紫光展锐平台的音频调用到hal层逻辑 1、数据流程图 AudioPolicyService和AudioFlinger的创建: 这两个服务都在audioserver中启动,文件路径: frameworks/av/media/audioserver/main_audioserver.cpp 从AudioFlinger和AudioPolicyService的创建,到output的打开,以及AudioFlinger开始往底层写入数据的具体流程如下图: #mermaid-svg-kjHL4XWwkQXN6NdA

weixin_55053963的博客 1355

51Nod-1675-序列变换

ACM模版描述题解最开始拿到这道题,想半天只想到了暴力解题的思路,并不断尝试优化,但是始终无法AC,于是乎,百度了一下题解,发现需要用到一个我没有用过的数论知识——莫比乌斯反演,看来需要好好看看这个东西了。具体的题解官方给出了,十分详细,详细的我并不能完全悟透,还是看看代码吧。这里有两个代码,一个是我的智商所能达到的暴力解题思路(代码 One),另一个则是利用莫比乌斯反演得到的超牛逼的解法儿(代码

逐梦者 659

QCC304x系列开发教程(实战篇)之5.2 QCC3040之提示音

earbud_init.c中,初始化table中UiPrompts_Init /*! \brief Table of initialisation functions */ static const init_table_entry_t appInitTable[] = { ......... {UiPrompts_Init, 0, NULL}, ......... } ui_prompts.c中是提示音音处理的主要逻辑和配置源文件 函数static void uiPro...

心跳包的博客 2393

Spine骨骼动画查看器 - Skeleton Viewer

骨骼动画是现代游戏和动画制作中常用的技术之一。Spine骨骼动画查看器(Skeleton Viewer)是一个官方提供的工具,用于查看和调试Spine骨骼动画。本文将介绍Skeleton Viewer的功能和使用方法,并提供相应的源代码示例。通过Skeleton Viewer,开发者可以直观地查看和调试Spine骨骼动画,包括骨骼结构、动画播放和事件触发等。这有助于提高骨骼动画的质量和效果,并加速开发过程。以上代码演示了如何使用Skeleton Viewer查看和播放Spine骨骼动画。

HsvvDatabase的博客 3461

51nod 1675 序列变换 莫比乌斯反演(第二种形式)

传送门:51nod 1675 题意:中文题。 思路:明明很像多校的一个题,还是简化版,而我愣是没想起来用莫比乌斯反演。。 这题用的是莫比乌斯反演的第二种转化形式: 设f[i]为最大公因数为i时的计数 F[i]为公因数包含i的时候的计数 显然满足第一个式子,因此我们就可以转化成二个式子求出f[1]. 代码: #include #include #define MAXN 100

WA是一笔财富 592

基于机器学习的网络安全态势感知模型研究与实现

基于机器学习的网络安全态势感知模型研究与实现 1. 背景介绍 1.1 网络安全态势感知的重要性 在当今互联网时代,网络安全已经成为一个至关重要的话题。随着网络攻击手段的不断升级和演变,传统的被动防御方式已经难以满足日益

AI大模型应用之禅 1582

51nod 1675 序列变换

莫比乌斯反演的题目。 设 f(k)f(k)为满足abx=baya_{b_x}=b_{a_y}的情况下,gcd(x,y)=kgcd(x,y)=k的数量。 F(k)F(k)为满足abx=baya_{b_x}=b_{a_y}的情况下,gcd(x,y)=k的倍数gcd(x,y)=k的倍数的数量。 则 F(k)=∑k|df(d)F(k)=\sum_{k|d} f(d) 由莫比乌斯反演第二种形式,得

月阁 394

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

51nod1675 序列变换

link 题意: 给定长为n的序列a,b,下标从1开始,问有多少对x,y满足gcd(x,y)=1且$a_{b_x}=b_{a_y}$? $n\leq 10^5.$ 题解: $a_{b_x}$和$b_{a_y}$是个幌子,定义成$A_x$和$B_y$就好了,没有什么影响。 考虑倍数反演:记f(i)表示i=gcd(x,y)的方案数;g(i)表示i|gcd(x,y)的方案数。g(...

weixin_34023863的博客 137

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

51Nod - 1675 序列变换 mobius反演

题意: lyk有两序列a和b。 lyk想知道存在多少对x,y,满足以下两个条件。 1:gcd(x,y)=1。 2: abx=bay a_{b_x} = b_{a_y} 。例如若a={1,1,1},b={1,1,1}。那么存在7对,因为除了x=2,y=2或x=3,y=3外都满足条件。 Input 第一行一个数n(1<=n<=100000)。 接下来一行n个数,表示ai(1<=a

Marcus-Bao的个人主页 796

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

51nod 1675 序列变换 (简单莫比乌斯)

lyk有两序列a和b。 lyk想知道存在多少对x,y,满足以下两个条件。 1:gcd(x,y)=1。 2: abxabx = baybay 。例如若a={1,1,1},b={1,1,1}。那么存在7对,因为除了x=2,y=2或x=3,y=3外都满足条件。 Input 第一行一个数n(1<=n<=100000)。 接下来一行n个数,表示ai(1<=ai<=n)。 接下来一行n个数

Hallelujah520的博客 577

莫比乌斯反演专题(进阶篇)

51nod 1675 序列变换 我们构造两个新的数列A,BA,BA,B Ax=abx,Bx=baxA_x=a_{b_x},B_x=b_{a_x}Ax​=abx​​,Bx​=bax​​ 则题目给的条件等价于 gcd(i,j)==1,Ai=Bjgcd(i,j)==1,A_i=B_jgcd(i,j)==1,Ai​=Bj​的i,ji,ji,j个数 我们考虑设f(x)f(x)f(x)表示gcd(i,j)==x,Ai=Bjgcd(i,j)==x,A_i=B_jgcd(i,j)==x,Ai​=Bj​的i,ji,ji,j个

jwg2732的专栏 514

51nod 序列变换 [容斥原理+莫比乌斯函数]【数论+组合数学】

题目连接:http://www.51nod.com/contest/problem.html#!problemId=1675 ——————————————————————————————————-. 序列变换 alpq654321 (命题人) 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 lyk有两序列a和b。 lyk想知道存在多少对x,y,满足以下两个条件。 1

Tabris的博客 1168

NOI数学:莫比乌斯变换

P5491 【模板】二次剩余 【模板】二次剩余 - 洛谷 P1082 [NOIP2012 提高组] 同余方程 [NOIP2012 提高组] 同余方程 - 洛谷 【模板题】Luogu-P4717 快速莫比乌斯/沃尔什变换 (FMT/FWT) 【模板题】Luogu-P4717 快速莫比乌斯/沃尔什变换 (FMT/FWT)_hehepig的博客-优快云博客 状压+FMT--luoguP4221 [WC2018]州区划分 状压+FMT--luoguP4221 [WC2018]州区划分_继

青少年趣味编程 698

51nod没过的那题

#include #include #include using namespace std; map > Lu; int a[100001], b[100001]; int main(){ int n; while(cin >> n){ int x = n; for(int i = 1; i <= n; i++){ c

lunaArcher的博客 385

51nod进阶计划 20/20

目标 又要来51nod滑水啦 主要是来做点数学题 看看做完20题以后可以到哪里吧 现在16题,才3480分。。感觉好少啊。。 希望这20题可以贡献多一点吧。。 由于数学居多,所以会非常劣质 题表 1675 序列变换 很棒的一个题啊,用的是这一个 我们先求出F(i)F(i)F(i),表示左右gcd是i的倍数的和,然后再用上面这个形式变回去就可以了 1179 最大...

OZY的博客 614

51Nod 1514美妙的序列

生成函数+多项式求逆。。。。。。套路:一般都是一个很简单的题目,输入不超过3个数字的那种,然后生成函数然后求逆。。。。。。。。当模板题吧。ACcode:#include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;cctype&gt; #include&lt;algorithm&gt; #define maxn 400005 using na...

Freopen的博客 483

4540: [Hnoi2016]序列

4540: [Hnoi2016]序列 Time Limit: 20 Sec  Memory Limit: 512 MB Submit: 749  Solved: 374 [Submit][Status][Discuss] Description   给定长度为n的序列:a1,a2,…,an,记为a[1:n]。类似地,a[l:r](1≤l≤r≤N)是指序列:al,al+1,…,ar-

CRZbulabula的博客 534

【数论】Min_25筛

听说这玩意玩爆洲阁筛??? Min_25筛可以解决一类积性函数求和问题, 筛质数 假设我们现在要对n以内的质数求和, 先线筛出小于n−−√n\sqrt n的所有质数,设第i个为pipip_i,共有p0p0p0个质数,pspsps为p的前缀和, 设函数:S(x,j)=∑xi=2i∗[i为质数&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;或&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;

5247

【二次剩余】Cipolla(模意义下开根)

在学多项式求逆的时候顺便就推了一下多项式的开根, 结果毫无疑问的要用到二项式剩余,顺路就学了一下,二项式剩余给出n,Pn,P(P为奇质数),如果存在一个aa使得a2≡n(modP)a^2\equiv n \pmod{P} ,那么n在模P的意义下就是二项式剩余,CTY大佬的方法因为这个问题是由二项式开方引起的,自然,模数有已知原根rr,那么: r2Indr(a)≡rIndr(n)(modP)r^{

3894
上一篇: 【JZOJ 5296】【清华集训2017模拟】Sequence
下一篇: 【JZOJ 5358】【NOIP2017提高A组模拟9.12】BBQ
HOWARLI
博客等级 码龄11年 109粉丝 378原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值