hdu5446 Unknown Treasure(数论综合题:大组合数取大合数模:Lucas+CRT)

Tip-Adapter: Training-free Adaption of CLIP for Few-shot Classification 对比式视觉-语言预训练,也称为CLIP,通过大规模的图像-文本对来学习视觉表示,为zero-shot知识迁移展示了新的范式。它在下游任务上展现出令人瞩目的性能,实现了zeri-shot的知识迁移。为了进一步增强CLIP的适应能力,现有方法提出了微调可学习模块的方法,显著提高了少样本情况下的性能,但也引入了额外的训练时间和计算资源。在本文中,我们提出了一种适用于CLIP的无需训练的少样本分类方法,称为Tip-Adapter。 阅读详情


Link:http://acm.hdu.edu.cn/showproblem.php?pid=5446

Unknown Treasure

Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 1590    Accepted Submission(s): 585


Problem Description
On the way to the next secret treasure hiding place, the mathematician discovered a cave unknown to the map. The mathematician entered the cave because it is there. Somewhere deep in the cave, she found a treasure chest with a combination lock and some numbers on it. After quite a research, the mathematician found out that the correct combination to the lock would be obtained by calculating how many ways are there to pick  m  different apples among  n  of them and modulo it with  M .  M is the product of several different primes.
 

Input
On the first line there is an integer  T(T≤20)  representing the number of test cases.

Each test case starts with three integers  n,m,k(1≤m≤n≤1018,1≤k≤10)  on a line where  k  is the number of primes. Following on the next line are  k different primes  p1,...,pk . It is guaranteed that  M=p1⋅p2⋅⋅⋅pk≤1018  and  pi≤105  for every  i∈{1,...,k} .
 

Output
For each test case output the correct combination on a line.
 

Sample Input
  
1 9 5 2 3 5
 

Sample Output
  
6
 

Source
 


题意:求C(n,m)%M,其中M=(m0*m2*…*m(k-1)),mi为素数。

AC code:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
#include<map>
#include<stack>
#include<vector>
#define LL long long
#define MAXN 1000010
using namespace std;
const  int N=20;//模方程数 
LL a[N],mod[N];
LL mul(LL a,LL b,LL mod)//a*b%mod
{
	LL ans=0;
	while(b){
		if(b&1)
			ans=(ans+a)%mod;
		b>>=1;
		a=(a+a)%mod;
	}
	return ans;
}

LL quick_mod(LL a,LL b,LL m)//a^b%m 
{
	LL ans=1;
	a%=m;
	while(b)
	{
		if(b&1)
		{
			ans=ans*a%m;
		}			
		b>>=1;
		a=a*a%m;
	}
	return ans;
}

LL getC(LL n,LL m,int cur)//C(n,m)%mod[cur]
{
	LL p=mod[cur];
	if(m>n)
		return 0;
	if(m>n-m)
		m=n-m;
	LL ans=1;
	for(int i=1;i<=m;i++)
	{
		LL a=(n+i-m)%p;
		LL b=i%p;
		//ans=mul(ans,mul(a,quick_mod(b,p-2,p),p),p);//p为素数,i对p的逆元可以不用扩张欧几里得进行求解  re=i^(P-2) 
		ans = ans * (a * quick_mod(b, p-2,p) % p) % p;  
	}
	return ans; 
}

LL Lucas(LL n,LL k,int cur)//求C(n,k)%mod[cur] 
{
	LL p=mod[cur];
	if(k==0)
		return 1%p;
	//return getC(n%p,k%p,cur)*Lucas(n/p,k/p,cur)%p;
	return getC(n % p, k % p,cur) * Lucas(n / p, k / p,cur) % p;  
}

void extend_Euclid(LL a,LL b,LL &x,LL &y)
{
	if(b==0)
	{
		x=1;
		y=0;
		return;
	}
	extend_Euclid(b,a%b,x,y);
	LL tmp=x;
	x=y;
	y=tmp-a/b*y;
}

LL CRT(LL a[],LL m[],int k)//求C(n,m)%M,其中M=(m0*m2*…*m(k-1)),mi为素数,则先用a[i]存储模方程C(n,m)%mi,
{                           //m[]存储所有素数因子mi,k表示总共有k个模方程,返回C(n,m)%M的值 
	LL M=1;
	LL ans=0;
	for(int i=0;i<k;i++)
		M*=mod[i];
	for(int i=0;i<k;i++)
	{
		LL x,y,tmp;
		LL Mi=M/m[i];
		extend_Euclid(Mi,m[i],x,y);
		if(x<0)
		{
			x=-x;
			tmp=mul(Mi,x,M);
			tmp=mul(tmp,a[i],M);
			tmp=-tmp;
		}
		else
		{
			tmp=mul(Mi,x,M);
			tmp=mul(tmp,a[i],M);
		}
		ans=(ans+tmp)%M;
	}
	while(ans<0)
		ans+=M;
	return ans;
}

int main()
{
	//freopen("D:\\in.txt","r",stdin);
	int T;
	scanf("%d",&T);
	while(T--)
	{
		LL n,m;
		int k;
		scanf("%lld%lld%d",&n,&m,&k);
		//k=1;
		for(int i=0;i<k;i++)
			scanf("%lld",&mod[i]);
		for(int i=0;i<k;i++)
			a[i]=Lucas(n,m,i)%mod[i];
		//printf("%I64d\n",a[0]);
		printf("%lld\n",CRT(a,mod,k)); 
	}
  	return 0;
}


【OWL部署】Manus又一开源平替OWL真的很好用吗?手把手带你部署并运行你的AI助手OWL(对接Qwen、硅基流动接口) 本文介绍了通用人工智能OWL的部署及国内接口对接,全篇干货满满,手把手教学。 阅读详情

相关推荐

【Qualcomm高通音频】音效调试_录音文件播放有杂音,如何定位原因?

一、录音播放数据处理过程介绍 (1)TX方向 麦克风(硅麦克风或者主机体麦克风)采集模拟音频信号,经过内部CODEC芯片中的adc转换为数字信号,在经过高通音频DSP处理音效后编码为wav/aac/amr/mp3等格式文件。 (2)RX方向 音频文件经过解码、重采样还原为pcm数据,经过DSP处理音效后送到内部CODEC,然后经过DAC转换为模拟信号,送到喇叭。 二、分析步骤 1...

crow_ch的博客 5971

组合数取余(Mod 可以不为质数)

using namespace std; const int MAXN = 200005; bool ispri[MAXN]; int prime[MAXN]; int priCnt; void CalPrime() { priCnt = 0; memset(ispri,false,sizeof(ispri)); for(int i = 2;i < MAXN; ++

自在飞花 1896

实用电路精讲系列---仪表放大器

摘要 仪表放大器通过三级运放架构实现高共模抑制比(CMRR>100dB)和精密差分放大,其核心是第一级同相运放提供高输入阻抗和可调增益(G=1+2R/RG),第二级差分运放消除共模干扰。具有低失调(≤50μV)、低温漂(≤0.6μV/℃)特性,广泛应用于智能断路器电流监测、ECG心电信号放大等场景。典型电路采用LTC1049运放,通过匹配电阻网络实现199倍差分增益,结合输出缓冲确保信号稳定性。设计时需注意输入共模电压范围限制和增益电阻精度,优选集成IC(如AD620、INA128)以规避分立元件匹配

weixin_40590799的博客 2071

组合数模任意数

本文内容是求组合数模合数的方法 本方法有局限性,假设求CKN mod PC_N^K \ mod \ P 其中P=Πmi=1Pqii,其中P = \Pi_{i=1}^{m}P_i^{q_i},对于任意i,j∈[1,m],(Pi,Pj)=1对于任意i,j\in[1,m],(P_i, P_j) = 1 若要使用本方法,则PqiiP_i^{q_i}不能太大 具体方法如下具体方法如下 我们知道,一般

geng4512的专栏 1903

Python 对接钉钉获取员工上一篇日报或周报内容

摘要:本文介绍使用Python对接钉钉API获取员工日报/周报的方法。首先需创建钉钉应用并开通日志权限,获取员工UserID。通过获取AccessToken进行鉴权,调用topapi/report/list查询日志记录,筛选最新日报/周报后,使用topapi/report/details获取详细内容。需注意权限控制、时间范围筛选和模板匹配等问题。文末提供完整代码示例,并建议扩展自动化触发、数据存储等功能。该方法适用于企业自动化获取员工工作日志的场景。

从技术实践立足,从项目管理方法论延伸思考 807

机器人中的数值优化(一)—— 数学优化、凸集合与凸函数

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例。

慕羽★的博客 2521

BZOJ 2142 浅谈LuCas EXtra拓展卢卡斯定理解合数组合式

世界真的很大 今天考试的第一题,讲道理拓展Lucas算NOIP? 还好学会了 考试的时候一看,思路和解法都非常简单,简单到已经不是这道题的主要部分了,求几个组合数就完了,模拟了一下样例过了,很开心 然后一看,嗯?mod怎么是一个合数呢? EXLucas看题先:description: 一年一度的圣诞节快要来到了。每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物。不同的人物在小E

BerryKanry的博客 1150

新手也能写复杂爬虫!AI+Python自动分析京东商品,提取数据不用F12

不用F12:AI自动分析京东页面,生成选择器;不用懂JS:Playwright自动渲染动态数据;不用改代码:只需配置3个参数,复制运行就能出结果。这套方案不仅适用于京东,修改提示词后还能爬取淘宝、拼多多、亚马逊等电商网站,新手只需掌握“配置参数→运行代码→查看CSV”3步,就能轻松获取任意网站的结构化数据。未来,AI会让爬虫彻底进入“零代码、零门槛”时代,新手也能轻松搞定复杂数据爬取需求。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1340

power oj 2419: 组合数(Lucas+CRT)

传送门 分析:刚开始以为用上面卢卡斯公式结合欧拉定理对求出C(n,m),但p要求为素数,而999911659-1并非素数; (求C(n, m)%p的值, p = p1p2…pk. pi是质数。 先求出C(n, m)%pi的值, 然后这就是一个同余的式子。 用中国剩余定理求解.) #include <iostream> #include <stdio.h> #include <string> #include<cstring> #include <cs.

weixin_46220615的博客 296

【用unity实现100个游戏之2】复刻实现经典2d平台跳跃游戏《蔚蓝 Celeste》(附工程源码)

蔚蓝》是一款备受好评的独立游戏,由游戏开发工作室开发并由发行。这款游戏于2016年首次发布,并在玩家和评论界收获了广泛赞誉。蔚蓝以其独特的艺术风格和引人入胜的故事而著称。游戏以深海为背景,玩家将扮演一个能够探索水下世界的神秘生物。游戏通过惊人的视觉表现和动态的海洋生态系统为玩家带来了令人难忘的游戏体验。无论是广阔的水下景观还是充满生机的海洋生物,蔚蓝都让玩家感受到深海的神秘和美丽。蔚蓝在玩法上注重探索和解谜。玩家可以在海底环境中自由游动,发现隐藏的地点和秘密,与各种生物互动,并解决环境谜题以继续前进。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4167

k8s上分离集群seatunnel部署(生产推荐)

k8s上分离集群seatunnel部署(生产推荐)

寂夜了无痕的博客 884

HDU 5446 Unknown Treasure [lucas+CRT]【数论】

题目连接:传送门 ——————————. Unknown TreasureTime Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 2196 Accepted Submission(s): 814Problem Description

Tabris的博客 409

从 SEGW 到 SADL 的那根线,彻底理解 OData Data Source Mapping

本文摘要(150字): 在SAP Gateway的SADL型OData服务开发中,"Map to Data Source"是关键配置环节。与传统RFC映射不同,SADL映射不是针对单个CRUDQ操作,而是建立OData模型与SADL业务实体间的完整语义对应关系。通过属性映射和关联映射,系统能自动处理数据获取和导航请求。映射编辑器支持三种模式:属性映射处理字段对应,关联映射处理模型间关系,动作映射处理业务操作。映射的本质是建立语义翻译表,决定了后续OData请求如何转化为后端业务实体访问,而非简单的字段重命名

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 61

HDU - 5446 Unknown Treasure (数论部分定理的综合应用,lucas+CRT)

On the way to the next secret treasure hiding place, the mathematician discovered a cave unknown to the map. The mathematician entered the cave because it is there. Somewhere deep in the cave, she found a treasure chest with a combination lock and some num

hyesuixin的博客 294

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

HDU 5446 Unknown Treasure ACM/ICPC 2015 Changchun Online(Lucass+CRT)

可以说是一道裸题,求C(n,m)对p1*p2*……pn取模,这个n、m都可以到1e18级别,然后pi是1e5级别。         如果说只对一个质数p取模,而且质数不大,那么我们直接可以用Lucass定理拆分求组合数,这个我之前讲过了,我就不多说了。关键是,本题取模是对很多质数的乘积取模,故不能直接用Lucass定理。如果我们设最后答案为X,那么X=C(n,m)%(p1p2……pn)。根据同余的性质,我们可以有X%pi=C(n,m)%pi,这个很容易理解,于是我们X对于所有的pi的方程都写出来。则有:

alpc_qleonardo 741

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

hdu 5446 Unknown Treasure 2015 长春网络赛 组合数对大合数取模 数论

数论题 组合数对大合数取模

ned_chu的博客 788

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

HDU 5446 Unknown Treasure(Lucas定理+中国剩余定理)

题意:给一个组合数C(n, m) (n, m 思路:先用lucas定理求出组合数模除每个质因子的解,然后用中国剩余定理来进行求解,要注意两个long long类型相乘可能会爆,要把乘法改成加法的形式。 #include #include #include using namespace std; typedef long long LL; typedef long long lint;

GODSPEED 462

HDU 5446 Unknown Treasure 解题报告(Lucas定理 + 中国剩余定理)

Unknown Treasure Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 168    Accepted Submission(s): 40 Problem Description On the way to

SF-_- 的 ACM 博客 1995

HDU 5446-Unknown Treasure(Lucas+中国剩余定理)

题目地址:HDU 5446 题意:求C(N,M)%P的结果,P为k个素数的乘积。(1≤m≤n≤10^18,1≤k≤10) 思路:先用Lucas定理求出a[]数组,再用CRT求出最终的结果x。比赛时这道题坑了俩小时,还是用的不互质的板子过的,不知道为什么用互质的CRT板子一直Wa,sad。#include <stdio.h> #include <math.h> #include <string.h

Rocky0429 1520

HDU5446 Unknown Treasur Lucas+中国剩余定理

HDU5446 Unknown Treasur Lucas C(n,m):n,m&lt;1e18,且mod非质数 -----Lucas+中国剩余定理 若mod为质数------------------------------Lucas 因为mod值不定,所以无法预处理阶乘和逆元 #include&lt;bits/stdc++.h&gt; using namespace std; cons...

Qianyri的博客 299

HDU 5446 Unknown Treasure (lucas + 中国剩余定理)

题意:计算C(n,m)%(M1*M2*M3......*Mn) 其中Mi是互不相同的素数 分析:如果是C(n,m)%素数 我们直接使用lucas, 但是现在的模是多个素数相乘,所以我们需要配合中国剩余定理,先使用lucas对每一个Mi进行取模运算,保留结果,最后使用中国剩余定理 代码: #include &lt;map&gt; #include &lt;set&gt; #include &...

Insist_77的博客 1793

HDU 5446 Unknown Treasure(Lucas定理+CRT)

HDU 5446 Unknown Treasure(Lucas定理+CRT) 2015 ACM/ICPC Asia Regional Changchun Online 2015长春网络赛

追梦赤子心 798

hdu 5446 Unknown Treasure(lucas+中国剩余定理)

Unknown Treasure Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 1992    Accepted Submission(s): 732 Problem Description On the w

ZAQ的博客 3714

Hdu 5446 Unknown Treasure(Lucas+中国剩余定理)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5446 思路:Lucas求出所有a[i]=C(n,m)%m[i],中国剩余定理求出最终结果x (LL*LL会爆掉,手写乘法)。 中国剩余定理: 设m1,m2,....mn是两两互质的正整数,对任意给定的整数a1,a2,....an必存在整数,满足         x≡a1 (mod

哆啦AC梦的博客 823

HDU 5446 Unknown Treasure Lucas+CRT

题意:给n,m,k和p1,p2….pk 求C(n,m)%p1* p2* …. pk 思路:比赛的时候并没有学….. 就是LUACS+CRT模板题#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> #include<math.h> #include<queue> #include<stack> #

humeay的博客 415
上一篇: 求逆序对模板题(完善模板:树状数组或归并排序)
下一篇: FOJ 2020 组合(组合数取素数摸模板:Lucas)
林下的码路
博客等级 码龄12年 295粉丝 506原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林下的码路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值