• 10.21下午考试


    100+30+100=230

    rank6

    好菜啊

    表示第二题80分90分他们都怎么写的。。。

    T3暴力直接AC。。。

    1、数列

    (sequence.pas/c/cpp)

    【题目描述】

    小林是个爱数学的孩子。这一天,他正在研究斐波那契数列。斐波那契数列的定义为:

    F[0] = 0

    F[1] = 1

    F[n] = F[n-2] + F[n-1] (n >= 2)

    聪明的小林马上就想出了 F[n]的通项公式。接着他又想到,如果 F 数列不是数,而是字符串,‘+’是字符串的拼接号,那么 F 数列的第 n 项会是多少呢?

    在上述定义中, F[0] = “0”, F[1] = “1”, F[2] = “01”, F[3] = “101”,F[4] = “01101”, ...... 。

    由于 F[n] 的第 n 位可能很大,小林只需要知道 F[n]的第 L 位至第 R 位。其中 L 和 R 都是从 0 开始计数。

    【输入格式】

    一行共三个整数,分别为 n, L, R。

    【输出格式】

    只有一行,是一个长为 R-L+1 的字符串。

    【样例输入】

    4 1 3
    

    【样例输出】

    110
    

    【数据规模】

    对于 40%的数据, n <= 20;

    对于 100%的数据, 0 <= n, L, R < 2^31, 0 <= R-L <= 10000。

    【题解】

    大水题

    他妈的推了40分钟

    当n>=47 len>2147483647

    所以可以直接把>=47的奇数变为47

    >=48的奇数变为48(好像是46忘了)

    然后把前十几预处理出来(可以直接打表。。。)

    然后后面的递归处理

    一个区间可能跨过端点也可能不跨过

    分三种情况处理

    反正就那么做就行了

    2、互异

    (diff.pas/c/cpp)

    【题目描述】

    小林正在研究一串各项互不相同的数列。

    数列的长度为 n,数列的各项为 a1, a 2 , a 3, ..., a n 。

    小林想找到一个正整数 m,使得数列中各项对 m 取模后,依然互异。由于 m很大时一定成立,因此小林想找一个最小的正整数 m。

    同时,从魔法城堡回来的亮亮为了向小林炫耀自己破魔法阵时所用的神光,便赐予小林法力,使他能够用神光去掉数列中至多 k 项(不需要连续)。

    【输入格式】

    第一行两个整数 n 和 k。

    第二行为 n 个互不相同的整数, a1, a 2 , a 3, ..., a n 。

    【输出格式】

    只有一个整数,表示 m 的最小值。

    【样例输入】

    7 0
    2 4 5 8 9 14 20
    

    【样例输出】

    13
    

    【数据规模】

    对于 30%的数据, 1≤n≤10, k=0;

    对于另外 30%的数据, 1≤n≤100, 0≤k≤2;

    对于 100%的数据, 1≤n≤5000, 0≤k≤4, 0≤ a i ≤10^6。

    【题解】

    如果两个数模m相等,那么他俩差是m倍数

    预处理所有数的差,放到100万个桶fuck[i]里

    然后打一发线性筛,求出b[i]代表差中至少有b[i]个含有因子i

    从小到大枚举m,首先b[m]要小于k*(k+1)/2才能继续

    然后呢就暴力枚举n个数取模,判断是否有小于等于k个数,如果是输出m,break掉即可。不是继续枚举m。

    复杂度O(玄学)。就讨厌这种题。。。。qtmd

    3、魔法

    (magic.pas/c/cpp)

    【题目描述】

    亮亮在炫耀了神光后,觉得自己的魔法不能像梦境中一样将连续一片区域笼罩,显示不出自己的本领,于是又埋头苦睡,于睡梦中冥神苦思,终于创造出了自己的法杖。

    他的法杖一黑一白,也能够像在破魔法阵时那样发出神光,笼罩连续的一片区域。他很开心,于是决定再次去向小林炫耀。

    小林正在计算一列数列的标准差。虽然数列中数的个数很多,但他算得又快又准。

    亮亮见状,设置了一个参数 D,举起黑色法杖,发出黑色神光,将数列中从L 到 R 位置上的数全都笼罩,只见被笼罩的数中,所有小于 D 的数都变成了 D,而其余的数没有发生变化。小林十分惊异,只见亮亮微微一笑,修改了参数 D,L 和 R 的值,紧接着举起白色法杖,发出白色神光,将数列中从 L 到 R 位置上的数全都笼罩,只见被笼罩的数中,所有大于 D 的数都变成了 D,而其余的数没有发生变化。

    亮亮说:“我能瞬间改变一个区间内数的值,你能立刻算出一个区间内所有数的标准差吗?”这下又轮到你出手帮助小林了。

    【输入格式】

    第一行为一个整数 n,表示数列的长度。

    第二行为 n 个整数ai ,表示初始的数列。

    第三行为一个整数 m,即操作数。

    接下来 m 行,每行分别表示一个操作,格式如下:

    1、 U l r d 亮亮发动黑色神光,将区间[l,r]中小于 d 数变成 d;

    2、 D l r d 亮亮发动白色神光,将区间[l,r]中大于 d 数变成 d;

    3、 A l r 亮亮要求小林计算区间[l,r]中数的标准差。

    【输出格式】

    输出每次’A’操作所询问的数值,保留一位小数。

    【样例输入】

    5
    1 2 3 4 5
    5
    A 1 5
    U 1 3 2
    A 13
    D 3 5 4
    A 1 3
    

    【样例输出】

    1.4
    0.5
    0.5
    

    【数据规模】

    对于 50%的数据, n,m<=1000;

    对于 100%的数据, 1<=n,m<=50000, 1<=l,r<=n, 1<=a[i],d<=10^6。

    【提示】

    方差(displaystyle D=frac {displaystyle sum_{i=1}^n(x_i-ar x)^2}n),标准差(sigma=sqrt D)

    【题解】

    (displaystyle D=frac {displaystyle sum_{i=1}^n(x_i-ar x)^2}n)

    (displaystyle quad=frac {displaystyle sum_{i=1}^n(x_i^2-2x_iar x+ar x^2)}n)

    (displaystyle quad=frac {displaystyle sum_{i=1}^nx_i^2-2ar xsum_{i=1}^nx+sum_{i=1}^nar x^2}n)

    (displaystyle quad=frac {displaystyle sum_{i=1}^nx_i^2-2nar x^2+nar x^2}n)

    (displaystyle quad=frac {displaystyle sum_{i=1}^nx_i^2-nar x^2}n)

    (displaystyle quad=frac {displaystyle sum_{i=1}^nx_i^2}n-ar x^2)

    所以我们需要维护一个区间平方和和一个区间和

    可以用线段树

    并打一个区间是否全部相等的标记,如果全部相等那么直接操作

    能跑到200多ms

    但是

    震惊的是

    1300ms的暴力

    AC了

    qtmd

    这套题sb题啊

    正解还他妈分块。。。return dou

  • 相关阅读:
    操作系统--进程间同步
    操作系统--进程间通信
    LeetCode-- Unique Binary Search Trees II
    STL源码--序列容器(一)
    操作系统--用户级线程和内核级线程
    非洲孩子
    寻找最大数(三)
    找点
    心急的C小加
    1044 拦截导弹——http://codevs.cn/problem/1044/
  • 原文地址:https://www.cnblogs.com/oier/p/9838465.html
Copyright © 2020-2023  润新知