51node-2502-分块
题目: 小b有个长度为n的数组a,她想将这个数组排序。 然而小b很懒,她觉得对整个数组排序太累了,因此她请你将a分成一些块,使得她只需要对每一块分别排序,就能将整个数组排序。 请问你最多能把a分成多少块。 ...
题目: 小b有个长度为n的数组a,她想将这个数组排序。 然而小b很懒,她觉得对整个数组排序太累了,因此她请你将a分成一些块,使得她只需要对每一块分别排序,就能将整个数组排序。 请问你最多能把a分成多少块。 ...
现在有一棵n个节点的树,节点1为这棵树的根,求出每个节点的深度以及每个节点的子树中的节点个数。 输入 第1行:一个数字n,表示树中节点的个数。(1<=n<=100000) 第2-n行:每行两个数字u,v,表示u与v之间有一条边。(1<=u,v<=n) 输出 输出n行,每行两个正整数,第i行的第一个正整数表示节点i的深度,第二个正整数表示以节点i为根的子树大小。 ...
占坑。。。明天更。。。加油!! ps:00:53点交一发 小b有一个仅包含非负整数的数组a,她想知道有多少个三元组(i,j,k),满足i<j<k且a[i],a[j],a[k]可能作为某个三角形的三条边的边长。 输入 第一行输入一个正整数n,表示数组a中元素个数; 第二行n个非负整数,表示a中元素,以空格隔开; 其中0<n≤1000,a中任意元素a[i]满足0≤a[i]≤1000。 ...
题目: 给出区间(a,b),b >= a,求𝑎 𝑥𝑜𝑟 (𝑎+1) 𝑥𝑜𝑟 (𝑎+2)…..𝑥𝑜𝑟 𝑏。 输入 输入2个数:a b,中间用空格分隔(1 <= a <= b <= 10^9) 输出 输出一个答案 输入样例 3 8 输出样例 11 ...
题目: 给定𝑛个技能,每个技能能打掉对手𝑎𝑖的血,你一共有𝑚次发招的机会,你不能连续使用某一个技能超过𝑘次。问你最多能打掉对手多少血。 输入 第一行3个数n,m,k,(2<=n<=2*10^5 ,1<=m,k<=10^9) 第二行n个数a[1…n],(1<=a[i]<=10^9) 输出 一个数,表示最大值。 ...
题目: 给定一个0-1串,请找到一个尽可能长的子串,其中包含的0与1的个数相等。 一个字符串,只包含01,长度不超过1000000。 输出 一行一个整数,最长的0与1的个数相等的子串的长度。 输入样例 1011 输出样例 2 ...
题目: 地上有n个方块,每一个方块高度都是H,第i(1<=i<=n)个方块的长和宽分别为L[i],W[i]。 现在开始堆方块塔,每次可以拿一个方块放到一个方块塔上,但是有一个要求,设当前塔顶的方块长度和宽度分别为Ltop,Wtop,当前拿到的方块长度和宽度分别为Lcur,Wcur,当满足Lcur<=Ltop&&Wcur<=Wtop的时候,这个方块才能被放到塔顶,并且取代之前的塔顶成为新塔顶。 由于土地比较贵,所以想要堆出来的塔的数目尽可能少,请计算最少的塔的数目。 ...
给出一个数k,求最小的n,使得n的阶乘后面0的数量>=k。 例如k=1, 5的阶乘 = 12345 = 120,120后面有1个0。并且4的阶乘后面没有0,所以5是最小的结果。 ...
题目: 输入一个长度为𝑛的数组𝑎,𝑎包括(𝑛−1)𝑛/2个区间。每个区间所有数的和,被称为区间和,求所有(𝑛−1)𝑛/2个区间和的和。由于数值较大,输出mod 1e9+7的结果。 输入 第一行一个整数n,表示数组长度(2<=n<=100000) 接下来n行,每行一个整数ai,表示数组的内容。(0<=ai<=50000) 输出 输出答案mod 1e9+7 输入样例 3 1 2 3 输出样例 20 解法: 统计每个数字出现的次数就好了,每个数字出现的次数为该数字左边数字的个数乘右边的。 代码: using namespace std; int main() { long long ans = 0; long long mod = 1e9+7; long long n; scanf("%lld",&n); long long e = n; for(int i = 1; i <=n; i++,e--) { long long a; scanf("%lld", &a); long long now = (((a*i)%mod) * e) % mod; ans = (ans + now) % mod; } printf("%lld", ans); return 0; }
题目: 给出一棵n个节点的树,节点编号为1-n(根节点编号为1),每一个节点作为根节点与他所有的子孙节点形成一棵子树,而这棵子树包含节点的数量,称作子树的Size。 例如: 1─2─4─5 └─3 其中节点5的子树只包括节点5,Size = 1。节点4的子树包括节点4,5,Size = 2。节点1的子树包括节点1,2,3,4,5,Size = 5。 求以所有节点为根的子树的Size之和。上面例子中,节点1到5,对应的Size分别为5,3,1,2,1,所有Size的和 = 5 + 3 + 1 + 2 + 1 = 12 ...