zoukankan      html  css  js  c++  java
  • 数学水题

    自己的数学基础简直烂到爆。。

    这里面随机做

    113C. Double Happiness

    问区间([l, r])内有多少个素数可以表示为(a^2 + b^2)的形式

    任何一个满足条件的数都可以表示为(4k + 1)的形式

    证明

    bitset压一下位

    此题完结

    代码

    121C. Lucky Permutation

    长度为(n)的排列中第(k)大的排列,有多少个位置满足下标和值都只含4/7

    由于阶乘的数量增长非常迅速,而(k)又非常小,那么显然最后的序列只有最后几位会发生改变。

    前面的位置都是(i = a[i])。那么前面的可以直接数位dp/爆搜,后面的部分是经典问题,可以用逆康托展开计算。

    代码

    134B. Pairs of Numbers

    数对((a, b))每次可以变为((a, a + b))或者((a+b, a))(初始时为((1, 1))),问其中一个变(n)的最小步数是多少

    一个显然的思路是对所有((N, i))算出答案后取个min,而对于任意((N, i))最优的策略为变为((N - i, i) -> (N - i - i, i)),然后不断递归下去

    代码

    294C. Shaass and Lights

    给一串(n)个灯,有(m)个灯初始是亮的,并给出初始亮的灯的序号。每次操作能点亮靠近亮的灯的一盏灭的灯,问点亮所有的灯有多少种方案。

    点亮所有的灯总共需要(n - m)

    对于每一段分别考虑,最左边和最右边的一段显然只有一种答案,中间的有(2^{a_i - a_{i - 1} - 1})种答案

    而对于每一段,我们还需要统计出其在答案序列中的出现情况,也就是(C_{n - m - (sum_i)}^{a_i - a_{i - 1} - 1})

    其中(sum_i = sum_{i = 1}^{i - 1} a_i - a_{i - 1} - 1)

    乘起来就是答案

    代码

    615D. Multipliers

    给出一个数的质因子分解的形式,问其所有约数的积是多少,

    直接枚举每个质因子的幂算贡献,注意指数取模要模(phi(10^9 + 7))

    代码

    616E. Sum of Remainders

    (sum_{i = 1}^m n \% i)(1 leqslant n, m leqslant 10^{13})

    (n \% i = n - n / i * i)

    直接数论分块

    代码

    839D. Winter is here

    给出一些数,求取出一些数,当他们的GCD大于0时,将数量乘GCD累加到答案上,求累加和。

    枚举(gcd),然后直接容斥减掉是(gcd)倍数的贡献

    中途可能用到一点组合数的结论:(sum_{i = 1}^n i C_n^i = i * 2^{n - 1})

    代码

    448E. Divisors

    给出一个x,k,每次操作都会将x分解因数,得到新的序列,然后每次再分解序列中的每一个数,按照每一个数分解因数从小到大排,整体顺序不做调整。

    写了一发暴力居然过了。。

    代码

    305C. Find Maximum

    直接按数位dp的套路做即可

  • 相关阅读:
    IDEA启动tomcat乱码
    RowKey设计之单调递增行键/时序数据
    ES入门REST API
    WebSocket-java实践
    Linux(CentOS 7)安装测试mysql5.6服务
    Linux(CentOS 7)安装测试svn服务
    Node.js安装及环境配置之Windows篇---完美,win7已测
    Java配置----JDK开发环境搭建及环境变量配置
    手把手教新手小白在window把自己的项目上传到github
    github常见操作和常见错误!错误提示:fatal: remote origin already exist
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/10226463.html
Copyright © 2011-2022 走看看