问题描述
这个问题是问题F的简化版本。
给定一个长度为N的整数序列:A=(A₁, A₂, …, Aₙ)。
当在某一位置将其分割成两个非空的(连续的)子数组时,找出这两个子数组中不同整数的数量的最大可能和。
更正式地说,对于一个整数i(1 ≤ i ≤ N-1),找出以下两个值的最大和:子数组(A₁, A₂, …, Aᵢ)中不同整数的数量,以及子数组(Aᵢ₊₁, Aᵢ₊₂, …, Aₙ)中不同整数的数量。
约束条件
2 ≤ N ≤ 3 × 10⁵
1 ≤ Aᵢ ≤ N (1 ≤ i ≤ N)
所有输入值都是整数。
输入
输入从标准输入给出,格式如下:
N
A₁ A₂ … Aₙ
输出
输出答案。
样例输入1
5
3 1 4 1 5
样例输出1
5
解释:
对于i=1,(3)包含1个不同整数,(1,4,1,5)包含3个不同整数,总和为4。
对于i=2,(3,1)包含2个不同整数,(4,1,5)包含3个不同整数,总和为5。
对于i=3,(3,1,4)包含3个不同整数,(1,5)包含2个不同整数,总和为5。
对于i=4,(3,1,4,1)包含3个不同整数,(5)包含1个不同整数,总和为4。
因此,最大和为5,对应i=2,3。
样例输入2
10
2 5 6 5 2 1 7 9 7 2
样例输出2
8
分数:425分
问题描述
给定一个正整数N。判断是否存在一对正整数(x, y),使得x³ - y³ = N。如果存在这样的一对(x, y),请输出其中一对(x, y)。
约束条件
1 ≤ N ≤ 10¹⁸
所有输入值都是整数。
输入
输入从标准输入给出,格式如下:
N
输出
如果不存在满足x³ - y³ = N的正整数对(x, y),则输出-1。如果存在这样的一对,请输出x和y,用空格分隔。如果有多个解,输出其中任意一个即可。
样例输入1
397
样例输出1
12 11
解释:12³ - 11³ = 397,因此(x, y) = (12, 11)是一个解。
样例输入2
1
样例输出2
-1
解释:不存在满足x³ - y³ = 1的正整数对(x, y),因此输出-1。
样例输入3
39977273855577088
样例输出3
342756 66212
问题描述
你被给定一棵有NK个顶点的树。顶点编号为1,2,…,NK,第i条边(i=1,2,…,NK−1)双向连接顶点u_i和v_i。
确定这棵树是否可以分解为N条路径,每条路径的长度为K。更准确地说,确定是否存在一个N×K的矩阵P,满足以下条件:
- P_{1,1},…,P_{1,K},P_{2,1},…,P_{N,K}是1,2,…,NK的一个排列。
- 对于每个i=1,2,…,N和j=1,2,…,K−1,存在一条边连接顶点P_{i,j}和P_{i,j+1}。
约束条件
- 1≤N
- 1≤K
- NK≤2×10^5
- 1≤u_i < v_i ≤ NK
- 给定的图是一棵树。
- 所有输入值都是整数。
输入
输入从标准输入按以下格式给出:
N K
u_1 v_1
u_2 v_2
⋮
u_{NK-1} v_{NK-1}
输出
如果可以将树分解为N条路径,每条路径长度为K,则输出“Yes”。否则,输出“No”。
样例输入1
3 2 1 2 2 3 3 4 2 5 5 6
样例输出1
Yes
可以将其分解为顶点1,2的路径,顶点3,4的路径,以及顶点5,6的路径。
样例输入2
3 2 1 2 2 3 3 4 2 5 3 6
样例输出2
No
我命由我不由天
(ゴテンクス)
36
我命由我不由天
(ゴテンクス)
41
@HuanL 没有经过我的思考,这两道题目都不用这么难的算法