当前位置: 首页 > wzjs >正文

网络营销成功案例有哪些2022揭阳百度seo公司

网络营销成功案例有哪些2022,揭阳百度seo公司,网站建设中单页源码,长宁哪里有做网站优化比较好问题描述 一年级一班有 n 个小朋友坐成一排,统计了这些小朋友的爱好后,老师得知了他们一共有 m 种爱好,每个小朋友会拥有这些爱好中的一种。 如果相邻的小朋友爱好相同,那么他们上课时就会忍不住悄悄说话,违反课堂纪…

问题描述

一年级一班有 n 个小朋友坐成一排,统计了这些小朋友的爱好后,老师得知了他们一共有 m 种爱好,每个小朋友会拥有这些爱好中的一种。

如果相邻的小朋友爱好相同,那么他们上课时就会忍不住悄悄说话,违反课堂纪律。

老师想知道,一种有多少种状态可能发生违法记录的现象。

答案对 100003取模。

输入格式

输入包括两个整数 m,n含义见上文。

输出格式

输出一个整数,代表模 100003 的意义下共有多少种可能的答案。

样例输入

2 3

样例输出

6

分析问题:

总排列数
  • 每个小朋友有 m 种选择,n 个小朋友的总排列数为:

不发生违法记录的排列数
  • 如果没有任何相邻小朋友的爱好相同,那么:

    • 第一个小朋友有 m 种选择。

    • 第二个小朋友不能和第一个相同,有 m-1 种选择。

    • 第三个小朋友不能和第二个相同,有 m-1 种选择。

    • 以此类推,后面的每个小朋友都有 m-1 种选择。

  • 因此,不发生违法记录的排列数为:

发生违法记录的排列数
  • 发生违法记录的状态数 = 总排列数 - 不发生违法记录的排列数。

解题代码:

#include <bits/stdc++.h>  
using namespace std;       
typedef long long ll;     
const int p = 100003;    // 定义快速幂函数qmi(a, n),用于计算a的n次方模p
ll qmi(ll a, ll n) {ll res = 1;              // 初始化结果为1while (n > 0) {          // 当n大于0时循环if (n & 1) {           // 如果n的最低位是1res = (res * a) % p; // 将res乘以a并取模p}a = (a * a) % p;       // 将a自乘并取模pn >>= 1;               // 将n右移一位,相当于n除以2}return res;              // 返回计算结果
}int main() {ll m, n;                 cin >> m >> n;           // 计算所有可能的排列数zong,即m的n次方模pll zong = qmi(m, n) % p;// 计算不发生违法记录的排列数buweifa,即m乘以(m-1)的(n-1)次方模p// 第一个小朋友有m种选择,后面的每个小朋友有(m-1)种选择(不能和前一个小朋友的爱好相同)ll buweifa = m * qmi(m - 1, n - 1) % p;// 计算发生违法记录的排列数ans,即总排列数减去不发生违法记录的排列数ll ans = zong - buweifa;// 如果ans为负数,则加上p以保证结果为正数if (ans < 0) {ans += p;}// 输出最终结果,即ans模pcout << ans % p;return 0;                // 程序正常结束
}

代码说明:

1. 为什么 ll zong = qmi(m, n) % p 和 ll buweifa = m * qmi(m - 1, n - 1) % p 要模上 p

原因
  • qmi 函数内部已经取模:确实,qmi 函数在计算过程中会对每一步的结果取模 p,因此 qmi(m, n) 的结果已经是 m^n % p

  • 额外的取模是为了防止溢出

    • 在计算 buweifa = m * qmi(m - 1, n - 1) 时,qmi(m - 1, n - 1) 的结果可能已经接近 p(最大为 p-1)。

    • 如果 m 也很大,那么 m * qmi(m - 1, n - 1) 的结果可能会超过 long long 的范围,导致溢出。

    • 因此,在乘法操作后再次取模 p,可以确保结果不会溢出,同时保持结果的正确性。

总结
  • qmi 函数内部的取模是为了保证幂运算的结果不溢出。

  • 外部的取模是为了防止乘法操作后的结果溢出。


2. 为什么最后判断大小后不能直接输出 ans,而是输出 ans % p

原因
  • ans 的计算可能为负数

    • ans = zong - buweifa,如果 zong < buweifa,那么 ans 会是负数。

    • 在模运算中,负数的结果需要调整为正数,因此代码中通过 if (ans < 0) ans += p; 来保证 ans 是非负数。

  • 输出 ans % p 是为了确保结果在模数范围内

    • 即使 ans 已经是非负数,它仍然可能大于 p(例如,如果 zong 和 buweifa 都接近 pans 可能接近 2p)。

    • 输出 ans % p 可以确保结果始终在 [0, p-1] 的范围内,符合题目的要求。

总结
  • 判断大小后调整 ans 是为了处理负数情况。

  • 输出 ans % p 是为了确保结果在模数范围内,避免结果超出 [0, p-1]

http://www.dtcms.com/wzjs/348940.html

相关文章:

  • 专业网站建设教程网络推广常见的方法
  • 中建国际建设有限公司网站厦门人才网官方网站
  • 洛阳建站推广公司企业网站建设的作用
  • wordpress站点管理自动优化句子的软件
  • 香港ip做外贸网站sem分析是什么意思
  • 视频网站怎么做统计表简述如何优化网站的方法
  • 链接网站logo网站建设介绍ppt
  • 网站后台权限分配说明百度云盘资源共享链接群组链接
  • 已有域名怎么建设网站如何在手机上建立自己的网站
  • 哪里有做彩票网站了网站应该如何进行优化
  • weex做网站免费发布推广信息网站
  • 嵌入式培训宣传seo搜索引擎优化试题及答案
  • 网站群如何做网站网络营销培训
  • iis创建网站百度竞价排名查询网站
  • 网站建设企业排行榜百度seo报价方法
  • 帝国建设网站网站分析
  • 长沙网络公司seo技术是什么意思
  • 一流的网站建设案例无锡营销型网站建站
  • 网站建设的google付费推广
  • 怎么做地区网站站长工具seo下载
  • 做微信公众号网站网站建设公司哪个好呀
  • 网站建设费无形资产摊销91关键词
  • 手机网站建设报价长沙免费网站建站模板
  • 快速提高网站排名百度推广首页登录
  • 49图库下浏览器竞价托管优化公司
  • 手机网站制作流程全自动推广引流软件免费
  • 党员网站管理系统培训管理平台
  • WordPress一键复制文章南昌seo计费管理
  • 手机网站制作注意事项批量查询指数
  • 济南疫情政策最新动态微信seo是什么意思