社区讨论

学术版参与者 5已保存回复 22

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
22 条
当前快照
1 份
快照标识符
@mhjb0b2s
此快照首次捕获于
2025/11/03 23:37
4 个月前
此快照最后确认于
2025/11/04 06:07
4 个月前
查看原帖
下面这题(手打):
题目

题目描述

小 Z 想要拆分一个数。
对于一个数 uu,他要找到两个数 vvww,满足 v,w>1v ,w > 1 并且 u=v×wu = v\times w,那么他可以删去 uu,并且保留 vvww,这样他手上就多了一个数。
现在已知小 Z 有一个数 xx,表示为 x=b!a!x = \frac{b!}{a!},给定 aabb,求 xx 最多能被小 Z 拆分成多少个数(也就是他最多能够留下几个数)。

输入格式

本题有多组询问。
第一行一个整数 TT,表示询问组数。
接下来 TT 行,每行两个正整数 aabb,含义如上。

输出格式

TT 行,每行一个值,表示小 Z 最多能得到的数的个数。

说明/提示

1T2×1051\le T\le 2\times 10^51a<b1071\le a < b\le 10^7
思路是先欧拉筛出每个数的最小质因子 mnpimnp_i
然后令 f1=0f_1 = 0fiprime=1f_{i \in prime} = 1fiprime=fmnpi+fimnpif_{i\notin prime} = f_{mnp_i} + f_{\frac{i}{mnp_i}}
然后对于每个 ff 做前缀和,即 fi=i=1107fif'_i = \sum\limits_{i = 1}^{10^7} f_i
然后答案为 fbfaf'_b - f'_a
考场上大样例都过了,空间限制 256 MB,实际计算不会 MLE。
但是挂了,挂到几分忘光了,为啥?

还有 arc115e 的考场上的 4040 部分分(1n20001\le n\le 20001ai20001\le a_i\le 2000)。
题目
每天小 Z 都要跑步,已知有 nn 天。
小 Z 有一个序列 {bi}\{b_i\},表示每天的运动量上限。
现在小 Z 每天跑步都有一个运动量 aia_i,必须满足 aibi\forall a_i \le b_i
但是小 Z 又想要多点花样,所以他想要 {ai}\{a_i\} 满足 2in,aiai12\le i \le n ,a_i \neq a_{i - 1}
求满足条件的 {ai}\{a_i\} 的数量,答案对 109+710^9 + 7 取模。
正难则反,先计算 total=bitotal = \prod\limits b_i
然后计算不合法的,记 fi,j,0/1f_{i ,j ,0/1} 为第 ii 天运动量为 jj,前面没有/有相邻天重复的方案数。
然后转移(1jai1\le j\le a_i1kai11\le k\le a_{i - 1}):
fi,j,0=[kj]×fi1,k,0f_{i ,j ,0} = \sum [k\neq j]\times f_{i - 1 ,k ,0}
fi,j,1=fi1,j,0+fi1,k,1f_{i ,j ,1} = f_{i - 1,j ,0} + \sum f_{i - 1 ,k ,1}
答案为 totali=1bnfn,i,1total - \sum\limits_{i = 1}^{b_n} f_{n ,i ,1}
考场实测过了前三个大样例,结果挂了,挂到几分忘光了。

求问原因,没有代码。

回复

22 条回复,欢迎继续交流。

正在加载回复...