牛客小白月赛6 水题 求n!在m进制下末尾0的个数 数论

链接:https://www.nowcoder.com/acm/contest/135/C
来源:牛客网

题目描述

其中,f(1)=1;f(2)=1;Z皇后的方案数:即在Z×Z的棋盘上放置Z个皇后,使其互不攻击的方案数。

输入描述:

输入数据共一行,两个正整数x,m,意义如“题目描述”。

输出描述:

一个正整数k,表示输出结尾0 的个数或者放置皇后的方案数
示例1

输入

复制
375 16

输出

复制
14200

说明

鸣谢真·dalao  Tyxao
分析:打表题目中的公式容易得到:f(n) = f(n-1) + f(n-2) (n>=3) 因为x最大取到10^18,所以我们打表前90位就可以了
  然后判断x是否等于前九十项中一项的值,如果等于就计算x!在m进制下末尾0的个数,如果不等于输出a[x%min(13,m)+1],a数组13*13棋盘下每种皇后的个数(类似八皇后,dfs求就可以了)
  重点来看x!在m进制下末尾0的个数
  十进制下:500 = 5*10^2  五进制下: 300 = 3*5^2
  所以:m进制下:x = a*m^k,因为任意一个大于1的数都可以表示为几个质数的乘积
  所以:a*m^k = a*(p1^k1*p2^k2*...*pn^kn)^k = a*(p1^k1k*p2^k2k*...*pn^knk) = a*(p^d1*p2^d2*...*pn^dn)
  我们要求的 k = min(p1,p2,...,pn)
AC代码:
#include <map>
#include <set>
#include <stack>
#include <cmath>
#include <queue>
#include <cstdio>
#include <vector>
#include <string>
#include <bitset>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <algorithm>
#define ls (r<<1)
#define rs (r<<1|1)
#define debug(a) cout << #a << " " << a << endl
using namespace std;
typedef long long ll;
const ll maxn = 1e6+10;
const double eps = 1e-8;
const ll mod = 1e9 + 7;
const int inf = 0x3f3f3f3f;
const double pi = acos(-1.0);
ll f[100]={-1,1,0,0,2,10,4,40,92,352,724,2680,14200,73712,365596};
ll prime[] = {0, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97};
ll getcnt( ll p, ll x ) {ll res = 0;while(x) {res += x/p;x /= p;}return res;
}
int main() {ios::sync_with_stdio(0);ll a[105];a[1] = 1, a[2] = 1;for( ll i = 3; i <= 92; i ++ ) {a[i] = a[i-1] + a[i-2];}ll x, m;cin >> x >> m;bool flag = false;for( ll i = 1; i <= 92; i ++ ) {if( a[i] == x ) {flag = true;break;}}if( flag ) {map<ll,ll> mp;vector<pair<ll,ll> > e;for( ll i = 1; i <= 25; i ++ ) {while(m%prime[i]==0) {  //m中有多个相同的质数mp[prime[i]] ++;m /= prime[i];}}for( auto i : mp ) {e.push_back(make_pair(i.second,getcnt(i.first,x)));}ll k = 1e18+1;for( ll i = 0; i < e.size(); i ++ ) {k = min(k,e[i].second/e[i].first);  //因为质数可能有多个,所以求的质数还要除以质数的个数}cout << k << endl;} else {cout << f[x%min((ll)13,m+1)+1] << endl;}return 0;
}

  

转载于:https://www.cnblogs.com/l609929321/p/9529395.html

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

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

相关文章

ajax 页面无刷新

<!-- 使用原生Ajax 和 $.ajax 实现局部刷新的过程 --><!-- 封装通用XMLHttpRequest对象 --><!DOCTYPE html><html lang"en"><head> <meta charset"UTF-8"> <title>创建XMLHttpRequest</title> <style&…

php7安装详解_,PHP7 redis扩展安装详解

1、安装redis(1)下载&#xff1a;https://github.com/phpredis/phpredis/tree/php7 或下载http://pan.baidu.com/s/1i5DFrjn用samba挂载导进去(2)yum -y install m4 autoconf # 安装依赖(3)unzip phpredis-php7.zip # 解压(4)cd ./phpredis-php7 # 进入目录(5)phpize #用php…

python之_init_函数的简介

1、每个package中都必须包含一个_init_.py文件除了不需要加载模块的 它方便在外部统一调用&#xff0c;和在内部互相调用&#xff0c;它可以为空&#xff0c;当为空时&#xff0c;作用是将这个文件夹下的内容当作包执行&#xff0c;便于解释器区分执行。 2、定义类的时候&#…

22. Generate Parentheses

题目描述&#xff1a; Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n 3, a solution set is: ["((()))","(()())","(())()","()(())","()()…

es6中的块级作用域

块级作用域 凡是带{}都是块级作用域&#xff0c;if(){} for(){} 对象{} 1.在块级作用域下&#xff0c;var 和function跟在window下一样&#xff0c; function有个特殊的一点&#xff0c;在块级作用域下会提前声明&#xff0c;不会提前定义 2.在块级作用域下 let和const声明的变…

php图片地址参数错误,图片上传时一直显示请求地址错误怎么办

1、出现“请求地址错误”的直接原因&#xff1a;图中$action null2.根本原因&#xff1a;url美化那一节课程&#xff0c;去掉 index.php的.htaccess 文件修改的时候&#xff0c;没有按照老师的来写&#xff0c;所以美化url以后获取不到地址栏参数&#xff0c;导致$action值为n…

C#写的WebServices可运行于树莓派

阅读目录 Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器Raspkate项目演示回到目录Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器 最近在业余时间玩玩树莓派&#xff0c;刚开始的时候在树莓派里写一些基于wiringPi库的C语言程序来控制树莓派的GPIO引脚&#x…

[导入]Ms XmlDom 异步装载Xml文件

Ms XmlDom 异步装载Xml文件文章来源:http://blog.csdn.net/net_lover/archive/2004/07/07/36015.aspx 转载于:https://www.cnblogs.com/zhaoxiaoyang2/archive/2004/07/07/816151.html

Django的View(视图)

Django的View&#xff08;视图&#xff09; 一个视图函数&#xff08;类&#xff09;&#xff0c;简称视图&#xff0c;是一个简单的Python 函数&#xff08;类&#xff09;&#xff0c;它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容&#xff0c;一个重定向&am…

设计模式之--原型模式

1.原型模式定义 原型模式非常简单&#xff0c;定义如下&#xff1a; 用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型创建新的对象 2.通用类图 原型模式的核心是实现Cloneable接口&#xff0c;此接口为JDK提供的一个标识接口&#xff0c;只有实现了此接口的类才…

搜索目录里所有文件(包括子目录)

搜索目录里所有文件(包括子目录&#xff09; 资料来源&#xff1a;http://www.cnblogs.com/jjwwww/archive/2004/09/04/39559.aspx 用到两个函数ParseDirectory 和CreatePathListvoidParseDirectory(stringpath, stringfilter) { strin…

一张图理解buffer与cache

转载于:https://blog.51cto.com/11193863/2169166

oracle服务器不识别tc服务,记一次ORACLE无法启动登陆事故

打开XSHELL 登陆ORACLE用户1.sqlplus scott/scott 提示登陆失败2.sqplus / as sysdba 启动数据库提示3.查找日志操作日志&#xff1a;$ORACLE_HOME/startup.log启动日志&#xff1a;$ORACLE_BASE/diag/rdbms/ora11g/ora11g/trace/alert_ora11g.log (ora11g为SID值)启动日志如果…

BMP位图之8位位图(三)

起始结构 typedef struct tagBITMAPFILEHEADER { WORD bfType; //类型名&#xff0c;字符串“BM”&#xff0c; DWORD bfSize; //文件大小 WORD bfReserved1; //保留字 WORD bfReserved2; //保留字 DWORD bfOffBits; //实际位图数据的偏移字节数&#xff0c;即前三个部分长度之…

Node.js 事件循环

Node.js 事件循环 Node.js 是单进程单线程应用程序&#xff0c;但是因为 V8 引擎提供的异步执行回调接口&#xff0c;通过这些接口可以处理大量的并发&#xff0c;所以性能非常高。 Node.js 几乎每一个 API 都是支持回调函数的。 Node.js 基本上所有的事件机制都是用设计模式中…

android天气查询(二)之网络json数据的获取

前面一篇文章介绍了如何使用ksoap获取天气信息&#xff0c;但是使用的网络资源受到了限制&#xff0c;所以我们这里会采用第二种方法&#xff0c;可以无限制的获取。http://m.weather.com.cn/data/101010100.html 但是对应的101010100(北京)我们怎么获取呢&#xff0c;还有就是…

累.....

今天我真的蔫了&#xff0c;好累&#xff0c;脑子也好浊&#xff0c;但是还好&#xff0c;最终达到了预期的目的。我终于把henry的dataGrid实现了&#xff0c;犯了低级错误&#xff0c;和好多人讨论&#xff0c;但最终还是henry解决的。那一刻&#xff0c;真的好爽&#xff0c;…

linux cp 时 略过文件,CentOS下执行cp命令式提示略过文件夹

今天在CentOS下复制一个文件夹到另一个文件夹的时候cp ./res /usr 的时候出现了问题&#xff0c;提示我的是&#xff1a;cp略过了文件夹后来我找了一下在网上search了一下CP命令的用法&#xff1a;CP命令该命令的功能是将给出的文件或目录拷贝到另一文件或目录中&#xff0c;同…

hibernate详解

Hibernate原理与应用 主要内容 1、引入 2、安装配置 3、基本概念和CURD 4、HQL和Criteria 5、关联映射 6、继承映射 7、集合映射 8、懒加载 9、缓存 10、事务 11、其他 12、Hibernate不适合的场景 13、与JPA的集成(annotation方式) 14、最佳实践 1、引入 模型不匹配(阻抗不匹配…

Android Studio 环境搭建参考,jdk10javac命令提示不是内部或外部命令

https://blog.csdn.net/qq_33658730/article/details/78547789 win10下Android Studio和SDK下载、安装和环境变量配置 http://yanmin99.com/ android-0基础从入门到精通 环境变量ANDROID_HOMEE:\Program Files (x86)\Android\SdkJAVA_HOMEE:\Program Files\Java\jdk1.8.0_161TO…