Codeforces 933 B. A Determined Cleanup(数学)
Posted 小坏蛋_千千
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces 933 B. A Determined Cleanup(数学)相关的知识,希望对你有一定的参考价值。
Description
In order to put away old things and welcome a fresh new year, a thorough cleaning of the house is a must.
Little Tommy finds an old polynomial and cleaned it up by taking it modulo another. But now he regrets doing this…
Given two integers p p and , find a polynomial f(x) f ( x ) with non-negative integer coefficients strictly less than k k , whose remainder is when divided by (x + k) ( x + k ) . That is, f(x) = q(x)⋅(x + k) + p f ( x ) = q ( x ) · ( x + k ) + p , where q(x) q ( x ) is a polynomial (not necessarily with integer coefficients).
Input
The only line of input contains two space-separated integers p p and (1 ≤ p ≤ 1018,2 ≤ k ≤ 2 000) ( 1 ≤ p ≤ 10 18 , 2 ≤ k ≤ 2 000 ) .
Output
If the polynomial does not exist, print a single integer −1 − 1 , or output two lines otherwise.
In the first line print a non-negative integer d d — the number of coefficients in the polynomial.
In the second line print space-separated integers a0, a1, ..., ad − 1 a 0 , a 1 , . . . , a d − 1 , describing a polynomial f(x)=∑d−1i=0ai⋅xi f ( x ) = ∑ i = 0 d − 1 a i · x i fulfilling the given requirements. Your output should satisfy 0 ≤ ai < k 0 ≤ a i < k for all 0 ≤ i ≤ d − 1 0 ≤ i ≤ d − 1 , and ad − 1 ≠ 0 a d − 1 ≠ 0 .
If there are many possible solutions, print any of them.
Examples input
46 2
Examples output
7
0 1 0 0 1 1 1
题意
给定正整数 p,k p , k ,我们需要找出一个多项式 q(x) q ( x ) ,使得 f(x) = q(x)⋅(x + k) + p f ( x ) = q ( x ) · ( x + k ) + p 的各项系数严格小于 k k 且不为负数,输出 的各项系数。
思路
仔细想想便可以知道,这样的解一定是存在的,所以没有输出 −1 − 1 的可能性
我们可以对原式化简一下: f(x)=x⋅q(x)+k⋅q(x)+p f ( x ) = x · q ( x ) + k · q ( x ) + p
假设 q(x)=a1+a2⋅x+a3⋅x2+⋯+an⋅xn−1 q ( x ) = a 1 + a 2 · x + a 3 · x 2 + ⋯ + a n · x n − 1 ,其中 ai a i 为某一整数
现在我们再来讨论 Codeforces 933 C. A Colourful Prospect (平面图,欧拉公式)
[Codeforces 933A]A Twisty Movement
[Codeforces 933B]A Determined Cleanup
codeforces 933D A Creative Cutout