小a与黄金街道(欧拉函数)/**模运算规则总结*/

 

链接:https://ac.nowcoder.com/acm/contest/317/D
来源:牛客网

  • 题目描述
    小a和小b来到了一条布满了黄金的街道上。它们想要带几块黄金回去,然而这里的城管担心他们拿走的太多,于是要求小a和小b通过做一个游戏来决定最后得到的黄金的数量。
    游戏规则是这样的:假设道路长度为n米(左端点为0,右端点为n),同时给出一个数k(下面会提到k的用法)设小a初始时的黄金数量为A,小b初始时的黄金数量为B小a从1出发走向n−1,小b从n−1出发走向1,两人的速度均为1m/s
    假设某一时刻(必须为整数)小a的位置为x,小b的位置为y,若gcd(n,x)=1且gcd(n,y)=1,那么小a的黄金数量会变为A∗kx(kg),小b的黄金数量,B会变为B∗ky(kg)当小a到达n−1时游戏结束,小a想知道在游戏结束时A+B的值,答案对109+7取模
  • 输入描述:
    一行四个整数n,k,A,B
  • 输出描述:
    输出一个整数表示答案
  • 示例1
    输入
    4 2 1 1
    输出
    32
  • 示例2
    输入
    5 1 1 1
    输出
    2
  • 备注:3⩽n⩽108,1⩽A,B,k⩽1013

示例1说明
在这里插入图片描述

官方题解

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<string>
#include<queue>
#include<vector> 
#define pi 3.1415926
#define mod 1000000007
using namespace std;//typedef pair<int,int> Node;
typedef long long  LL;
const int Max_n=10005;
int prime[Max_n],is_prime[Max_n];
int j;void GetPrime(){for(int i=2;i<=Max_n;i++) is_prime[i]=1;for(int i=2;i<=sqrt(Max_n);i++){if(is_prime[i]){for(int j=i*i;j<=Max_n;j+=i)is_prime[j]=0;}}j=1;for(int i=2;i<=Max_n;i++)if(is_prime[i])prime[j++]=i;
}
//欧拉函数
LL phi(LL n){LL ans=1;for(int i=1;i<j;i++){if(n%prime[i]==0){//存在素因子int num=0;//当前素因子的个数while(n%prime[i]==0){num++;n/=prime[i];}for(int k=1;k<num;k++) ans=(ans*prime[i])%mod;ans=(ans*(prime[i]-1))%mod;//此处和上面注意这里是prime[i]if(n==1) break;}}if(n>1) ans=n-1;//n是素数return ans;
}LL Qpow(LL a,LL b){LL ans=1;LL res=a%mod;while(b){if(b&1) ans=(ans*res)%mod;res=(res*res)%mod;b>>=1;}return ans;
}
int main(){GetPrime();//这里不要忘记LL n,k,a,b;scanf("%lld%lld%lld%lld",&n,&k,&a,&b);LL ans=((a+b)%mod*Qpow(k,n*phi(n)/2));//模运算规则((a^b)%p)=((a%p)^b)%p printf("%lld",ans%mod);return 0;
}
  • 模运算规则
    (a±b)%p=(a%p±b%p)%p
    (a * b)%p=(a%p * b%p)%p
    ab%p=(a%p)b%p

 

转载于:https://www.cnblogs.com/zut-syp/p/10543689.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264855.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

堆栈认知——逆向IDA工具的基本使用

参考&#xff1a;逆向-IDA工具的基本使用 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/118862881 目录1、文件的打开与关闭2、窗口介绍&#xff1a;图形 文本 其他窗口2.1、图形界面&#xff1a;2.2、文本界面&#xff1a;2.3、反汇编窗口2.4、 十六进制窗口…

堆栈认知——栈溢出实例(ret2text)

参考&#xff1a;栈溢出实例–笔记一&#xff08;ret2text&#xff09; 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/119295954 目录1、什么是栈溢出&#xff1f;2、栈结构3、栈溢出需要解决的问题3.1、解决如何跳转的问题3.2、跳转到哪里去&#xff1f;4、…

堆栈认知——栈溢出实例(ret2shellcode)

参考&#xff1a;栈溢出实例–笔记二&#xff08;ret2shellcode&#xff09; 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/119303513 目录1、栈溢出含义及栈结构2、ret2shellcode基本思路3、实战一下3.1、二进制程序如下3.2、分析调试查看栈3.3、编写payloa…

Glusterfs初试

Gluster的模式及介绍在此不表&#xff0c;这里只记录安装及配置过程。 1.整体环境 server1 : gfs1.cluster.com server2 : gfs2.cluster.com Client: 2.安装Gluster 下载软件https://access.redhat.com/downloads/content/186/ver3/rhel---7/3.4/x86_64/product-software 下…

堆栈认知——堆简介

参考&#xff1a;Linux笔记–堆简介 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/119510863 目录1、前言2、堆的由来3、Linux中堆简介4、堆分类4.1、请求堆4.2、释放堆5、内存分配背后的系统调用6、堆相关数据结构7、堆的申请8、调试验证1、前言 当前针对各…

如何为 Horizon View 配置 VMware VSAN?

原文&#xff1a;http://myvirtualcloud.net/?p5440注明&#xff1a;本文内容基于 VMwareVSAN beta 版本撰写&#xff0c;请访问http://www.vmware.com/products/virtual-san/获得有关正式版本的更新信息。我已经在前面的文章中讨论了VSAN 给 Horizon View 带来的益处&#xf…

配置vscode远程免密登入Linux服务器

视频教程&#xff1a;https://www.bilibili.com/video/BV1s64y167cM?vd_sourcecc0e43b449de7e8663ca1f89dd5fea7d 参考&#xff1a;配置vscode远程免密登入Linux服务器 地址&#xff1a;https://blog.csdn.net/weixin_54178481/article/details/123977675?spm1001.2014.3001.…

Wss 3.0安装指南(一)

Wss 3.0安装指南(一) "基本" 模式 WSS3.0的安装可分为独立服务器安装和服务器场安装,前者是将所有的服务和应用安装在一台Server 上,后者则是…

智能五子棋基本思路

前些天闲时写的,在学数据结构的时拿来练手的.没技术含量,最有技术含量的AI部分,我是看别人(园子里叫二十四生的)的算法改的.刚弄了一下午小程序弄不过去,头疼,现无聊的紧,闲着发着玩.当消遣主要发下AI核心算法.有兴趣的同学用VB,VC.VC#都可以一起做着玩.保持对编程的兴趣.其它没…

webpack 4.0 配置文件 webpack.config.js文件的放置位置

一般webpack.config.js是默认放在根目录的&#xff0c;不在根目录的时候需要在package.json中制定位置&#xff0c;我的配置文件目录是config/webpack.config.js,在package.json文件中的配置为&#xff1a; "scripts": { "build": "webpack --mode p…

PowerShell远程管理Windows Server(2):公网访问【web形式】

*此文章只适合于windows server 2012版本以上&#xff1b;Powershell Web Access需要两个步骤才能使用&#xff1a;一、安装powershell web access功能&#xff1b;二、配置powershell web access&#xff1b;只要在服务器上启用powershell web access功能&#xff0c;即可通过…

POJ 3090 Visible Lattice Points 【欧拉函数】

<题目链接> 题目大意&#xff1a; 给出范围为(0, 0)到(n, n)的整点&#xff0c;你站在(0,0)处&#xff0c;问能够看见几个点。 解题分析&#xff1a;很明显&#xff0c;因为 N (1 ≤ N ≤ 1000) &#xff0c;所以无论 N 为多大&#xff0c;(0,1),(1,1),(1,0)这三个点一定…

精选 5 个漂亮的 CSS3 图片滑过特效

这篇文章将为大家分享5款漂亮的CSS3图片滑过特效&#xff0c;比如滑过后显示图片的详细文字介绍&#xff0c;又比如滑过后对图片进行淡入淡出的效果等等。让我们一起来看看&#xff0c;喜欢的朋友赶紧收藏。 1、非常酷的CSS3图片说明效果 在线演示 / 源码下载 2、纯CSS3图片相…

Cocos2d-x 3.0新引擎文件夹结构

Cocos2d-x 3.0新引擎文件夹结构2014年4月29日 Cocos2d-x 3.0学习作为一个Cocos2d-x的菜鸟&#xff0c;我倒是挺愿意关注不同版本号之间的差别&#xff0c;Cocos2d-x 3.0自2013年7月份開始公布alpha0-pre版本号&#xff0c;到2014年4月23日公布正式版&#xff0c;历经9个版本号…

SOA系列文章(二):服务设计原理:服务模式和反模式

服务设计系列的法则已经发展到最佳通信实践和取样相关编码的程度。本文提供了设计和实现网络服务的基本原理&#xff0c;并且对面向服务的体系结构(SOA)的相关概念做了一个简要的回顾&#xff0c;以及有关于几种模式和反模式的详细讨论&#xff0c;当构建网络服务时&#xff0c…

iOS程序启动原理(上)

为什么80%的码农都做不了架构师&#xff1f;>>> iOS程序启动原理 Info.plist 常见设置 建立一个工程后,会在Supporting files文件夹下看到一个"工程名-Info.plist"的文件,该文件对工程做一些运行期的配置,非常重要,不能删除. 在旧版Xcode创建的工程中,这…

何时使用委托而不使用接口

委托和接口都允许类设计器分离类型声明和实现。给定的接口可由任何类或结构继承和实现&#xff1b;可以为任何类中的方法创建委托&#xff0c;前提是该方法符合委托的方法签名。接口引用或委托可由不了解实现该接口或委托方法的类的对象使用。既然存在这些相似性&#xff0c;那…

microsoft project 出现不能保存为xls文件时可以按照如下方法解决

工具-》选项-》安全性转载于:https://www.cnblogs.com/oymx/p/3753291.html

多功能节点连线绘图控件Nevron Diagram for .NET使用方法及下载地址

Nevron Diagram for .NET是一个功能强大,世界上顶级的.NET图表控件.可扩展的图形报表构架&#xff0c;可以帮您创建功能丰富的Winforms及Webforms图表解决方案。这个产品构建于Nevron表述层框架之上&#xff0c;能为您提供令人激动的视觉冲击&#xff0c;您无法通过其它产品体验…

《DirectX 9.0 3D游戏开发编程基础》 第二章 绘制流水线 读书笔记

模型的表示 场景&#xff1a;物品或模型的集合 任何物品都可以用三角形网络逼近表示。我们经常用以下术语描述三角形网络&#xff1a;多边形(polygons)、图元(primitives)、网络几何单元(mesh geometry)。 描述三角形&#xff1a;指定三个顶点 描述物品&#xff1a;三角形单元列…