摘要:
传送门:https://www.luogu.com.cn/problem/P2495 题意:给你一颗n个点的树,现在的情况是每条边有边权,现在要选取一些点,通过删除一些边的方式使得这些点与1号节点失去连通性,删除一条边的代价是边权大小。有多次询问,保证多次询问的总的点数与n同阶。 分析:直接去跑树形 阅读全文
摘要:
传送门:https://ac.nowcoder.com/acm/contest/4853/D 题目大意:给你a,b,c,k。求一个线性方程组a*x+b*y+c*z=k。 分析:令p=a*x+b*y,则原题有解的条件变成p<=k,且(k-p)%c==0;那么我们就可以对p%c进行分类,显然,对于p%c 阅读全文
摘要:
A. 给你一个n,解方程,(1+2+4+...+2^(k-1))*x=n,保证k>1。 枚举k,可以整除时输出一个数。 #include<bits/stdc++.h> #define all(x) x.begin(),x.end() #define fi first #define sd secon 阅读全文
摘要:
A. 给你n个不超过1e18的数字,n的数量级是1e6。从中选出两个数,做无进位加法,问最大的数能多大。 sol:将每个数字补成相同长度,除了第一个数字外,每一个数只需要在字典树上贪心的去跑就行了。查询完之后,将这个数字插入到字典树中。 #include<bits/stdc++.h> #define 阅读全文
摘要:
A. 将一个数拆成两个,两个数不等,求拆分的方法数。 奇数输出n/2,偶数输出n/2-1即可通过。 #include<bits/stdc++.h> #define all(x) x.begin(),x.end() #define fi first #define sd second #define 阅读全文
摘要:
A. Lucky 7 签到。 #include<bits/stdc++.h> #define all(x) x.begin(),x.end() #define fi first #define sd second #define lson (nd<<1) #define rson (nd+nd+1) 阅读全文