【LOJ#3096】[SNOI2019]数论】的更多相关文章

Loj #3096. 「SNOI2019」数论 题目描述 给出正整数 \(P, Q, T\),大小为 \(n\) 的整数集 \(A\) 和大小为 \(m\) 的整数集 \(B\),请你求出: \[ \sum_{i=0}^{T-1} [(i\in A\pmod P)\land(i\in B\pmod Q)] \] 换言之,就是问有多少个小于 \(T\) 的非负整数 \(x\) 满足:\(x\) 除以 \(P\) 的余数属于 \(A\) 且 \(x\) 除以 \(Q\) 的余数属于 \(B\). 输…
[LOJ#3096][SNOI2019]数论 题面 LOJ 题解 考虑枚举一个\(A\),然后考虑有多少个合法的\(B\). 首先这个数可以写成\(a_i+kP\)的形式,那么它模\(Q\)的值成环. 所以我们预处理每个环内有多少个合法的\(b\),再把\(b\)按照访问顺序记录一下,那么对于每一个\(a\)就可以直接算答案了. #include<iostream> #include<cstdio> #include<algorithm> #include<vec…
[LG5330][SNOI2019]数论 题面 洛谷 题目大意: 给定集合\(\mathbb {A,B}\) 问有多少个小于\(T\)的非负整数\(x\)满足:\(x\)除以\(P\)的余数属于\(\mathbb A\)且\(x\)除以\(Q\)的余数属于\(\mathbb B\). 其中\(1\leq |\mathbb A|,|\mathbb B|\leq 10^6,1\leq P,Q\leq 10^6,1\leq T\leq 10^{18}\). 题面 考虑枚举一个\(A\),然后考虑有多少…
正解:数论 解题报告: 传送门$QwQ$ ,,,这题还蛮妙的$QwQ$(,,,其实所有数论题对我来说都挺妙的$kk$然后我真的好呆昂我理解了好久$QAQ$ 考虑先建$Q$个点,编号为$[0,Q)$,表示膜$Q$的余数.然后每个点$i$向$(i+P)\ mod Q$连边$QwQ$ 显然这个是会成环的,事实上这个环的长度就$\frac{P\cdot Q}{gcd(P,Q)}$(不明白的可以去康那道很古早的考过好几遍了的跑跑步那题?那题不是证了个结论是说.在膜$Q$意义下每次走$P$,只会有$gcd(…
题目 考虑对于每一个\(a_i\)计算有多少个\(0<x\leq T-1\)满足\(x\equiv a_i(mod\ P)\)且\(x\ mod\ Q \in B\) 显然\(x=a_i+k\times P\),先考虑一下这个\(k\)最大能取到多少,显然有\(a_i+k\times P\leq T-1\),所以\(k\)最大取到\(\left \lfloor \frac{T-1-a_i}{P} \right \rfloor\) 我们这样加下去,肯定会使得\(x\)在\(mod\ Q\)意义下循…
题目 如果\(P>Q\)的话我们先交换一下\(P,Q\). 我们先枚举所有满足第一个条件的数,对于\(x\equiv a_i(mod\ P)\),设\(x=a_i+kP(k\in[0,\lfloor\frac{T-a_i}P\rfloor])\). 然后能够产生贡献的数就是\(x\%Q\in B\)的数. 而且我们知道,当\(Q|kP\)时\(x\%Q\)就会产生循环,也就是说对\(k\)而言,\(M=\frac Q{(P,Q)}\)是循环节. 所以我们可以将计算\(k\in[0,\lfloor…
瞎扯 我们网络流模拟赛(其实是数据结构模拟赛)的T2. 考场上写主席树写自闭了,直接交了\(80pts\)的暴力,考完出来突然发现: woc这个题一个cdq几行就搞定了! 题意简述 有\(n\)个哨站,第\(i\)个哨站的频段为\(a_i\).每个哨站可以花费\(W\)连接中心,也可以花费\(|a_j-a_i|\)连接到第\(j\)个哨站(\(j<i\)). 每个哨站最多只能被连接一次,求所有哨站连接的最小花费. 做法 Luogu能过的暴力 由最多只能被连接一次想到流量限制(显然),发现题目要求…
LOJ#3096. 「SNOI2019」数论 如果\(P > Q\)我们把\(P\)和\(Q\)换一下,现在默认\(P < Q\) 这个时候每个合法的\(a_i\)都可以直接落到\(Q\)中,因为\(a_{i} \equiv a_{i} \pmod Q\)这样避免了麻烦 然后呢我们发现每次把\((a_{i} + P) \% Q\)会走成一个圈,我们就要求从\(a_{i}\)开始数\(\lfloor \frac{T - 1- a_{i}}{P} \rfloor + 1\)个圈里\(b_{i}\)…
[LOJ#3097][SNOI2019]通信(费用流) 题面 LOJ 题解 暴力就直接连\(O(n^2)\)条边. 然后分治/主席树优化连边就行了. 抄zsy代码,zsy代码是真的短 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; #define ll long long #define MAX 50000 const int inf=1e9; inline int…
[LOJ#3095][SNOI2019]字符串(后缀数组) 题面 LOJ 题解 首先画图看看如何比较两个串的大小,发现这个东西等价于求两个相邻的后缀的\(LCP\). 一个做法是求出\(SA\),然后就可以很容易的判断两个位置的大小了. 然而实际上相邻两个后缀的\(LCP\)转移可以很容易的从前一个得到,所以这部分的复杂度不会超过\(O(n)\). 那么复杂度瓶颈就在排序了,时间复杂度\(O(nlogn)\). #include<iostream> #include<cstdio>…