zoukankan      html  css  js  c++  java
  • 【POJ2094】【差分序列】Angry Teacher

    Description

    Mr. O'Cruel is teaching Math to ninth grade students. Students of course are very lazy, so they do not like to do their homework. On the other side, Mr. O'Cruel doesn't like lazy students.
    Recently Andrew failed to do his homework again, so he was given a special task. If he doesn't do it, he will be expelled from his school. The task seems very easy, but it is very technical, so it would take a lot of time. Andrew is given a polynomial p(x) = anxn + an-1xn-1 + . . . + a1x + a0 with integer coefficients.
    He must calculate the value of the polynomial for k successive integer numbers starting from l. Of course writing all these numbers would require too much paper. So as a proof of completing the task, for each number x from l to l + k - 1 Andrew is asked to provide the sum of squares of m last digits in decimal notation of p(x).
    Since Andrew is lazy, he doesn't want to do the task by himself. So he asks you to write the program that calculates the values requested.

    Input

    The first line of the input file contains n, l, k, and m (0 <= n <= 10, 0 <= l <= 101000 , 1 <= k <= 1 000, 1 <= m <= 1 000).
    The following n + 1 lines contain coefficients of the polynomial: an , an-1 , . . . , a1 , a0 (0 <= ai <= 101000).

    Output

    Output k lines --- for x from l to l + k - 1 output the sum of squares of last m digits of p(x).

    Sample Input

    3 0 10 2
    1
    0
    2
    1
    

    Sample Output

    1
    16
    10
    25
    58
    45
    85
    89
    85
    80

    Source

    Northeastern Europe 2004, Northern Subregion
    【分析】
    差分序列是个比较有意思的东西。
    题意:给出一个多项式p(x) = an * (x ^ n) + an-1 * (x ^ (n - 1)) + an-2 * (x ^ (n - 2)) .. a1 * x + a0,询问p(l)~p(l + k - 1)这些项的最后m位的平方和。
     
    差分序列和伯努利数都可以在m ^ 2的时间内求自然数幂和,当然如果你用FFT求逆元伯努利数可以达到mlogm,但伯努利数的公式较为复杂,差分序列相对来说更好操作一些。
    这道题是差分序列的裸题,直接做差分到n行,然后每次更新的时候只需要记录最后一行的值就好了。
     
  • 相关阅读:
    (视频)Erich Gamma 与 Visual Studio Online 的一点野史
    三维重建技术概述
    三维重建基础
    用户故事驱动的敏捷开发 – 2. 创建backlog
    用户故事驱动的敏捷开发 – 1. 规划篇
    TFS 10周年生日快乐 – TFS与布莱恩大叔的故事
    【DevOps敏捷开发动手实验】开源文档 v2015.2 stable 版发布
    看见的力量 – (II) 影响地图
    看见的力量 – (I) 解题的思维
    UDAD 用户故事驱动的敏捷开发 – 演讲实录
  • 原文地址:https://www.cnblogs.com/hoskey/p/4385834.html
Copyright © 2011-2022 走看看