HDU 4675 - GCD of Sequence

KV Cache 详解:新手也能理解的 LLM 推理加速技巧 (Autoregressive)生成的,即每次生成一个 token,然后将其作为输入继续生成下一个 token。:如果序列太长,超过了 KV Cache 的存储限制,就需要丢弃最早的 tokens(类似滑动窗口)。时,每次只会生成一个新 token,然后再把这个 token 作为输入继续生成下一个 token。,只缓存计算过的 K,VK, V,每次只计算新 token 的 K,VK, V,从而提升推理效率。:如果输入的 prompt 发生变化,之前的 KV Cache 不能复用,必须重新计算。 阅读详情

解题思路参考:http://www.cnblogs.com/kuangbin/archive/2013/08/13/3255943.html

如果gcd(b[1...n])=d,那么b[1...n]中每个b[i]都应是d的倍数,

而b[1...n]是从a[1...n]修改k个数进而变过来的,

那么,假设a[1...n]中有cnt个a[i]本来就是d的倍数,

那么首先 ( n-cnt )个不是d的倍数的必须修改,

然后,剩下的 cnt 个本来就是d的倍数的a[i]中,我们再挑选 k - ( n - cnt ) 个修改(k个要修改的数,已经修改了 n-cnt 个),就可以满足条件,

而在小于m的情况下,d的倍数有 l = floor(m/d) 个,

所以

又


所以



接下来是关于逆元的知识:http://www.cnblogs.com/linyujun/p/5194184.html


#include<cstdio>
#include<cstring>
#define MOD 1000000007
#define MAX 300005
using namespace std;
typedef long long ll;
ll C[MAX],ans[MAX];
int a[MAX],b[MAX],num[MAX];
ll pow(ll a,ll b){
	ll r=1,base=a%MOD;
	while(b){
		if(b&1) r*=base , r%=MOD;
		base*=base;
		base%=MOD;
		b>>=1;
	}
	return r;
}
ll inv(ll a,ll p){return pow(a, p-2);}//费马求a关于b的逆元
int main()
{
	int n,m,k;
    while(scanf("%d%d%d",&n,&m,&k)!=EOF)
    {
        memset(num,0,sizeof(num));
        C[n-k]=1;//当cnt=n-k时,C[cnt][n-k]=C[n-k][n-k]=1 
        for(int i = n-k+1;i <= n;i++)//当cnt = n-k+1 to n 时,计算C[cnt][n-k]
        {
            C[i] = C[i-1]*i%MOD*inv(i-(n-k),MOD)%MOD;
        }
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
            num[a[i]]++;
        }
        for(int d=m;d>=1;d--)
        {
            int cnt=0;
            ll accu=0;
            for(int times=1;times * d <= m;times++)
            {
                cnt+=num[times * d];
                if(times > 1) accu = (accu + ans[times *d])%MOD;
            }
            int l=m/d;
            if(l==1)
            {
                if(k - (n - cnt) == 0) ans[d]=1;//如果正好有k个不是d的倍数 
                else ans[d]=0;//如果k>(n-cnt),那么剩下的就要在cnt里面找数进行修改,但是这时l==1,因此修改不了;或者k<(n-cnt),这时修改了n-cnt个数,已经超过了k个,不满足 
            }
            else
            {
                if(k < n - cnt) ans[d]=0;
                else
                {
                    ll ans_tmp=1;
                    ans_tmp=ans_tmp*C[cnt]%MOD;
                    ans_tmp=ans_tmp*pow(l-1,k-n+cnt)%MOD;
                    ans_tmp=ans_tmp*pow(l,n-cnt)%MOD;
                    ans[d]=(ans_tmp-accu+MOD)%MOD;
                }
            }
        }
        for(int d=1;d<=m;d++)
        {
            if(d>1) printf(" ");
            printf("%I64d",ans[d]);
        }
        printf("\n");
    }
}



人形机器人骨骼材料选型实战:从铝合金到碳纤维的5种方案对比 本文深入探讨人形机器人骨骼材料的选型策略,对比铝合金、镁合金、钛合金、碳纤维复合材料及3D打印材料等5种方案的性能优劣。通过建立强度-重量比、疲劳寿命等核心评价维度,结合具体应用场景,提供科学的材料决策方法论,助力开发者优化机器人结构设计,实现性能与成本的平衡。 阅读详情

相关推荐

C++ 类

本文介绍了C++中类的核心概念和使用方法。

weixin_54859557的博客 1016

HDU4675-GCD of Sequence(数论+组合计数)

GCD of Sequence Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 949    Accepted Submission(s): 284 Problem Description Alice is pla

mowayao的专栏 1000

QT与Coin3D实现机器人的仿真

前言 Coin3D编程环境配置好后,开始下一步的机器人仿真任务。本文根据在研5轴机器人,完成三维模型生成与机器人的仿真。主要参考博主冯Jungle的博客,在此表示感谢。 ——2021.05.23 环境 Win10:VS2019、QT5.15.2、Coin3D、SolidWorks2016 机器人三维模型生成 目前广泛应用于因特网的VRML ( Virtual Reality Modeling Language,虚拟现实建模语言)为用户提供一种可参与的、并能对场景中对象主动做出反应的虚拟现实环境,现已成

焦露的博客 6907

HDU 4675 (莫比乌斯反演)

HDU 4675 (莫比乌斯反演)题目链接题意:给定n个数,每个数不超过m,和k.问从dd从11到mm能够构造多少个bb数组使得bb数组的gcdgcd为dd并且bb数组每个数都不超过mm,并且恰好有kk个数和下表对应的a数组的数不相等.用F(x)F(x)表示gcd为x的倍数的方案数,f(x)f(x)表示gcd为x的方案数.先考虑F(d)F(d)怎么计算.可以把a数组中的数分成两类,第一类是必须对应下

morejarphone~ 695

从5V降到3.3V,你的LDO到底有多烫?手把手算功耗、选散热,避开这些坑

本文详细解析了LDO在5V转3.3V电路中的发热问题,提供了精确的功耗计算公式和散热设计方法。通过对比不同封装的热阻参数和优化PCB布局,帮助工程师有效降低LDO温度,避免热保护触发。文章还探讨了替代方案的技术拐点,为电源系统优化设计提供实用指导。

weixin_30304375的博客 435

AD9026芯片开发实战:从Example Code到API调用的关键步骤解析

本文详细解析了AD9026芯片开发的核心流程,重点阐述了如何从官方提供的Example Code入手,逐步理解硬件平台发现、HAL层初始化、配置加载、芯片复位、固件启动、JESD链路建立等关键API调用序列。通过剖析示例工程的结构与核心文件,为开发者在自定义硬件平台上移植和调试AD9026驱动提供了清晰的实战指南。

java5的博客 788

HDU 4675 GCD of Sequence(容斥)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4675 题意:给出n,m,K,一个长度为n的数列A(1&lt;=A[i]&lt;=m)。对于d(1&lt;=d&lt;=m),有多少个长度为n的数列B满足: (1)1&lt;=B[i]&lt;=m; (2)Gcd(B[1],B[2],……,B[n])=d; (3)恰有K个位置满足A[i]!=B[...

weixin_33858336的博客 119

避坑指南:ZYNQ平台上AXI 1G/2.5G Ethernet Subsystem实现IEEE1588的5个关键点

本文详细解析了在ZYNQ平台上使用AXI 1G/2.5G以太网子系统实现IEEE1588精密时间协议(PTP)的5个关键避坑点。从硬件选型、Vivado工程配置到Linux驱动适配,提供了实战经验与优化技巧,帮助工程师在工业自动化、电力系统等场景中实现纳秒级时间同步。

weixin_30687051的博客 234

HDU 4675 GCD of Sequence(莫比乌斯反演)

http://acm.hdu.edu.cn/showproblem.php?pid=4675 题意:给 NNN 个数 aiaia_i,让 aiaia_i 变成 bibib_i,变的范围为 111~MMM,但是要求要有 KKK 个位置的 ai和biai和bia_i和b_i 不相等,要求输出 bbb 这个数组的所有元素的 gcd=1,2,3....Mgcd=1,2,3....Mgcd=1,2,3.....

帅气廖鹏飞 425

华为od统一考试B卷【单词搜索】C++ 实现

找到它是一个小游戏,你需要在一个矩阵中找到给定的单词。假设给定单词 HELLOWORD,在矩阵中只要能找到 H->E->L->L->O->W->O->R->L->D连成的单词,就算通过。意区分英文字母大小写,并且您只能上下左右行走,不能走回头路。

MISAYAONE的博客 710

有限元ABAQUS软件安装后管理员身份运行报错:Cannot connect to license server system...如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 2070

HDU4675【GCD of scequence】【组合数学、费马小定理、取模】

看题解一开始还有地方不理解,果然是我的组合数学思维比较差 然后理解了之后自己敲了一个果断TLE。。。。 我以后果然还得多练啊 好巧妙的思路啊 #include #include #include #include #include #include #include #include #include #include #include #inc

Beyyes 1420

Python爬虫教程:抓取短视频平台数据(以抖音和快手为例)

为什么抓取短视频平台数据?内容分析:通过抓取短视频平台上的视频内容、标题、标签等数据,可以进行内容分类、趋势分析、话题分析等。情感分析:抓取视频的评论数据,并进行情感分析,帮助企业或组织了解公众的情绪反馈。用户行为分析市场监测:通过抓取特定关键词或标签下的视频数据,分析市场趋势,进行竞争对手分析。短视频平台数据类型:视频信息:包括视频标题、描述、标签、作者等。用户信息:包括用户的昵称、粉丝数、关注数等。互动数据评论数据:视频下的用户评论内容及用户信息。

2201_76125261的博客 3662

hdu 4675 GCD of Sequence(计数)

题目链接:hdu 4675 GCD of Sequence代码#include <cstdio> #include <cstring> #include <vector> #include <algorithm>using namespace std; const int maxn = 300000; const int mod = 1e9 + 7;int fac[maxn + 5], inv[ma

不慌不忙、不急不躁 718

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

HDU4675 GCD of Sequence

设g(n)为最大公约数等于n的方案数(即本题答案),f(d)为公约数含有d的方案数。 则有关系:f(d) = sigma(d|n, g(n)) 本题关键即在于如何求f(d)。 如果没有(恰好K个数与序列a中不同)这个条件的话,那么函数f(d)就很好求,f(d) = [M/d] ^ N 但是本题有这个条件(废话),所以我们需要对函数f的求法做一点改进。 先用O(n sqrt n)的

Strawberry fields forever 862

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

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

hdu4675 GCD of Sequence

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4675 题意:   给定一个长度为n的序列a,且 1<=a[i]<=m,求分别有多少个序列b,使得GCD(b[1],b[2],...b[n])=x (1<=x<=m),且正好有k个b[i]!=a[i]。 分析:   莫比乌斯反演,主要是确定F(x)。   用F...

weixin_30480583的博客 144

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【组合数学】 HDU 4675 GCD of Sequence

通道 题意:有三个数N, M, K, 然后N个特定序列。 从这特定的序列里必须改变K个数字, 取值范围为 [1,M]。 然后求出各序列的最大公约数为1~M分别多少个 思路: 代码: #include <cstdio> #include <cstring> #include <algorithm> using namespac...

158

HDU-4675 GCD of Sequence 数学

  题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4675   题意:给一个大小为N的数列a[i],然后一个数M以及一个数K,要你求得一个数列b[i],其中b[i]有K个数与a[i]中的不相同,使得gcd(b[i])=j。对于每个 j ,求出满足的b[i]的个数。。   首先我们统计数列a[i]每个数的个数,假设现在求gcd(b[i])=j,那么...

weixin_30216561的博客 155

HDU 4675 GCD of Sequence

GCD of Sequence Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 209    Accepted Submission(s): 65 Problem Description Alice is play

dongdongzhang_的专栏 1688

HDU 4675 GCD of Sequence (莫比乌斯反演)

题意:给nn个数,a1,a2,...,ana_1,a_2,...,a_n,其中1<=ai<=M1<=a_i<=M,找出所有的满足条件的序列b1,b2,...,bnb_1,b_2,...,b_n使得gcd(b1,b2,...,bn)=dgcd(b_1,b_2,...,b_n)=d,其中1<=bi<=M1<=b_i<=M,且序列{bib_i}中有且仅有kk个bi!=aib_i!=a_i。f(d)f(d)

无限大な梦のあとの 何もない世の中じゃ 1714

HDU 4675 GCD of Sequence (组合数学)

Description: Alice is playing a game with Bob. Alice shows N integers a1,a2,…,aNa_{1}, a_{2}, …, a_{N}a1​,a2​,…,aN​, and M,KM, KM,K. She says each integers 1≤ai≤M1 ≤ a_{i} ≤ M1≤ai​≤M. And now Alice wa...

邵光亮的博客 304

解题报告: HDU_4675 GCD of Sequence 计数

题目链接: 题意: 给定长度为n的一个正整数序列,里面每个数的大小均为最大为m,让你构造出另一个等长的正整数序列要求满足一下三个条件: 1、数列里的每个数小于等于m。 2、整个数列的最大公因子为d。 3、你构造出的数列与原数列对应位置上的数刚好有k对不相等。 询问你当d 分别为 1~m 时,能构造出序列的种类数。 思路: 不好直接考虑计算最大公因子刚好为d的结果(设为f(d)),那

Hee的博客~ 304

hdu4675 GCD of Sequence 组合数学+反演

分析 我们设f(d)f(d)f(d)为gcd⁡=d\gcd=dgcd=d的数量,F(d)F(d)F(d)为gcd⁡\gcdgcd为ddd或者ddd的倍数的数量 我们有反演(假设n=3):f(d)=∑d∣tμ(td)F(t)f(d)=\sum_{d \mid t}\mu(\frac{t}{d})F(t)f(d)=∑d∣t​μ(dt​)F(t) 所以这道题难在F(t)F(t)F(t)怎么求: 我们设n...

three_trees的blog 212

HDU 4675 GCD of Sequence(数学)

题目链接:Click here~~ 题意: 给一个序列 {an}(ai 解题思路: 比赛时没有什么思路,赛后看了题解,大概懂些了。这题的关键是要想到,将比较难解的最大公约数的问题转成公约数的问题。 令 f[d] 表示满足条件的且 gcd 为 d 的方案数,g[d] 表示满足条件的且 cd 为 d 的方案数。 有 g[d] = f[d] + f[2*d] +

nyist_xiaod 1518

HDU - 4675 GCD of Sequence (容斥组合推公式)

题目描述:点击打开链接给一个序列 {an}(ai &lt;= M),问有多少种 {bn} ,满足恰好 k 个位置与 {an} 不同,且 gcd of {bn} = d(1&lt;= d &lt;=M)。很灵巧的题,我们首先把a中d的倍数的数目统计出来,假设为x个,如果x&lt;=n-k的话答案肯定是不存在的,问题是答案存在的情况怎么求,我们可以确定的是b中有n-x个位置肯定无法从a中直接得到d的倍...

hyesuixin的博客 353

hdu 4675 GCD of Sequence

数学题! 从M到1计算,在计算i的时候,算出原序列是i的倍数的个数cnt; 也就是将cnt个数中的cnt-(n-k)个数变掉,n-cnt个数变为i的倍数。 且i的倍数为t=m/i; 则符合的数为:c[cnt][n-k]*t^(n-cnt)*(t-1)*(cnt-(n-k)). 这样得到的是所有i的倍数,还要减去2*i,3*i…… 代码如下: 1 #include&lt...

weixin_30537451的博客 110
上一篇: HDU 1222 - Wolf and Rabbit & HDU 1108 - 最小公倍数
下一篇: hihocoder 1284 - 机会渺茫
Freenm
博客等级 码龄15年 14粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值