acwing蓝桥杯 - 数学知识【下】

这篇具有很好参考价值的文章主要介绍了acwing蓝桥杯 - 数学知识【下】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 目录

欧拉函数

快速幂

求组合数 I

博弈论

        Nim游戏


欧拉函数

acwing蓝桥杯 - 数学知识【下】

 在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目,记作φ(n).  φ(1)=1

acwing蓝桥杯 - 数学知识【下】

1、分解质因子,求出质因子p

2、将p带入,套公式

为了代码方便,套第三个公式

#include <iostream>

using namespace std;


int phi(int x)
{
    int res = x;
    for (int i = 2; i <= x / i; i ++ )
        if (x % i == 0)
        {
            //欧拉计算公式,等价于res*=(1-1/p),防止小数导致精度丢失
            res = res / i * (i - 1);
            while (x % i == 0) x /= i;
        }
    if (x > 1) res = res / x * (x - 1);

    return res;
}


int main()
{
    int n;
    cin >> n;
    while (n -- )
    {
        int x;
        cin >> x;
        cout << phi(x) << endl;
    }

    return 0;
}

 补充:

若a与m互质 ,则有

acwing蓝桥杯 - 数学知识【下】

快速幂

acwing蓝桥杯 - 数学知识【下】

 大佬算法讲解:

acwing蓝桥杯 - 数学知识【下】

 举个栗子:

 acwing蓝桥杯 - 数学知识【下】

如上例所示:

acwing蓝桥杯 - 数学知识【下】

利用a取平方操作,构建k的2的次幂和

#include <iostream>
using namespace std;
typedef long long LL;

int quick_pow(int a, int k, int p)//二进制优化
{
    int res = 1 % p;//表示取模总值
    while (k) {
        if (k & 1) res = (LL)res * a % p;//相乘等价于a的次幂相加,使得k=2的次幂和
        k >>= 1;
        a = (LL)a * a % p;//使k进制进一位
    }
    return res;
}

int n;

int main()
{
    cin >> n;
    while (n--) {
        int a, k, p;
        cin >> a >> k >> p;
        cout << quick_pow(a, k, p) << endl;
    }
    return 0;
}

求组合数 I

acwing蓝桥杯 - 数学知识【下】

 acwing蓝桥杯 - 数学知识【下】

如上公式:从a个苹果里选b个的选法=包含红苹果的选法+不包含红苹果的选法;

包含:除去必选的红苹果,就是在a-1个苹果里选b-1个的选法

不包含:直接丢掉红苹果,在a-1个苹果里选b个 

#include <iostream>
#include <algorithm>
using namespace std;

const int N = 2010, mod = 1e9 + 7;

int c[N][N];

void init()//预处理
{
    for (int i = 0; i < N; i ++ )
        for (int j = 0; j <= i; j ++ )
            if (!j) c[i][j] = 1;//i==0时j必等于0,初始化c[0][0]
            else c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % mod;//套公式
}

int main()
{
    int n;
    init();

    scanf("%d", &n);
    while (n -- )
    {
        int a, b;
        scanf("%d%d", &a, &b);

        printf("%d\n", c[a][b]);
    }
    return 0;
}

博弈论

Nim游戏

acwing蓝桥杯 - 数学知识【下】

结论: 

先手必败状态:a1 ^ a2 ^ a3 ^ ... ^an = 0
先手必胜状态:a1 ^ a2 ^ a3 ^ ... ^an ≠ 0

1、若处于 先手必败状态,则无论怎么操作,之后都会变成先手必胜状态

2、若处于 先手必胜状态,则必有一次操作能使得状态变为先手必败状态

acwing蓝桥杯 - 数学知识【下】

记忆:

当所有值相同,如剩下2 2两堆,先手无论怎么操作,后手只需要做镜像操作即可胜利;记忆特殊情况,当所有值相同,则a1 ^ a2 ^ a3 ^ ... ^an = 0,则先手必败

#include <iostream>
#include <cstdio>
using namespace std;

/*
先手必胜状态:先手操作完,可以走到某一个必败状态
先手必败状态:先手操作完,走不到任何一个必败状态
先手必败状态:a1 ^ a2 ^ a3 ^ ... ^an = 0
先手必胜状态:a1 ^ a2 ^ a3 ^ ... ^an ≠ 0
*/

int main(){
    int n;
    scanf("%d", &n);
    int res = 0;
    for(int i = 0; i < n; i++) {
        int x;
        scanf("%d", &x);
        res ^= x;
    }
    if(res == 0) puts("No");
    else puts("Yes");
}

acwing蓝桥杯 - 数学知识【下】

 文章来源地址https://www.toymoban.com/news/detail-413820.html

到了这里,关于acwing蓝桥杯 - 数学知识【下】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 高等数学(预备知识之三角函数)

    正弦函数, 余弦函数, 正切函数都是 以角为自变量 , 以单位圆上的 坐标或坐标的比值为函数值 的函数, 我们将他们称为 三角函数 sin ⁡ sin sin α alpha α = y cos ⁡ cos cos α alpha α = x tan ⁡ tan tan α alpha α = y x frac{y}{x} x y ​ 正弦函数: y= sin ⁡ sin sin x quad x ∈ in ∈ R 余弦函数

    2024年02月13日
    浏览(43)
  • 高等数学(预备知识之幂函数)

    幂函数 y=x a (a为常数, x为自变量) 例题1 : 判断下列是否为幂函数 (1) y=x 4 (2) y=2x 2 (3) y=2x (4) y=x 3 +2 (5) y=-x 2 只有第一个是对的, 严格意义上来讲,自变量前面不能有前缀和后缀 quad quad 性质: (1) : 图像都过(1,1)点 (2) : y=x a (a1或 a0) 当a为奇数时,y为奇函数, 当a为偶数时, y为偶函数

    2024年02月16日
    浏览(43)
  • 高等数学(预备知识之反函数)

    正弦函数 y = sin ⁡ x y=sin x y = sin x quad ( x ∈ [ − π 2 , π 2 ] xin[-frac{π}{2},frac{π}{2}] x ∈ [ − 2 π ​ , 2 π ​ ] )的反函数叫 反正弦函数 记作 y = arcsin ⁡ x y=arcsin x y = arcsin x , ( x ∈ [ − 1 , 1 ] xin[-1,1] x ∈ [ − 1 , 1 ] , y ∈ [ − π 2 , π 2 ] yin[-frac{π}{2},frac{π}{2}] y ∈ [ − 2 π

    2024年02月07日
    浏览(52)
  • 【蓝桥杯集训·周赛】AcWing 第94场周赛

    4870. 装物品 已知,每个背包最多可以装 5 件物品。 请你计算, 要装下 x 件物品最少需要多少个背包 。 输入格式 一个整数 x。 输出格式 一个整数,表示所需背包的最少数量。 数据范围 所有测试点满足 1≤x≤10 6 。 输入样例1 : 输出样例1 : 输入样例2 : 输出样例2 : 我的

    2023年04月08日
    浏览(41)
  • Shell 编程快速入门 之 数学计算和函数基础

    整数之和 shell程序的数字类型只有整数类型一种,并不支持浮点数。如: 浮点数之和  在shell编程中,浮点数只能被用作字符串来操作,脚本语法本身不提供浮点数的操作方法,但可以调用bc, awk等外部命令来计算并返回结果。如: 两个或多个数的运算只有列出算式计算就行

    2024年02月11日
    浏览(42)
  • 【蓝桥杯集训·每日一题】AcWing 3305. 作物杂交

    3305. 作物杂交 作物杂交是作物栽培中重要的一步。 已知有 N 种作物 (编号 1 至 N),第 i 种作物从播种到成熟的时间为 Ti。 作物之间两两可以进行杂交,杂交时间取两种中时间较长的一方。 如作物 A 种植时间为 5 天,作物 B 种植时间为 7 天,则 AB 杂交花费的时间为 7 天。 作

    2023年04月13日
    浏览(56)
  • 【蓝桥杯备赛Java组】语言基础|竞赛常用库函数|输入输出|String的使用|常见的数学方法|大小写转换

    🎥 个人主页:深鱼~ 🔥收录专栏:蓝桥杯 🌄欢迎 👍点赞✍评论⭐收藏 目录 一、编程基础 1.1 Java类的创建  1.2 Java方法  1.3 输入输出  1.4 String的使用 二、竞赛常用库函数 1.常见的数学方法 2.大小写转换 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,

    2024年01月21日
    浏览(75)
  • 【AcWing】蓝桥杯备赛-深度优先搜索-dfs(1)

    目录 写在前面: 题目:92. 递归实现指数型枚举 - AcWing题库 读题: 输入格式: 输出格式: 数据范围: 输入样例: 输出样例: 解题思路: 代码: AC !!!!!!!!!! 写在最后: 距离蓝桥杯已经不足一个月了, 根据江湖上的传言, 蓝桥杯最喜欢考的是深度优先搜索和

    2024年02月03日
    浏览(56)
  • 蓝桥杯AcWing学习笔记 8-1数论的学习(上)

    我的AcWing 题目及图片来自蓝桥杯C++ AB组辅导课 蓝桥杯省赛中考的数论不是很多,这里讲几个蓝桥杯常考的知识点。 欧几里得算法代码: 就是因式分解的定理,所有的整数都可以唯一分解成若干个质因子乘积的形式: N = P 1 α 1 × P 2 α 2 × . . . × P k α k N=P_{1}^{α_{1}}×P_{2}^{α

    2024年01月16日
    浏览(82)
  • 【AcWing刷题】蓝桥杯专题突破-广度优先搜索-bfs(11)

    目录 写在前面: 题目:844. 走迷宫 - AcWing题库 题目描述: 输入格式: 输出格式: 输入样例: 输出样例: 解题思路: 代码: AC !!!!!!!!!! 写在最后: 怎么样才能学好一个算法? 我个人认为,系统性的刷题尤为重要, 所以,为了学好广度优先搜索,为了用好搜

    2024年02月01日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包