0%

题目:
给出区间(a,b),b >= a,求𝑎 𝑥𝑜𝑟 (𝑎+1) 𝑥𝑜𝑟 (𝑎+2)…..𝑥𝑜𝑟 𝑏。
输入
输入2个数:a b,中间用空格分隔(1 <= a <= b <= 10^9)
输出
输出一个答案
输入样例
3 8
输出样例
11

Read more »

题目:
给定𝑛个技能,每个技能能打掉对手𝑎𝑖的血,你一共有𝑚次发招的机会,你不能连续使用某一个技能超过𝑘次。问你最多能打掉对手多少血。

输入
第一行3个数n,m,k,(2<=n<=2*10^5 ,1<=m,k<=10^9)
第二行n个数a[1…n],(1<=a[i]<=10^9)
输出
一个数,表示最大值。

Read more »

题目:
给定一个0-1串,请找到一个尽可能长的子串,其中包含的0与1的个数相等。

一个字符串,只包含01,长度不超过1000000。
输出
一行一个整数,最长的0与1的个数相等的子串的长度。
输入样例
1011
输出样例
2

Read more »

题目:
 地上有n个方块,每一个方块高度都是H,第i(1<=i<=n)个方块的长和宽分别为L[i],W[i]。

 现在开始堆方块塔,每次可以拿一个方块放到一个方块塔上,但是有一个要求,设当前塔顶的方块长度和宽度分别为Ltop,Wtop,当前拿到的方块长度和宽度分别为Lcur,Wcur,当满足Lcur<=Ltop&&Wcur<=Wtop的时候,这个方块才能被放到塔顶,并且取代之前的塔顶成为新塔顶。

 由于土地比较贵,所以想要堆出来的塔的数目尽可能少,请计算最少的塔的数目。

Read more »

给出一个数k,求最小的n,使得n的阶乘后面0的数量>=k。

例如k=1,

5的阶乘 = 12345 = 120,120后面有1个0。并且4的阶乘后面没有0,所以5是最小的结果。

Read more »

题目:
输入一个长度为𝑛的数组𝑎,𝑎包括(𝑛−1)𝑛/2个区间。每个区间所有数的和,被称为区间和,求所有(𝑛−1)𝑛/2个区间和的和。由于数值较大,输出mod 1e9+7的结果。

输入
第一行一个整数n,表示数组长度(2<=n<=100000)
接下来n行,每行一个整数ai,表示数组的内容。(0<=ai<=50000)
输出
输出答案mod 1e9+7
输入样例
3
1
2
3
输出样例
20
解法:
统计每个数字出现的次数就好了,每个数字出现的次数为该数字左边数字的个数乘右边的。
代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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

Read more »

题目:
 有𝑛个点,第𝑖号点在一维数轴的𝑖坐标位置。你现在在1号点,你需要走𝑘步,移动总长度为𝑆,问这样的方案是否存在。注意:每一步都至少移动1格,且每一步都必须从一个点移动到另一个点上。

Read more »

题目:
给出一棵n个节点的树,节点编号为1-n(根节点编号为1),求这棵树叶子结点的数量。
例如:

1─2─4─5
└─3

其中3和5是叶子节点,输出2。

Read more »