题目描述 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的更多相关文章

  1. vijosP1371 方程的解

    vijosP1371 方程的解 链接:https://vijos.org/p/1371 [思路] 组合公式+快速幂+高精单精. 求x^x %1000:因为x最大为2^31-1所以用快速幂在O(logx ...

  2. 方程的解_NOI导刊2010提高

    方程的解 给定x,求\(a_1+a_2+...+a_k=x^x\ mod\ 1000\)的正整数解解的组数,对于100%的数据,k≤100,x≤2^31-1. 解 显然x是可以快速幂得到答案的,而该问 ...

  3. P1771 方程的解_NOI导刊2010提高(01)

    P1771 方程的解_NOI导刊2010提高(01) 按题意用快速幂把$g(x)$求出来 发现这不就是个组合数入门题吗! $k$个人分$g(x)$个苹果,每人最少分$1$个,有几种方法? 根据插板法, ...

  4. 【Java例题】4.4使用牛顿迭代法求方程的解

    4. 使用牛顿迭代法求方程的解:x^3-2x-5=0区间为[2,3]这里的"^"表示乘方. package chapter4; public class demo4 { publi ...

  5. 模拟7题解 T1方程的解

    方程的解 [扩展欧几里德] 首先进行特判,两个小时基本想到了,除了a!=0,b==0,a*c<0这种情况 其次就是一般情况: 首先exgcd求出ax+by=GCD(a,b)的一组任意解 然后两边 ...

  6. 洛谷P1771 方程的解

    P1771 方程的解 都知道这个题可以用隔板法做 把这个\(g(x)\)想象为.....\(g(x)\)个苹果? 因为解是正整数,所以给这些"苹果"分组的时候每组最少有一个 然后我 ...

  7. codevs3732==洛谷 解方程P2312 解方程

    P2312 解方程 195通过 1.6K提交 题目提供者该用户不存在 标签数论(数学相关)高精2014NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录   题目描述 已知多项式方程: a ...

  8. C++ 二分法求解方程的解

    二分法是一种求解方程近似根的方法.对于一个函数 f(x)f(x),使用二分法求 f(x)f(x) 近似解的时候,我们先设定一个迭代区间(在这个题目上,我们之后给出了的两个初值决定的区间 [-20,20 ...

  9. [CSP-S模拟测试]:方程的解(小学奥数)

    题目描述 给出一个二元一次方程$ax+by=c$,其中$x$.$y$是未知数,求它的正整数解的数量. 输入格式 第一行一个整数$T$,表示有$T$组数据.接下来$T$行,每行$3$个整数$a$.$b$ ...

随机推荐

  1. JavaScript之canvas

    num.push(x,y); 动画草图(举个栗子,我们把数字“2”给画出来): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...

  2. JAVA之网页截屏

    先吐槽一下下: 表示接近两个月没有敲代码了,现在看一下代码都感觉有点生了.三天打鱼两天晒网是不行的,再说我本来就有“健忘症”,真的是木有办法啊 ̄へ ̄.我一直信奉一句话:“勤能补拙”,它也是我学习路上的 ...

  3. 【原创】如何找到Oracle中哪条记录被锁

    通常有这种情况,某个表或者准确的说是表的某条记录被锁(TX锁),在业务层面排查之余,一般都会想知道是哪条记录被锁,每次被锁的是否是同一条记录?还是每次都不同?通过记录可以找到这条记录可以在哪个模块.哪 ...

  4. 【原创】ORA-04068: 已丢弃程序包 的当前状态研究

    不久前在市检的生产环境上有个存储过程执行报错,错误信息如下: ORA: 已丢弃程序包 的当前状态 ORA: package "ZHANGXSH.PR_TEST" 的当前状态失效 O ...

  5. 关于iOS自定义UITabBar的几种方法

    作为iOS开发最常用的两个多视图控制器 NavigationController 和 TabBarController 已经很强大了,基本上在大部分的应用中都能看到它们的影子.但是在使用的过程中,系统 ...

  6. C语言知识总结(3)

    数组 数组的特点: 只能存放一种类型的数据,比如int类型的数组.float类型的数组 里面存放的数据称为“元素” 初始化方式 ] = {, , }; ] = {,}; , , }; ] = {[]= ...

  7. GForms开发平台

    1. 开发平台概述 1.1. 产品概述 GForms开发平台让开发人员甚至非技术人员在短短几分钟内创建全功能的展现服务,让开发团队更加适应客户和市场的需求,从而提高客户服务和速度实现收益. GForm ...

  8. request.getSession();为什么不用response儿用request!

    首先回答为什么分别是response和request这两个内置对象.你得先明白你通过获取对象是做什么用的,是往哪用的.第一个PrintWriter out=response.getWriter()是想 ...

  9. WP开发笔记——程序的退出方法

    Windows Phone程序中,并没有之前的类似于“App.Exit()”之类的函数用来让你退出程序.这是怎么回事儿呢? 很简单,在Windows Phone 7中系统要求配备了硬件的“Back”键 ...

  10. Java注意的地方

    oo: 单一原则(SRP) 开放封闭原则(OCP) 里氏替换原则(LSP) 依赖倒转原则(DIP) 接口分离原则(ISP) equals: 若两个对象equals为true,则他们的hashcode值 ...