摘要:
题意:给出 n、m 两数,可以对 n 进行两种操作 减一或者乘二,操作过程中 n 必须保证非负,问使 n 变为 m 至少需要几步操作。这是我练水题的时候做到的,题目不难,只是我 bfs 一直没怎么用过比较不熟练,RE 了两发,就整理了这题。首先,若 n==m ,那么步骤数就是 0 ,而若 n > m... 阅读全文
摘要:
BC # 32 1004题意:要求 n 个数和为 n ,而且后一个数等于前一个数或者等于前一个数加 1 ,问有多少种组合。其实是一道很水的完全背包,但是没有了 dp 的分类我几乎没有往这边细想,又是放在第四题,因此完全没有想出来。其实并不难,dp [ i ] [ j ] 表示当前放入 i ,总和是 ... 阅读全文
摘要:
BC # 32 1003题意:定义了括号的合法排列方式,给出一个排列的前一段,问能组成多少种合法的排列。这道题和鹏神研究卡特兰数的推导和在这题中的结论式的推导:首先就是如何理解从题意演变到卡特兰数:排列的总长度为 n ,左右括号各为 m = n / 2 个。当给定的排列方式完全合法的时候,剩下需要排... 阅读全文
摘要:
BC # 32 1002题意:给出一个数组 a 和一个数 K ,问是否存在数对( i , j ),使 ai- ai + 1+……+ (-1)j - iaj;对于这道题,一开始就想到了是前缀和,但是如果只是记录下前缀和数组,那么查找就会成为一个大问题。补题的时候一开始考虑用 hash 数组或者是 se... 阅读全文
摘要:
由于在计算除法时,mod 运算不能直接加在除数被除数后,因此需要将 n / a (mod b )转化为 n * x (mod b ),以便于进行模运算。求 x 的过程就称为求逆元。对于 a 、b (a 与 b 互素)满足 n / a≡ n * x (mod b ),则称 x 为 a 模 b 的逆元;... 阅读全文