Luogu P5444 [APIO2019]奇怪装置】的更多相关文章

题目 这种题目看上去就是有循环节的对吧. 在考场上,一个可行的方式是打表. 现在我们手推一下这个循环节. 记函数\(f(t)=(((t+\lfloor\frac tB\rfloor)\%A),(t\%B))\),那么\(f(t_1)=f(t_2)\)的充要条件为: \[ t_1+\lfloor\frac {t_1}B\rfloor\equiv t_2+\lfloor\frac {t_2}B\rfloor(mod\ A) \] \[ t_1\equiv t_2(mod\ B) \] 看到第二个很熟…
传送门 考虑求出最小的循环节 $G$ 使得 $t,t+G$ 得到的数对是一样的 由 $y \equiv t \mod B$ ,得到 $G$ 一定是 $B$ 的倍数,设 $zB=G$,则 $t,t+zB$ 结果相同 代入 $x \equiv (t+\left \lfloor \frac{t}{B} \right \rfloor) \mod A$ 得到 $(t+zB+\left \lfloor \frac{t+zB}{B} \right \rfloor) \equiv (t+\left \lfloo…
正解:数论 解题报告: 传送门$QwQ$ 我好像当初考的时候这题爆零了,,,部分分都没想到,,,我真的好菜$kk$ 考虑如果在$t_1,t_2$两个时刻有$x_1=x_2,y_1=y_2$是什么情况$QwQ$? 那就有$\begin{cases}t_1+[\frac{t_1}{B}]\equiv t_2+[\frac{t_2}{B}](\mod A)\\t_1\equiv t_2(\mod B)\end{cases}$. 不妨设$t_2=t_1+B\cdot t$,代入得$t_1+[\frac{…
[LOJ#3144][APIO2019]奇怪装置(数论) 题面 LOJ 题解 突然发现\(LOJ\)上有\(APIO\)的题啦,赶快来做一做. 这题是窝考场上切了的题嗷.写完暴力之后再推了推就推出正解了... 考虑\(t1,t2\)两个时刻,如果两个时刻的\((x,y)\)相等的话,考虑是一种什么样的情况. \[\begin{cases} t_1+[\frac{t_1}{B}]\equiv t_2+[\frac{t_2}{B}](\mod A)\\ t_1\equiv t_2(\mod B) \…
[LG5444][APIO2019]奇怪装置 题面 洛谷 题目大意: 给定\(A,B\),对于\(\forall t\in \mathbb N\),有二元组\((x,y)=((t+\lfloor\frac tB\rfloor)\bmod A,t\bmod B)\). 对于给定的\(n\)个区间\([l,r]\),要你求出\(t\in [l_1,r_1]\bigcup [l_2,r_2]...\bigcup [l_n,r_n]\)对应有多少个不同的二元组. 数据范围: \(1\leq n\leq…
problem loj-3144 题意概要:设函数 \(f(t)\) 的返回值为一个二元组,即 \(f(t)=((t+\lfloor \frac tB\rfloor)\bmod A, t\bmod B)\),现在给出 \(n\) 个区间,问 \(t\) 在这 \(n\) 个区间中取值时,有多少个不同的 \(f(t)\). \(n\leq 10^6,\ l_i,r_i,A,B\leq 10^{18}\),区间互不相交 Solution 一开始没啥想法,\(loj\) 的题面上写了 \(l_i\le…
$solution:$ 问题其实就是求两个式子的循环节. 钦定 $t\mod B=0$且 $(t\neq 0)$,其 $t$ 为循环节. 则将 $1$ 式拆开得 $\frac{t\times (B+1)}{B}\mod A=0$. $\frac{t\times (B+1)}{B}\equiv 0\space(\mod A)$ $\frac{t}{B}\equiv 0\space (\mod \frac{A}{gcd(A,B+1)})$ $t\equiv 0\space (\mod \frac{A…
#3144. 「APIO 2019」奇怪装置 题目描述 考古学家发现古代文明留下了一种奇怪的装置.该装置包含两个屏幕,分别显示两个整数 \(x\) 和 \(y\). 经过研究,科学家对该装置得出了一个结论:该装置是一个特殊的时钟,它从过去的某个时间点开始测量经过的时刻数 \(t\),但该装置的创造者却将 \(t\) 用奇怪的方式显示出来.若从该装置开始测量到现在所经过的时刻数为 \(t\),装置会显示两个整数:\(x = ((t + \lfloor \frac{t}{B} \rfloor) \b…
[APIO 2010] [LOJ 3144] 奇怪装置 (数学) 题面 略 分析 考虑t1,t2时刻坐标相同的条件 \[\begin{cases} t_1+\lfloor \frac{t_1}{B} \rfloor \equiv t_2+\lfloor \frac{t_2}{B} \rfloor (\mathrm{mod}\ A) \\ t_1 \equiv t_2 (\mathrm{mod}\ B)\\ \end{cases}\] 由第二个式子,可以令\(t_1=t_2+Bk(k \in N)…
考古学家发现古代文明留下了一种奇怪的装置.该装置包含两个屏幕,分别显示两个整数x和y.经过研究,科学家对该装置得出了一个结论:该装置是一个特殊的时钟,它从过去的某个时间点开始测量经过的时刻数t,但该装置的创造者却将t用奇怪的方式显示出来.若从该装置开始测量到现在所经过的时刻数为t,装置会显示两个整数:\(x=((t+\lfloor\frac{t}{B}\rfloor)\mod A)\),与\(y=(t\mod B)\).这里⌊x⌋是下取整函数,表示小于或等于x的最大整数.考古学家通过进一步研究还…
题目背景 <爱与愁的故事第三弹·shopping>娱乐章. 调调口味来道水题. 题目描述 爱与愁大神坐在公交车上无聊,于是玩起了手机.一款奇怪的游戏进入了爱与愁大神的眼帘:***(游戏名被打上了马赛克).这个游戏类似象棋,但是只有黑白马各一匹,在点x1,y1和x2,y2上.它们得从点x1,y1和x2,y2走到1,1.这个游戏与普通象棋不同的地方是:马可以走“日”,也可以像象走“田”.现在爱与愁大神想知道两匹马到1,1的最少步数,你能帮他解决这个问题么? 输入输出格式 输入格式: 第1行:两个整…
学习资料 -----1----- -----2----- P5038 [SCOI2012]奇怪的游戏 一道甚神但没用到高深模型的题 思路 没思路,看题解吧 代码 #include <iostream> #include <cstdio> #include <cstring> #include <queue> #define ll long long #define point(x, y) ((x - 1) * m + y) using namespace s…
LCS //Writer:GhostCai && His Yellow Duck #include<iostream> #include<cstring> #define MAXN 5000 using namespace std; char s[MAXN],t[MAXN]; int lens,lent; int f[MAXN][MAXN]; int main() { cin>>s+1>>t+1; memset(f,0,sizeof(f));…
题目链接 看了题解之后突然发现这题简直是水题.然而不看题解就想不出来.为什么呢? len(x)=log10(x)+1 于是二分寻找x. #include<iostream> #include<cmath> #include<cstdio> using namespace std; long long ans; int main(){ ,r=; int n; cin>>n; while(l<=r){ ; ; ; else { ans=mid; r=mid…
题意: 定义将一个\(t\)如下转换成一个二元组: \[ f(t) = \begin{cases} x = (t + \left\lfloor \frac{t}{B} \right \rfloor) \bmod A\\ y = t \bmod b \end{cases} \] 询问\([l_i, r_i]\)之间的\(t_i\)能够转换成多少个本质不同的二元组. 思路: 考虑\((x_1, y_1)\)和\((x_2, y_2)\)相同的时候: \[ \begin{cases} t_1 + \l…
题目 考虑推柿子 最开始的想法是如果两个\(t\)在\(mod\ B\)意义下相等,那么只需要比较一下\((t+\left \lfloor \frac{t}{B}\rfloor \right)mod\ A\)就好了 显然\(t=t\% B+B\times \lfloor \frac{t}{B} \rfloor\) 于是第一维就是$t%B+(B+1)\times \lfloor \frac{t}{B} \rfloor $ 也就是说如果\(t\%B\)的是相等的,那么只要\((B+1)\times…
Luogu P5444 [APIO2019]奇怪装置 看到这种题,我们肯定会想到\((x,y)\)一定有循环 我们要找到循环节的长度 推一下发现\(x\)的循环节长为\(\frac{AB}{B+1}\).等一下,\(t\)是整数,所以循环节长为\(\frac{AB}{GCD(A,B+1)}\) \(y\)的循环节长为\(B\) 所以\((x,y)\)的循环节长为\(lcm(\frac{AB}{GCD(A,B+1)},B)=\frac{AB}{GCD(A,B+1)}\) 对每个时间段对循环节长取模…
APIO2019 题解 T1 奇怪装置 题目传送门 https://loj.ac/problem/3144 题解 很容易发现,这个东西一定会形成一个环.我们只需要求出环的长度就解决了一切问题. 设环的长度为 \(l\).那么从 \((0, 0)\) 出发,走 \(l\) 步一定可以再次回到 \((0, 0)\). 也就是说 \[ \left\{ \begin{align*} & A \mid l + \lfloor \frac lB \rfloor\\ & B \mid l \end{al…
T1.桥梁(bridges/restriction) Subtask1:暴力,$O(n^2)$. #include<cstdio> #include<algorithm> #define rep(i,l,r) for (int i=(l); i<=(r); i++) #define For(i,x) for (int i=h[x],k; i; i=nxt[i]) using namespace std; ; ],nxt[N<<],val[N<<]; v…
「APIO 2019」奇怪装置 题目描述 有无限个二元组,每个二元组为\(((t+\left\lfloor\frac{t}{B} \right\rfloor)\%A,t \% B)\),给出一些区间,问他们之中有多少本质不同的二元组. 题解 考虑朴素做法,区间求并AC 考虑如果每个二元组为\((t\%A,t \% B)\)的话,那么它显然是有一个\(\frac{A*B}{(A,B)}\)的循环节的. 然后我们考虑所有在\(\%B\)意义下同余的所有数\(\%A\)意义下的结果. 他们形成了一个每…
APIO2010 APIO2010T1 特别行动队 记 \(dp[i]\) 表示划分前 \(i\) 个时的答案,则有 \(dp[i] = max\{ dp[j] + a(sum[i]-sum[j])^2+b(sum[i]-sum[j])+c\ | 0\le j< i\}\) 若 \(p<q\) ,且满足 \(2a\times sum[i]\times (sum[q]-sum[p])<=(a\times sum[q]^2-b\times sum[q]+dp[q])-(a\times sum…
题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮:开,关,上,下.上下的层数等于当前楼层上的那个数字.当然,如果不能满足要求,相应的按钮就会失灵.例如:3 3 1 2 5代表了Ki(K1=3,K2=3,……),从一楼开始.在一楼,按“上”可以到4楼,按“下”是不起作用的,因为没有-2楼.那么,从A楼到B楼至少要按几次按钮呢? 输入输出格式 输入格式: 输入文件…
这个题嘛开始一看实在想不出来有什么数据结构/算法可以乱搞,于是果断写了个朴素n方暴力,然后就发现luogu竟然有91分 这数据啊,也是醉了.. 想着优化优化能不能暴力卡过最后一个T掉的点,然鹅发现无耶 然后rxz的题解告诉我,(n+m)sqrt(n)的办法也是很骚, 算法思想可以看作一种::懒惰???不过这种玩意儿还是适合随机数据吧,要是大量使用肯定会被卡. 但是话说回来了,再卡也不就是的朴素暴力么,能有多差?? 将处理的模数sqrt一下,预处理n sqrt(n) 若询问<=siz O(1)即可…
奇怪的道路 我看不出来是状压的状压 好吧,其实看到k的范围应该去往状压方面想的. 然后,题目中说"任何一个城市都与恰好偶数条道路相连(0也被认为是偶数)". 所以,奇偶,两种状态可以用0,1来表示,那就妥妥的状压了. 设 \(dp_{i,j,sta}\) 表示当前已经考虑了i座城市,j条道路,当前状态为sta的方案数. 用0表示奇数,1表示偶数,为了防止转移时出现问题,所以只转移第i个城市的前k个城市,通过异或能够将连边的两个城市由奇变偶,由偶变奇. 则有 \[dp_{i,j,sta}…
1484 种树 此版本是线性的,那么根据链表维护即可: 构建新点,点的左右分别是原整个区间的前驱及后继,再正常维护即可 注意两个版本的维护有所不同 第二个版本的维护直接将左右两点删除 1792 种树2  此版本是环 1484 #include<bits/stdc++.h> #define ll long long using namespace std; ; struct node{ ll v;int id; bool operator <(node a)const{ return v&…
题目描述 使得 x^x x x 达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 x^xx x 达到 n 位数字的最小正整数 x 输入输出样例 输入样例#1: 复制 11 输出样例#1: 复制 10 说明 n<=2000000000 这么大肯定有规律..嗯. 求数x的位数,常规做法是写一个函数求,但是这就要求得到这个具体的这个数,这里x^x太大,如果不用高精度,肯定是不行的. 考虑一个数x,求它的位数: log10(1)=0; log1…
题目描述 使得 x^x达到或超过 n 位数字的最小正整数 x 是多少? 输入格式 一个正整数 n 输出格式 使得 x^x达到 n 位数字的最小正整数 x 计算一个数有多少位 log10(x)+1 #include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define int long long using namespace…
题目背景 终于解出了dm同学的难题,dm同学同意帮v神联络.可dm同学有个习惯,就是联络同学的时候喜欢分组联络,而且分组的方式也很特别,要求第i组的的人数必须大于他指定的个数ci.在dm同学联络的时候,v神在想,按照dm同学的规则一共可以有多少种方案呢?他想啊想,终于--没想出来.于是他又想到了聪明的你,你能帮v神算出按照dm同学的规则有多少种分组方案吗? 题目描述 v神的班级共有n个人,dm同学想把同学分成M组联络,要求第i组的人数必须大于给定的正整数Ci,求有多少不同的方案?(两个是相同的方…
传送门 官方题解(证明都在这) 神仙题鸭qwq 转化模型,发现这题本质就是一个集合,每次可以加上集合里的数,问可以拼出多少不同的数 首先暴力需要膜意义下的最短路,例题戳这 然后这个暴力可以优化成N^2的.具体操作是枚举每个数,然后从某个点只用这个数往后跳,这样在膜m意义下可以形成\(gcd(a,m)\)个环.每个环找到dis最小的点,从这个点开始依次遍历整个环,更新后一个位置 有个结论是集合中的数可以分成\(logn\)个等差数列,所以可以每个等差数列贡献答案 然后对于每个等差数列,先把膜m意义…
题目链接:https://www.luogu.org/problemnew/show/P1135 题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第 i 层楼 (1≤i≤N) 上有一个数字Ki​(0≤Ki​≤N) .电梯只有四个按钮:开,关,上,下.上下的层数等于当前楼层上的那个数字.当然,如果不能满足要求,相应的按钮就会失灵.例如:3,3,1,2,5 代表了Ki​(K1​=3,K2​=3,…) ,从 1 楼开始.在 1楼,按“上”可以到 4 楼,按“…