摘要:
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2818 题意:给定整数N,求1 define fi first define se second using namespace std; typedef long long ll; con 阅读全文
摘要:
题意:给一颗树,1为根节点,有两种节点,min或者max,min节点的值是它的子节点的值中最小的,max节点的值是它的子节点的值中最大的,若共有k个叶子,叶子的值依次为1~k。 问给每个叶子的值赋为几使根节点的值最大。 思路:设$dp[x]$为节点x为根的子树中x的最大值,$sz[x]$ 为节点x的 阅读全文
摘要:
题意:给一棵树,每条边有一个权值,给两种操作,第一种是询问y向下整除从a到b的最短路径中每条边的权值后y的值,第二种是改变某条边的权值。 思路:y的最大值为1e18,最多除大于等于2的数不超过60次即可将y变为0,先dfs以任意一点为根建树,记录每个点的深度和它的父结点并将边权转化为点权, 再搞个并 阅读全文
摘要:
指数爆炸的时候就要降幂 就是求a^b mod c 可以转化为 a^(b mod phi©+phi©) mod c phi 为 欧拉函数 欧拉函数phi(n)的求法: 阅读全文
摘要:
1 struct ios { 2 inline char read(){ 3 static const int IN_LEN=1 inline ios & operator >> (_Tp&x){ 9 static char c11,boo; 10 for(c11=read(),boo=0;!isdigit(c11);c11=rea... 阅读全文
摘要:
1 bool b[maxn]; 2 int f[maxn],len; 3 void init(int n){ 4 b[0]=b[1]=1; 5 for(int i=2;in)break; 12 b[i*f[j]]=1; 13 if(i%f[j]==0)break;//如果i是prime[j]的倍数,那么在筛i时已经筛过pr... 阅读全文