Help Tomisu UVA - 11440 gcd+欧拉 加证明

GCD详解 什么是GCD? Grand Central Dispatch或者GCD,是一套底层API,提供了一种新的方法来进行并发程序编写。使用GCD来提升程序性能以及发挥多核系统优势. GCD的工作原理: 让程序平行的特定任务,根据可用的处理资源,安排他们在任何可用的处理器核心上执行任务. GCD提供了很多超越传统多线程编程的优势. 简单易用,居于block的血统,导致它能极为简单 阅读详情

紫书的思路 其中有个证明是看的 https://blog.youkuaiyun.com/a197p/article/details/45649019 的博客

引用自 https://blog.youkuaiyun.com/a197p/article/details/45649019 

那么先看一个证明:
求kn中与n互质的个数,答案为kϕ(n)。
ϕ(n)表示1-n中与n互质的个数,那么由此考虑[n + 1, 2n], [2n + 1, 3n]...这每个区间中的每个数字都等于1-n中数字加上kn(这里原作者应该打错了  是 加上n ),对于原来就与n不互质的个数,加上n仍会有一个质因子重复,所以仍然不行,那么对于原来互质的数x,gcd(x, n) = 1,那么可知gcd(x + kn, n) = 1,仍然是互质的,所以每隔n的区间与n互质的个数是相同的,所以答案kϕ(n)

所以对于这道题目,答案就变成了n!/m!ϕ(m!),那么问题只剩下如何求ϕ(m!)。

已知ϕ(n)求法为n∗(1−1/p1)∗(1−1/p2)....(1−1/pn) (p为n的质因子),因此对于m!而言,分子为m!,分母为1 - m所有质数的(1−1/p)之乘积

到这里答案就可以求了,把m!消掉,得到n!/∏(1−1/pi)mod1000000007,先预处理那些表,每次去计算即可

#include<cstdio>
#include<cmath>
#include<cstring>
const int maxn = 10000000 + 10;
const int MOD = 100000007;

int vis[maxn], phifac[maxn];

void gen_primes(int n) {
  int m = (int)sqrt(n+0.5);
  int c = 0;
  memset(vis, 0, sizeof(vis));
  for(int i = 2; i <= m; i++) if(!vis[i]) {
    for(int j = i*i; j <= n; j+=i) vis[j] = 1;
  }
}


int main() {
  int n, m;
  gen_primes(10000000);
  phifac[1] = phifac[2] = 1;//phifac[i]表示1-i!中和i!互素的数有多少 相当于ohi[i!]
for(int i=3;i<=10000000;i++)phifac[i]=(long long )phifac[i-1]*(vis[i]?i:i-1)%MOD;
while(scanf("%d%d",&n,&m)==2&&n){
	long long ans=phifac[m];
	for(int i=m+1;i<=n;i++)ans=(long long )ans*i%MOD;
	 printf("%d\n", (ans-1+MOD)%MOD);
}
  return 0;
}

 

SparkFun四频GNSS RTK开发板:高精度定位技术解析 GNSS(全球导航卫星系统)技术通过多卫星系统协同工作实现全球覆盖定位,其核心原理是利用卫星信号传播时间差计算接收机位置。RTK(实时动态差分)技术通过基准站校正数据,将GNSS定位精度从米级提升至厘米级,显著提升了高精度定位的技术价值。在无人机导航、精准农业、自动驾驶等应用场景中,多频GNSS接收机通过同时接收L1/L2/L5/L6等频段信号,有效消除电离层误差,实现亚米级甚至厘米级定位精度。SparkFun四频GNSS RTK开发板集成了Quectel LG290P模块,支持六种卫星系统和四频段接收,配 阅读详情

相关推荐

C. Stairs and Elevators 二分查找

C. Stairs and Elevatorstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputIn the year of 30XX30XX participants of some world programming championship...

Bug___Maker的博客 558

UVA 11440 - Help Tomisu(欧拉函数)

UVA 11440 - Help Tomisu 题目链接 题意:给定n和m,求[2,n!]中,所有质因子个数都大于m的个数 思路:ϕ(m!)表示小于m!并与m!互质的个数,而与m!互质的个数,他的质因子肯定不包含1-m,因此就是满足条件的。然后对于这题而言,则是要求n!中,不与m!互质的个数,答案取模100000007 那么先看一个证明: 求kn中与n互质的个数,答案为k

Remilia's 1460

改进差分进化算法及其求解柔性作业车间调度问题(Python代码实现)

内容概要:本文系统探讨了改进差分进化算法在求解柔性作业车间调度问题中的应用,并结合Python代码实现,展示了该算法相较于传统方法在全局搜索能力和收敛速度方面的优势。研究不仅聚焦于算法本身的改进策略,如变异、交叉和选择操作的优化,还深入分析了其在复杂制造环境中应对多目标、多约束调度问题的有效性。文中通过标准测试实例验证了算法性能,并与其他智能优化算法进行了对比分析,体现了其在实际工程应用中的潜力。此外,文档还关联了多无人机路径规划、电力系统状态估计、微电网优化、图像与信号处理等多个前沿技术领域,展现了智能优化算法在跨学科工程仿真与决策支持中的广泛适用性。; 适合人群:具备一定编程基础和工程背景,从事智能制造、自动化、工业工程、电气工程、控制科学与工程、计算机科学及相关领域的科研人员、高校研究生及企业研发技术人员。; 使用场景及目标:①为科研工作者提供可复现的智能优化算法代码框架,支持柔性作业车间调度、多无人机协同路径规划、电力系统优化等复杂工程问题的建模仿真;②辅助完成学术论文复现、课程设计、毕业设计或科研项目开发;③推动智能算法在生产调度、能源管理、交通规划等实际场景中的落地应用。; 阅读建议:建议读者结合文中提供的算法原理与代码实现,动手调试并验证不同参数设置对优化结果的影响,同时可参考荔枝科研社提供的完整资源包进行扩展学习与实践,以加深对算法机制与工程应用的理解。

Help Tomisu UVA - 11440 (阶乘+欧拉函数)

  #include&lt;bits/stdc++.h&gt; using namespace std; typedef long long ll; const int mod=1e8+7; const int maxn=1e7+10; /* 难点: 1.阶乘 这个数字会非常大,直接蒙逼,不知道怎样把这个数字降下来 2.条件的转化 题目要求我们求在 ...

海绵的博客 506

pytorch转onnx转paddlepaddle

1.pt转onnx 可查看我之前的文章:https://blog.youkuaiyun.com/oyjwin/article/details/117778583?spm=1001.2014.3001.5501

oyjwin的博客 1460

Unity物理驱动3D汽车实现:从刚体控制到参数调优

在游戏开发中,刚体物理是实现真实物体运动与交互的核心技术。通过Unity的物理引擎,开发者可以模拟重力、碰撞、摩擦力等物理行为,为游戏世界注入真实感。其技术价值在于能够以符合物理规律的方式驱动游戏对象,避免穿墙、无视惯性等问题,从而提升游戏体验的真实性和沉浸感。这一原理广泛应用于角色控制、车辆模拟、物体破坏等场景。本文以3D小汽车为例,详细解析了如何通过Rigidbody组件施加力与扭矩,并利用C#脚本实现玩家输入逻辑,完成一辆可操控、能碰撞的物理驱动汽车。文中重点探讨了AddForce与角速度控制两种方案

weixin_34380948的博客 500

Codeforces Round #503 (by SIS, Div. 2) C Elections 暴力枚举贪心

贪心 打的时候思路对 但自己比较菜 码力不足   看了大神的代码 #include&lt;bits/stdc++.h&gt; using namespace std; struct Node{ int p,c; bool operator&lt;(const Node&amp;a)const { return c&lt;a.c; } }node[3005]; int x[3005]; int ...

Bug___Maker的博客 613

DPO(Direct Preference Optimization)直接偏好优化

本文介绍了DPO(直接偏好优化)方法,该方法通过简化传统的RLHF(基于人类反馈的强化学习)流程,直接利用人类偏好数据进行模型优化。DPO的核心思想是跳过奖励模型训练和强化学习交互步骤,通过数学推导将优化目标转化为仅与策略概率分布相关的形式。推导表明最优策略与奖励模型之间存在显式关系,从而可以构建直接优化策略的损失函数。与RLHF相比,DPO简化了训练流程,提高了工程实现稳定性,同时保持了同等效果。

TeenLucifer的博客 1954

Unix ls 算法入门经典

注意:string.length()返回的是unsign int 值 用于int 参数的函数时候需要强制转换 如本题中的max() 该题中需要自己计算行列  列的要求为尽可能满足60个字符int colum=(60-M)/(M+2)+1;  减去最后一行的M除以其他每行的M-2就是M-2的最多数量 再加上M的1rows=(n-1)/colum+1;   此处是为了向上取整AC代码:#include...

Bug___Maker的博客 607

Codex、Claude Code、Opus、Trae、Cursor:一文讲懂 2026 AI 编程工具格局

2026年AI编程工具将形成三层体系:模型层(Opus/Codex)负责思考,执行层(Claude Code/Codex Agent)负责自动开发任务,工具层(Cursor/Trae)提供AI集成的开发环境。关键区别在于Agent路线强调AI主导自动化开发,而IDE路线保持人类主导。未来竞争力取决于能否将AI整合为生产力系统,掌握模型推理、Agent任务编排和AI IDE协同三大能力。核心转变是从"写代码"升级为"指挥AI写代码",高级玩家通过组合不同层级工具构建自动

m0_51738372的博客 2690

华为OD机试双机位C卷-统计差异值大于相似值二元组个数(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【统计差异值大于相似值二元组个数】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 统计差异值大于相似值二元组个数

qq_45776114的博客 783

Codeforces Round #507 (Div. 1) B. Subway Pursuit 交互题

脑洞交互题   给出范围 系统会返回 yes no 来表示列车是不是在该范围内 二分范围  然后范围差不多了 猜一下范围里面的一个点 然后继续二分范围 直到猜对   注意可以用cout&lt;&lt;endl清理缓存区 #include&lt;bits/stdc++.h&gt; using namespace std; typedef long long ll; int main(){ s...

Bug___Maker的博客 545

Xilinx平台SRIO介绍(五)示例工程Example Design介绍

理解IP的使用,少不了Example Design的学习。

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 1万+

筛法求Phi

void phi_table(int n){ for(int i=2;i&lt;=n;i++)phi[i]=0;//先初始化所有为0 phi[1]=1;//小于等于1且与1互质的数 初始化为1 for(int i=2;i&lt;=n;i++)if(!phi[i])//如果这个数没有被改变过 说明这个数 i为素数 for(int j=i;j&lt;=n;j+=i){ if(!phi[j])...

Bug___Maker的博客 467

WinClaw安全实战 02|五层纵深防护体系全解析:从原理到实操,打造零风险AI智能体

2026年AI智能体爆发式普及,OpenClaw以27.3万GitHub星标成为现象级工具,但恶意Skill投毒、提示词注入、数据外泄等安全事故频发,国家互联网应急中心、工信部等多部门接连发布风险警示。威努特基于国家关键信息基础设施安全防护经验,打造WinClaw安全版AI智能体,其核心竞争力在于**五层纵深防护体系**。本文从安全痛点切入,通过真实事故案例揭示风险本质,全景解构五层防护的架构设计与技术原理,逐层拆解身份认证、安装审查、消息拦截、执行约束、监控审计的实现逻辑,搭配20+实操演示、对比表格

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 495

【测开求职】面试题:计算机网络 详细版整理

本篇文章是笔者为准备研究生复试和校招而写,因此主要针对问答,注重理解,而不在于细节计算。读者可以先查看上面的链接走一遍计算机网络的整体框架结构。其中,重点难点以及易混淆的知识点,笔者会用其他文章进行了详述,在知识点处贴好了链接,有需要的可以查阅。

vector的博客 5936

Codeforces Round #507 (Div. 1)C. Network Safety

题意:给个n个点 m条边的图  每个点有个权值c 范围(0,2^k-1) 如果边的两个定点的权值不同 那么他们的连接就是安全的   现在有一个病毒  他的值x 在上述范围内随机   存在一个集合 &lt;set&lt;int&gt;,int&gt;前面 是点集 后面病毒值x  如果 x感染了 前面的点集的所有点后  (攻击就是  c=c^x)原来的连接仍然是安全的  就是合法的  让你求有多少个合...

Bug___Maker的博客 435

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Irrelevant Elements UVA - 1635 二项式定理+唯一分解定理

 n个数 一层一层往下加就会形成类似杨辉三角形的形状 到了最后一行 系数呈现二项式定理分布 从 C(n-1,0)到C(n-1,n-1) 又因为m至少为2 所有C(n-1,0) C(n-1,n-1)可以不用算  又因为公式C(n,k)=(n-k+1)/kC(n,k-1)可用用递推关系算 只要在前一个的基础上乘以那个递推系数     #include&lt;bits/stdc++.h&gt; u...

Bug___Maker的博客 432

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Photo of The Sky 数学

题意 给出2*n个 值 可以任意构成(x,y)的点 找出一种组合 使得一个矩形可以框住所有的点并且矩形最小 可以简化成把2*n个值分成一个X集合和一个Y集合 先把a数列排序 分两种情况 1.数列的最大值和最小值在一个集合中 例如在X集合中  此时矩形的一条边为(xmax-xmin)已确知 即已经排序的数列的a[2*n-1]-a[0]  Y的边的值应该由Y确定 因为要包含在矩形里 所以要选择连...

Bug___Maker的博客 404

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...

Lattice Animals UVA - 1602 set判重+打表+模拟

对紫书的代码加了注释,参考了 https://blog.youkuaiyun.com/ecnu_lzj/article/details/52830231的文章  主要是模块化各个功能、打表的思想 SET判重的思想 和标准化联通块的思想     // UVa1602 Lattice Animals // Rujia Liu #include&lt;cstdio&gt; #include&lt;cstri...

Bug___Maker的博客 399

Codeforces Round #501 (Div. 3) Stars Drawing

题意  图中的*是否可以由 十字形的* 覆盖  (组成的十字架必须是从中心出发上下左右长度一样)十字架相互之间可以覆盖重叠    也就是两十字架可以公用边      这题简单和复杂两个版本都能暴力过去 就是遍历一遍数组 把每个十字架找出来然后标记一下  最后便利一下看有没有没有被标记到的* #include&lt;bits/stdc++.h&gt; using namespace std; c...

Bug___Maker的博客 399

Firetruck UVA - 208 双向DFS

回溯搜索题 不能裸搜,因为有终点和起点不连通的情况  可以从终点DFS一次找出联通标记出后再用DFS回溯出来  也可以用并查集( 但是写并查集好累啊!) 还有输出格式有点坑,1前面是没空格的 #include&lt;bits/stdc++.h&gt; using namespace std; int n; vector&lt;int&gt;a1[300]; int vis[25]; int l...

Bug___Maker的博客 387

UVA - 1588 换低挡装置

思路:模拟题 注意下标i+j 和j的对应字符串的匹配关系  注意要模拟从最左边到最右边 刚开始做莫名其妙WA,检查不出错误,后面重写了才过的AC代码:#include&lt;cstring&gt; #include&lt;iostream&gt; #include&lt;cstdio&gt; using namespace std; char s1[105],s2[105]; //用字符串读方便...

Bug___Maker的博客 378

Radar Installation

区间贪心 把可放置区域求出来 肯定是在区间的两端放置雷达 把区域由左坐标从小到大排列 进行比较 如果当前区间的左坐标比 上一大段可以一个雷达搞定的区间的最小右端点大 肯定要在上一个区间放雷达了,因为当前区间不能和上一个大段一个雷达 如果当前区间的左坐标没有超过上一个大段的最小右端点 则把当前区间加入上一个大段 并且更新上一个大段的最小右端点 #include&lt;bits/std...

Bug___Maker的博客 373

Power Calculus UVA - 1374 IDA*

这题自己写了个暴力,发现过不去,看紫书才发现有个未被证明的结论:用最后一个得出的去做运算 AC代码 #include&lt;bits/stdc++.h&gt; using namespace std; int a[500]; int n; int h(int d){ int maxsun=-1; for(int i=0;i&lt;=d;i++)maxsun=max(a[i],maxsun...

Bug___Maker的博客 365

D. Vasya And The Matrix 数学 思维 位运算

 推理过程如下 a b c d e f g h i ⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇ a b^e^h c^f^i d^e^f 0 0 g^h^i 0 0  其中   第一行 a^b^e^h^c^f^i ...

Bug___Maker的博客 359
上一篇: Joseph's Problem UVA - 1363
下一篇: Codeforces Round #507 (Div. 1)C. Network Safety
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值