摘要:
传送门 这题出的真不是一般的好…… 一句话描述题意就是求无限个2垒在你的指数上……求mod p的值,其中p不超过107 这玩意其实是一个递推函数(当然我们是递归求解的),我也不知道怎么拿语言描述233. 我们这题要用到欧拉降幂公式! 首先啥是欧拉降幂公式? 它的基本形式长这样: Ak ≡ Ak%φ( 阅读全文
摘要:
传送门 这题简直了……(虽然说python可以直接过,但是你考试的时候也只是能拿python对拍而不是交上去……) 这题直接用更相减损术会T掉(我们不可能还用高精除法,因为数这么长的话高精除法的效率很低),但是直接更相减损也会T……即使压位都不行,但是有一位dalao压位就过了,而我就T了…… 于是 阅读全文
摘要:
传送门 这道题好像一开始想到了差不多的做法orz?后来都不大敢相信就是这么做的……有点瞎搞。 后来看了CF的官方题解,感觉还是挺有道理的。首先对于1和大于n/2的质数肯定是不行的,我们直接忽略。然后,对于每一个质数的倍数,我们肯定是把他们组合在一起更优。如果这些数有奇数个,那我们就把质数的2倍挑出来 阅读全文
摘要:
传送门 luogu简化了题意而且提供了翻译。 直接开做,这题可以选择使用CRT,我也使用了……但是其实似乎暴力也可以。 我们老套的CRT操作,这样每次对于输入的值直接乘一下就行。 注意特判的时候如果四个值都是0的话要输出0. 看一下代码(CRT的内容在代码里) 阅读全文
摘要:
传送门 这道题是一道相当不错的不定方程的题! 题目大意是要我们用若干个两种给定质量的砝码称出给定质量的物品,其中满足使用砝码总数最小,如果有多组解输出砝码质量最小的一组解。 其实转化一下我们还是要求ax+by=c的一组解…… 这个当然很好求,之后既然要求砝码总数最小,我们只要让x或者y最小即可,然后 阅读全文
摘要:
传送门 这道题是求解不定方程的一道好练习题。 题目描述的很诡异……还说什么k进制,其实就是要求一个数A,每次加C,问到B要加多少次,所有的数对2k取模。 也就是说我们能列出如下方程:A+xC ≡ B (mod 2k)我们把这个方程两边移项转化,那么就能得到一个不定方程的形式。 老套路,判断有没有解, 阅读全文
摘要:
传送门 ovo,这题我一开始竟然没看出来怎么做…… 我们不妨设a>b,那么对于每一个a,所能被看到的点的个数就是phi(a),直接求一下欧拉函数的前缀和就行。之后在对于b>a的时候是同理的,还要×2.最后我们发现(1,1)被算了两次,然后还有(0,1)和(1,0)没算,那就再+1. 欧拉函数要线性筛 阅读全文
摘要:
传送门 本题的大意是,给定一个数x,求出一个以1开头,x为结尾,中间的每一项大于前一项而且是前一项的倍数,求这样一个序列的最长长度和在最长长度情况下有多少种组合情况。 一开始想了想没什么想法……暴搜?可能T掉。后来发现,为了保证最长的话,肯定每次乘的数都是一个质数,否则如果是一个合数的话,我们可以把 阅读全文
摘要:
传送门 本题的大意是,每次给定两个int范围内的数l,r,其中r-l <= 1000000,求出[l,r]之内的所有素数距离最近的一对和距离最远的一对。 这个题直接暴力枚举肯定T,于是之后我还有一种沙雕办法,就是先筛出来1~√r之内所有的素数,这样的话就可以来筛区间内的素数了……于是我就又每一个跑了 阅读全文
摘要:
传送门 题目描述有点复杂,但其实就是要求给定字符串中不相交的回文串个数。 提到不相交的话……我们好像突然想到以前做最长双回文串的时候拼接的这么个思路……所以我们依然可以先用manacher处理出来每个点的最长回文半径,那么在这个点能拓展出来的回文串之内,每一个在中心点前面的点都可以作为一个回文串的开 阅读全文
摘要:
传送门 这道题好像只要跑一个Manacher就能过…… 要求的女生和谐小群体就是求一个回文串,然后同时要计算这个回文串的子串。这个很简单,我们跑一遍Manacher算出每个点的最长回文半径,然后长度为偶数的忽略(题目要求),奇数的计算一下前缀和,然后对于每一个长度用快速幂计算一下同时k减去回文串个数 阅读全文