1654 方程的解 - Wikioi
题目描述 Description
佳佳碰到了一个难题,请你来帮忙解决。对于不定方程a1+a2+… +ak-1 +ak=g(x),其中k≥2且k ∈ N*,x是正整数,g(x) =xx mod 1000(即xx除以1000的余数),x,k是给定的数。我们要求的是这个不定方程的正整数解组数。举例来说,当k=3, x=2时,分别为(a1,a2,a3)=(2,1,1),(1,2,1),(1,1,2)。
输入描述 Input Description
输人只有一行,为用空格隔开的两个正整数,依次为k,x。
输出描述 Output Description
输出只有一行,为方程的正整数解组数。
样例输入 Sample Input
3 2
样例输出 Sample Output
3
数据范围及提示 Data Size & Hint
【数据范围】
对于40%的数据,ans ≤ 1016;
对于100%的数据,k≤ 100,x≤231一1,k ≤g (x)。
傻逼dp题,只是要高精度(因为内存,我高精度压了十多位)
const
maxn=;
h=;
type
big=array[..]of int64;
var
f,s:array[..maxn,..maxn]of big;
n,k:int64; function q(x,y:int64):int64;
begin
if y= then exit();
q:=q(x,y>>);
q:=q*q mod ;
if y and = then q:=q*x mod ;
end; operator +(a,b:big)c:big;
var
i:longint;
begin
c:=a;
for i:= to b[] do
inc(c[i],b[i]);
if c[]<b[] then c[]:=b[];
for i:= to c[]- do
begin
inc(c[i+],c[i]div h);
c[i]:=c[i]mod h;
end;
i:=c[];
while c[i]>=h do
begin
c[i+]:=c[i]div h;
c[i]:=c[i]mod h;
inc(c[]);
end;
end; procedure print(a:big);
var
i:longint;
k:int64;
begin
write(a[a[]]);
for i:=a[]- downto do
begin
k:=h;
while k> do
begin
k:=k div ;
if a[i]<k then write();
end;
write(a[i]);
end;
end; procedure main;
var
i,j:longint;
begin
read(n,k);
k:=q(k,k);
for i:= to k do
begin
s[,i][]:=;
s[,i][]:=;
end;
for i:= to n do
begin
for j:=k downto i do
f[i,j]:=s[i-,j-];
for j:=i to k do
s[i,j]:=f[i,j]+s[i,j-];
end;
print(f[n,k]);
end; begin
main;
end.
1654 方程的解 - Wikioi的更多相关文章
- vijosP1371 方程的解
vijosP1371 方程的解 链接:https://vijos.org/p/1371 [思路] 组合公式+快速幂+高精单精. 求x^x %1000:因为x最大为2^31-1所以用快速幂在O(logx ...
- 方程的解_NOI导刊2010提高
方程的解 给定x,求\(a_1+a_2+...+a_k=x^x\ mod\ 1000\)的正整数解解的组数,对于100%的数据,k≤100,x≤2^31-1. 解 显然x是可以快速幂得到答案的,而该问 ...
- P1771 方程的解_NOI导刊2010提高(01)
P1771 方程的解_NOI导刊2010提高(01) 按题意用快速幂把$g(x)$求出来 发现这不就是个组合数入门题吗! $k$个人分$g(x)$个苹果,每人最少分$1$个,有几种方法? 根据插板法, ...
- 【Java例题】4.4使用牛顿迭代法求方程的解
4. 使用牛顿迭代法求方程的解:x^3-2x-5=0区间为[2,3]这里的"^"表示乘方. package chapter4; public class demo4 { publi ...
- 模拟7题解 T1方程的解
方程的解 [扩展欧几里德] 首先进行特判,两个小时基本想到了,除了a!=0,b==0,a*c<0这种情况 其次就是一般情况: 首先exgcd求出ax+by=GCD(a,b)的一组任意解 然后两边 ...
- 洛谷P1771 方程的解
P1771 方程的解 都知道这个题可以用隔板法做 把这个\(g(x)\)想象为.....\(g(x)\)个苹果? 因为解是正整数,所以给这些"苹果"分组的时候每组最少有一个 然后我 ...
- codevs3732==洛谷 解方程P2312 解方程
P2312 解方程 195通过 1.6K提交 题目提供者该用户不存在 标签数论(数学相关)高精2014NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录 题目描述 已知多项式方程: a ...
- C++ 二分法求解方程的解
二分法是一种求解方程近似根的方法.对于一个函数 f(x)f(x),使用二分法求 f(x)f(x) 近似解的时候,我们先设定一个迭代区间(在这个题目上,我们之后给出了的两个初值决定的区间 [-20,20 ...
- [CSP-S模拟测试]:方程的解(小学奥数)
题目描述 给出一个二元一次方程$ax+by=c$,其中$x$.$y$是未知数,求它的正整数解的数量. 输入格式 第一行一个整数$T$,表示有$T$组数据.接下来$T$行,每行$3$个整数$a$.$b$ ...
随机推荐
- Java根据一个网址链接获取源代码
package test; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpU ...
- 使用runtime给类动态添加方法并调用 - class_addMethod
上手开发 iOS 一段时间后,我发现并不能只着眼于完成需求,利用闲暇之余多研究其他的开发技巧,才能在有限时间内提升自己水平.当然,“其他开发技巧”这个命题对于任何一个开发领域都感觉不找边际,而对于我来 ...
- [javascript|基本概念|Unll]学习笔记
Uull类型的值:null(只有一个)|空对象指针|typeof操作符返回object 作用:一般用于对即将保存对象但不知具体对象的引用 特殊:null == undefined --> tru ...
- 学习笔记:JavaScript传参方式———ECMAScript中所有函数的参数都是按值传递
我们把命名参数(arguments)视为局部变量,在向参数传递基本类型值时,如同基本类型变量的复制一样,传递一个副本,参数在函数内部的改变不会影响外部的基本类型值.如: function add10( ...
- [翻译.每月一译.每日一段]Exploring Fonts with DirectWrite and Modern C++
Windows with C++ Exploring Fonts with DirectWrite and Modern C++ Kenny Kerr DirectWrite is an incred ...
- laravel步骤 (我是新手)
1/需要一个wnmp之类的虚拟服务器 2/创建路由 php artisan make:route routes Route::group(['middleware' => ['web','a ...
- 【风马一族_git_github】gitGui与github的SSH
权限校验 首先,您的数据保存在远端服务器一份,服务器需要对您的身份识别.一段RSA加密字符串. 启动GUI,菜单-帮助,[Step1-创建密钥]Generate SSH KEY 步骤一: 步骤二: 步 ...
- 《NFS文件共享服务的搭建》RHEL
首先要清楚一点:NFS服务的共享是建立在linux和linux之间的. 配置任何服务之前我们要做的2件事: iptables -F setenforce 0 NFS服务内核防火墙影响不大,主要 ...
- C++与Java多态的区别
多态是指用父指针指向不同子类对象时,调用其共有的函数,不同的子类会有不同的行为.虽然C++和Java都具有多态机制,但是他们的实现不同,使用时的效果也会略有不同. 在C++中 普通函数调用:具体调用哪 ...
- Java HttpURLConnection 抓取网页内容 解析gzip格式输入流数据并转换为String格式字符串
最近GFW为了刷存在感,搞得大家是头晕眼花,修改hosts 几乎成了每日必备工作. 索性写了一个小程序,给办公室的同事们分享,其中有个内容 就是抓取网络上的hosts,废了一些周折. 我是在一个博客上 ...