51nod 1247 可能的路径(gcd)】的更多相关文章

传送门 题意 略 分析 有以下结论 \(1.(x,y)->(y,x)\) \(2.(x,y)->(a,b)==>(a,b)->(x,y)\) 证明 做如下变换 \((a,b)->(a-b,b)->(a-2b,b)->...->(a-nb,b)(n=a/b)\) 等效于 \((a,b)->(a\%b,b)->(b,a\% b)\) 套用欧几里得算法,得到如下结论 如果gcd(a,b)==gcd(c,d),输出Yes,否则输出No…
可能的路径 思路: 看到题目想到gcd: 仔细一看是更相减损: 而gcd是更相减损的优化版: 所以,对于每组数据判断gcd是否相等就好: 来,上代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; inline void in(long long &now) { ; ') Cget=getchar()…
一个无向图,可能有自环,有重边,每条边有一个边权.你可以从任何点出发,任何点结束,可以经过同一个点任意次.但是不能经过同一条边2次,并且你走过的路必须满足所有边的权值严格单调递增,求最长能经过多少条边.     以此图为例,最长的路径是: 3 -> 1 -> 2 -> 3 -> 2 或 3 -> 1 -> 2 -> 3 -> 4 长度为4. Input第1行:2个数N, M,N为节点的数量,M为边的数量(1 <= N <= 50000, 0 &l…
几个月的坑终于补了…… 题目链接:CF原网  洛谷 题目大意:一棵 $n$ 个点的树,每个点有点权 $a_i$.一条路径的长度定义为该路径经过的点数.一条路径的权值定义为该路径经过所有点的点权的 GCD.问所有权值不为 $1$ 的路径中,最长的长度. $1\le n\le 2\times 10^5,1\le a_i\le 2\times 10^5$. 我可能是数据结构学傻了,一眼点分治……然后复杂度又不对…… 正解:我们发现只要 $\gcd$ 不为 $1$ 就行了,而两个数的 $\gcd$ 不为…
https://www.luogu.org/problemnew/show/CF990G 耶,又一道好题被我浪费掉了,不会做.. 显然可以反演,在这之前只需对于每个i,统计出有多少(x,y),满足x到y简单路径上所有点权值都是i的倍数即可 方法1: 可以发现,对于给定的i,这样的“权值是i的倍数”的点一定可以构成一些连通块,每个连通块内部的点两两符合条件,且不会出现跨连通块的合法点对 自己的做法: 那么,搞2*10^5个动态开点的并查集,对于每条边(u,v),枚举所有a[u]和a[v]的公因子i…
题目大意: 传送门. 给一个n个点的有向完全图(即任意两点有且仅有一条有向边). 每一个点上有$S_i$个人,开始时其中有些人有真金块,有些人没有金块.当时刻$i$时,若$u$到$v$有边,若$u$中第$i%S_u$个人有金块(无论真假),且$v$中第$i%S_v$个人没有金块,则会给$v$中第$i%S_v$个人一个假金块. 假设这样传递了无数次.(即不会再满足上面的条件时) 最后,拥有真金块的人一定可以把金子买出去,而拥有假的人有一半的概率买出去,每买出去一个会给自己的点贡献1的价值. 问题是…
明明多个几秒就能场上AK了.自闭. A:签到. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long ')) c=getchar();return c;} ?n:gcd(m,n%m);} in…
题意:一棵带边权的树,边权可单边修改,问初始时和每次修改后有多少条路径$\gcd=1$ 首先考虑用反演求答案,设$f(n)$为路径$\gcd=n$的路径条数,$g(n)$为路径$\gcd$是$n$倍数的路径条数,那么$g(n)=\sum\limits_{n|d}f(d)$,所以$f(n)=\sum\limits_{d|n}\mu\left(\frac dn\right)g(d)$,答案就是$f(1)=\sum\limits_{d}\mu(d)g(d)$ 我们现在要求$g(d)$,先考虑没有修改怎…
ZR提高失恋测2(9.7) 网址http://www.zhengruioi.com/contest/392 版权原因,不放题面 A 首先,我们发现对于匹配串\(s\)中所有满足\(s_i \not = s_{i + 1}\)的\(i\) 那么\(i\)和\(i + 1\)之中至少要一个点被匹配,这应该是比较显然的 如果不这样肯定不满足条件 我们首先考虑暴力匹配,能匹配就匹配,这样可以得到一组字典序最小的解法 但是,这样直接填出来的答案很可能是不对的 考虑怎么把它给变对 这样就要用到开头所说的东西…
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1575 万年巨坑终于填掉了…… 首先是煞笔西瓜的做题历程O_O. 原题要求$\sum_{i=1}^n\sum_{j=1}^i\sum_{k=1}^i [(i,j),(i,k)]$ 那么先推一波式子吧 balabala 我也忘记自己是怎么推的了(雾 总之最后推出来是这样的 $ ans=\sum_{i=1}^{n} f(\left\lfloor\frac{n}{i}…