02 2021 档案
摘要:并查集 #include <cstdio> #include <vector> using namespace std; /** * Disjoint Set Union */ class DSU { vector<int> s; int cnt; public: DSU(int n) { cnt
阅读全文
摘要:题目链接: hdu5902 ( GCD is Funny ) 一开始大意了,直接求出两两 \(gcd\) 就交了,毫无悬念地 \(WA\) 了一发。 实际是求所有 \(2\le size <n\) 的子集的 \(gcd\) . /** * hdu5902 GCD is Funny * */ #inc
阅读全文
摘要:题目链接: hdu5656 ( CA Loves GCD ) \(dp[i][j]\) 代表前 \(i\) 个数的所有组合中 \(gcd\) 为 \(j\) 的个数。 /** * hdu5656 CA Loves GCD * */ #include <iostream> #include <cstd
阅读全文
摘要:题目链接: hdu5584 ( LCM Walk ) 令起点 \(x_0=pt,y_0=qt\) , \(p,q,t\in N^+\) 且 \(p,q\) 互质, 则 \(gcd(x_0,y_0)=t,lcm(x_0,y_0)=pqt\) . 不妨设 \(x_1=pt,y_1=pt+pqt=qt(1
阅读全文
摘要:题目链接: hdu5223 ( GCD ) 对一个区间 \([L,R]\) ,\(ans\) 应是该区间的所有数共有的因子,不断求 \(lcm\) 最后检验即可。 /** * hdu5223 GCD * */ #include <cstdio> #include <algorithm> using
阅读全文
摘要:题目链接: hdu2588 ( GCD ) 给定 \(N,M\) ,求解 \(1\sim N\) 中满足条件 \((X,N)\ge M\) 的 \(X\) 的个数。 设 \(p>=M\) 为 \(N\) 的一个因子。 则 \(1\sim N\) 中满足条件 \((X,N)= p\) 的 \(X\)
阅读全文
摘要:题目链接: hdu1576 ( A/B ) 求出 \(B\) 关于 \(9973\) 的乘法逆元即可。 由于 \(gcd(B,9973) = 1\) ,故可用费马小定理。 /** * hdu1576 A/B * */ #include <cstdio> #include <climits> type
阅读全文
摘要:题目链接: hdu1019 ( Least Common Multiple ) 求解最小公倍数: \(lcm(a,b)=a/gcd(a,b)*b\) . /** * hdu1019 Least Common Multiple * */ #include <cstdio> int gcd(int a,
阅读全文
摘要:题目链接:poj1061 青蛙的约会 青蛙A \(t\) 次跳跃后的坐标为 \((x+mt)\mod L\) 青蛙B \(t\) 次跳跃后的坐标为 \((y+nt)\mod L\) 碰面所需跳跃次数,即求方程 \[ x+mt\equiv y+nt(\text{mod}\ L) \\ \Leftrig
阅读全文
摘要:题目链接: hdu6148 ( Valley Numer ) \(dp[i][j][state]\) 代表 \(i\) 位数、首位为 \(j\) 、且状态为 \(state\) 的数的个数。 \(state\) 取 \(0\) 代表严格递减, \(1\) 代表严格递增, \(2\) 代表严格先减后增
阅读全文
摘要:题目链接: 3652 ( B-number ) \(dp[i][j][r]\) 代表 \(i\) 位数、首位为 \(j\) 、模 \(13\) 余 \(r\) 、且包含 \(13\) 的数的个数。 则根据 \(i-1\) 的状态可推出 \(i\) 的状态,不同状态间余数 \(r\) 的转换要到位。
阅读全文
摘要:题目链接: 3555 ( Bomb ) \(dp[i][j]\) 代表首位为 \(j\) 的 \(i\) 位数中包含 \(49\) 的数的个数。 则 $$dp[i][j]=\begin0&,i = 1\ \sum_9dp[i-1][k]&,i>1\and j\ne 4\ 10+\sum_^9(k\n
阅读全文
摘要:A. Yet Another String Game 贪心。 将所有奇数位置的字符变为 \(a\) (若已经是 \(a\) 则变为 \(b\))。 将所有偶数位置的字符变为 \(z\) (若已经是 \(z\) 则变为 \(y\))。 /** * Codeforces Round #700 (Div.
阅读全文
摘要:二分或三分。 三分:若 \((L,R)\) 有局部最小,取 m1=max(L+1,L+(R-L)/3) 、 m2=min(R-1,R-(R-L)/3) 。 若 \(a_{m_1}<a_{m_2}\and a_{m_1}<a_L\) ,则 \((L,m_2)\) 必有局部最小。 若 \(a_{m_2}
阅读全文
摘要:题目链接: D1. Painting the Array I D2. Painting the Array II 经历这场 \(cf\) 我才意识到操作系统课上看似很简单的最佳页面置换算法并没有那么容易被想到。 题意:给定一个长度为 \(n\) 的数组 \(a_1, a_2,\cdots,a_n(1
阅读全文
摘要:题目链接: hdu2089 ( 不要62 ) \(dp[i][j]\) 代表 \(i\) 位数首位为 \(j\) 的吉利数字个数。 则有 \[ dp[i][j] = \begin{cases}0&,j=4\\ \sum_{k=0}^9 (j\ne 6 \or k\ne 2)dp[i-1][k]&,j
阅读全文
摘要:题目链接: hdu5895 ( Mathematician QSC ) 此题先通过矩阵快速幂求解 \(g(n*y)\),再根据欧拉降幂公式 \(x^{g(n*y)}\% (s+1)=x^{g(n*y)\%(s+1)+(s+1)}\% (s+1)\) 得出答案。 构造矩阵递推式的方式有多种。一种技巧性
阅读全文
摘要:题目链接: hdu6030 ( Happy Necklace ) 每一个素数长度的序列中红色个数不少于蓝色,等价于每 \(2\) 个珠子至少一个红色、每 \(3\) 个珠子两个红色,其余素数均可拆为一系列 \(2\) 和 \(3\) 的和。 令 \(f_n\) 代表含 \(n\) 个珠子的种类数,
阅读全文
摘要:题目链接: 3117 ( Fibonacci Numbers ) 位数小于 \(8\) 的可以打表直接输出。 对于位数大于 \(8\) 的,直接用大数求 \(Fibonacci\) 的第 \(n\) 项会 \(TLE\) ,因此需分别求解前 \(4\) 位和后 \(4\) 位。 后 \(4\) 位直
阅读全文

浙公网安备 33010602011771号