列表

详情


NC16515. 水题(water)

描述

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

输入描述

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

输出描述

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

示例1

输入:

375 16

输出:

14200

说明:

   鸣谢真·dalao  Tyxao

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 3ms, 内存消耗: 440K, 提交时间: 2023-08-12 11:20:17

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll x,p,q,ans,ge,add;
int m;
map<ll,int> F;
int G[14]={0,1,0,0,2,10,4,40,92,352,724,2680,14200,73712};

int main(){
	cin>>x>>m;
	p=q=1;F[1]=1;
	for(int i=1;;i++){
		ll t=p;
		p+=q,q=t;
		if(p>1e18) break;
		F[p]=1;
	}
	if(F[x]){
		ans=1e18;
		for(int i=2;i<=m;i++){
			if(m%i==0){
				ge=0;while(m%i==0) ge++,m/=i;
				ll tmp=x;add=0;
                while(tmp) add+=tmp/i,tmp/=i;
                ans=min(ans,add/ge);
			}
		}
	}
	else x=x%min(13,m)+1,ans=G[x];
	cout<<ans;

	return 0;
}

上一题