数论[模板]

告别手动归档:基于Allegro Skill的XTools一键生成Gerber与生产文件实践 本文详细介绍了基于Allegro Skill的XTools工具如何实现一键生成Gerber与生产文件,大幅提升PCB设计效率。通过自动化流程,解决了传统手动归档中的重复劳动、人为失误和标准不统一等问题,特别适合需要频繁输出生产文件的工程师。文章包含安装配置、实战操作、问题排查及进阶技巧,帮助用户快速掌握这一高效工具。 阅读详情

1如有错误请指出, 万分感谢!

#include<stdio.h>
#include<cmath>
#include<algorithm> 
typedef long long lnt;
const int mod = 1e9 + 7;
const int maxn = 1e6 + 5;
bool mark[maxn];
lnt fac[maxn];
//gcd
lnt gcd(lnt a, lnt b)
{
    return (!b) ? a : gcd(b, a % b); 
}

//扩展欧几里得
    //注意x1和y1容易产生参数冲突 
lnt exgcd(lnt a, lnt b, lnt &x, lnt &y)
{
    if(!b)
    {
        x = 1, y = 0;
        return a;
    }
    lnt xx, yy, d;
    d = exgcd(b, a % b, xx, yy);
    x = yy;
    y = xx - a / b * yy;
    return d; 
}

//快速幂
inline lnt mpow(lnt a, int b)
{
    lnt ans = 1;
    while(b)
    {
        if(b & 1) ans = ans * a % mod;
        a = a * a % mod, b >>= 1;
    }
    return ans;
}

//矩阵
struct Matrix
{
    int m, l;
    int v[1005][1005];
    friend Matrix operator * (Matrix a, Matrix b)
    {
        Matrix c;
        c.m = a.m, c.l = b.l;
        for (int i = 1; i <= c.m; ++ i)
            for (int j = 1; j <= c.l; ++ j)
            {
                c.v[i][j] = 0;
                for (int k = 1; k <= a.l; ++ k)
                    c.v[i][j] = (c.v[i][j] + a.v[i][k] * b.v[k][j]) % mod;
            }
        return c;
    }
};

//组合数 
inline int C(lnt n, lnt m)
{
    if(n < m) return 0;
    return fac[n] * mpow(fac[m] * fac[n - m] % mod, mod - 2) % mod; 
}

//Lucas
lnt lucas(lnt n, lnt m)
{
    if(n < m) return 0;
    if(!m || n == m) return 1;
    return C(n % mod, m % mod) * lucas(n / mod, m / mod) % mod;
}

//线性筛
int n, tot, pr[maxn];
inline void Linear_Sieve()
{
    for (int i = 2; i < n; ++ i)
    {
        if(!mark[i]) pr[++ tot] = i;
        for (int j = 1; j <= tot && i * pr[j] < n; ++j)
        {
            mark[i * pr[j]] = true;
            if((i % pr[j]) == 0) break;
        }
    }
}

//高斯消元
inline void Gauss()
{
    int cnt = 0;
    for (int i = 1; i <= n; ++ i)
    {
        int j = -1;
        for (int k = cnt + 1; j <= m; ++ j)
            if(fabs(a[k][i]) > fabs(a[j][i])) j = k;
        if(j == -1) continue;
        for (int k = 1; k <= n + 1; ++ k)
            swap(a[cnt + 1][k], a[j][k]);
        for (int j = 1; j <= m; ++ j)
        {
            if(j == cnt + 1 || fabs(a[j][i] < eps)) continue;
            double r = a[j][i] / a[cnt + 1][i];
            for (int k = i; k <= n + 1; ++ k)
                a[j][k] -= a[cnt + 1][k] * r;
        }
        cnt ++;
    }

    for (int i = cnt + 1; i <= m; ++ i) 
        if(fabs(a[i][n + 1]) > eps)
        {
            puts("No Solution");
            return;
        }
    if(cnt < n)
    {
        puts("Multiply Solutions");
        return;
    }
    for (int i = 1; i <= n; ++ i)
        printf("%.2f\n", a[i][n + 1] / a[i][i]);
    puts("");
}
int main() {}
Superpowers与 OpenSpec、Spec Kit 对比 按照官方仓库定义,Superpowers 是一套构建在 composable skills 之上的完整软件开发工作流。它不是单纯的 prompt 集合,而是把一系列工程动作做成默认流程。一个需要明确的点:Superpowers 并不只偏 Claude Code,根据。 阅读详情

相关推荐

Visio 2013安装遇阻?手把手教你搞定注册表权限错误1402(附64位系统特殊处理)

本文详细解析了Visio 2013安装过程中常见的注册表权限错误1402问题,特别是在64位系统下的特殊处理方法。通过分步指导如何修改注册表权限、处理Wow6432Node分支以及使用高级工具如subinacl,帮助用户顺利完成安装并避免常见连带问题。

t8u9v0w1x的博客 543

【C++】数据结构与算法

string字符串 头文件:<string> string的定义与初始化 string str="test"; 字符串长度 返回当前字符串长度有 size() 和 length() 两个函数。 string str="test" int n1=str.size(); int n2=str.length(); cout<<n1<<" "<<n2&lt...

qq_41427568的博客 2057

AFSim仿真系统—几何视角下的子系统交互机制解析

本文深入解析了AFSim仿真系统中子系统交互的几何机制。通过剖析世界坐标系、实体坐标系、部件坐标系等七层空间定位体系,阐述了传感器探测、目标指示等交互行为背后的几何原理与限制条件。掌握这套几何视角,是构建高保真、符合物理现实的AFSim仿真模型的关键,能有效避免坐标混乱、交互失效等常见问题。

terraform7cloud的博客 490

【数论分块】数论分块算法模板及真题

数论分块,就是枚举出使得取整函数发生变化的地方。

2401_88501775的博客 1193

基于FPGA的DDS信号发生器

之前的博客讲到了DDS的基本原理,现在用Verilog代码实现DDS,能够产生四种波形,方波,三角波,正弦波,锯齿波,用按键来控制频率和选择波形。其中按键消抖模块来自小梅哥的FPGA自学笔记设计与验证这本书。 module DDS_Module( Clk, Rst_n, EN, Fword, Key1, Pword, DA_Clk, DA_Data ); input Clk...

qq_43534451的博客 9949

蓝牙抓包实战:用nrf52840和Wireshark解析广播包与SCAN_RSP的完整流程

本文提供了一份完整的蓝牙抓包实战指南,详细介绍了如何使用nRF52840 Dongle和Wireshark捕获并解析蓝牙广播包与SCAN_RSP。内容涵盖环境搭建、广播事件分析、数据包结构拆解以及常见连接问题的调试技巧,旨在帮助开发者和物联网工程师深入理解BLE底层通信,提升硬件调试能力。

weixin_29279153的博客 495

数论模板

[toc] 闲的无聊翻了一下快爆了的E盘,发现里面有不少“好东西“”,一堆关于数论的课件,所以就整理一下常见的数论模板。虽然我不会数论,但至少整理一下可以知道以后学什么(顺便水篇博客) 欧几里德: #include<iostream> using namespace std; int hcf(int a,int b) { int r=0; ...

weixin_30878361的博客 242

群晖设置公网ipv6方式域名解析访问

群晖、IPV6、域名解析

爬山虎的博客 2万+

ACM模板 数论

ACM模板 数论

gdymind的博客 1510

反激电源反馈环路设计:UC3842的FB脚与COMP脚接法对比与选型

在开关电源设计中,PWM控制器与光耦的反馈环路接法直接影响系统稳定性与动态响应。UC3842作为经典电流模式控制器,其FB脚和COMP脚分别对应内部误差放大器的输入与输出,决定了环路补偿由内部还是外部承担。FB脚接法利用内部基准和运放,设计简单、成本低,适合小功率适配器;COMP脚接法旁路内部运放,补偿网络外置,动态响应快、精度高,适合中大功率工业电源。理解两种接法的原理与差异,有助于在反激电源设计中优化环路补偿,提升负载调整率和批量一致性。

weixin_31887307的博客 316

黑猫带你学UFS协议第2篇:UFS相关名词释义

本文依据UFSJEDEC3.1、个人工作经验整理而成,如有错误请留言。文章为个人辛苦整理,付费内容,已加入原创保护,禁止私自转载。文章所在专栏《黑猫带你学UFS协议详解》

黑猫奥利奥的博客 5302

[python刷题模板] 一些数论工具

数论工具

liuliangcan的博客 970

编译zlib库给IOS平台用

在弹出的下面对话框中选择Unix Makefiles ,然后点击(Done)完成。使用 lipo与otool查看库类型为arm64,现在可在ios平台使用该库了。zlib自带CMakeLists.txt 所以用CMake-GUI来生成。修改为与系统当前安装的cmake版本 (如:3.22.1)选择zlib源码目录及输出目录,输入下图的CMAKE参数。点击Configure,在弹出的对话框中选择Yes。cmake --install . 进行安装。cmake --build . 进行编译。

994

数论--模板整理

数论–康托展开与逆康托展开模板 数学–数论–组合数(卢卡斯+扩展卢卡斯)模板 数学–数论–Miller_Rabin判断素数 数论–中国剩余定理模板 数学–数论–逆元(拓展欧几里得)模板 ...

日拱一卒,功不唐捐 2775

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IEM模型,地表粗糙度模拟

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

数论模板总结

转自https://www.cnblogs.com/bolderic/p/7406204.html 一些常用的简单数论模板以及书中的定理   组合数取模 1:N M < 1000, 杨辉三角双循环,边加边取模(代码未添加取模) 1 c[1][1] = c[1][0] = 1; 2 for(int i = 2; i <= 50; i++){ 3 c[i][0] = 1...

小胡同的诗 509

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

我的数论模板

我的数论模板 最大公因数 int gcd(int a,int b) { return b&amp;amp;amp;amp;amp;amp;gt;0?gcd(b,a%b):a; } 扩展欧几里得 int exgcd(int a,int b,long long &amp;amp;amp;amp;amp;amp;amp;x,long long &amp;amp;amp;amp;amp;amp;amp;y) {

Dyswan的博客 313

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

[数论+模板] 约数相关算法模板(模板)

文章目录1. 求约数+模板2. 约数个数+模板3. 约数之和+模板4. 最大公约数+模板 1. 求约数+模板 869. 试除法求约数 思路: 约数成对出现,试除枚举的时候仅枚举较小的那个约数即可,所以可以枚举到 n\sqrt nn​ 即可。故时间复杂度为 O(n)O(\sqrt n)O(n​) 注意平方数不要将其相同约数加两遍 模板代码: #include <iostream> #include <algorithm> #include <vector> usi

Y-puyu 的博客 339

ACM数论模板及应用

引论       数论是算法竞赛的宠儿,几乎每个算法竞赛(不论是ACM的省赛、区域赛还是牛客网上的网络赛)都会出一道关于数论的题。这很容易理解,因为算法与数学的关系极其密切,也可以说算法拼到最后就是在拼数学,所以学好数学对于我们来说是至关重要的。下面我将给出数论的基本模板并附上相关的习题及AC代码 模板 #include&lt;stdio.h&gt; #include&lt;math.h&...

董成荣的博客 880

模板集合——数论

关于数论的模板整理

yyf525的博客 194

与数论有关的模板

有一些数论相关的模板,经常是需要用到的。 下降幂多项式乘法 设 $$f(x)=\sum_{i=0}^na_ix^{\underline{i}}$$ $$G(x)=\sum_{i=0}^na_i\frac{x^i}{i!}$$ $$F(x)=\sum_{i=0}^nf(i)\frac{x^i}{i!}$$ 其中$x^{\underline{n}}$表示$\prod_{i=0...

weixin_30363981的博客 112

模板之数论

数论去死!数论什么都不会的蒟蒻QAQ放两个模板就跑~同余方程(exgcd)#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; void exgcd(int a,int b,int &x,int &y) { if(b==0) { x=

LOI_Skyline的博客 780

亿些模板【数论数学】

文章目录前言数论数学模板GCDexgcd快速幂线性推逆元逆元求组合数矩阵乘法线性筛素数-欧式筛线性筛素数-线性筛线性筛欧拉-欧式线性求欧拉龟速乘dp背包LIS最长公共子序列 前言 因为老是懒得打模板的时候老是扣不到自己的标(因为之前的都打得太丑了),所以导致我十分的不爽。便打算开一个模板库。会不断更新的 数论数学模板 (某些附有证明) GCD 我们设d=gcd(a,b)我们设d=gcd(a,b)...

QuantAsk 904

ACM常用模板-数论

常用数论模板,代码大多数来自网络,个人整理总结,不定期更新 基本函数及其性质: 最大公约数与最小公倍数: gcd: //最大公约数 int gcd(int a,int b) { if(b==0) return a; ...

410
上一篇: 强连通分量 & 割点/桥 & 点/边双连通分量 [模板]
下一篇: NOIP2017过山车记
MaxMercer
博客等级 码龄10年 55粉丝 261原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值