C. C. Blog

Security Research, Algorithm and Data Structure

Problem

给出一个由a-z组成的字符串S,求他的一个子序列,满足如下条件:

1、包含字符串中所有出现过的字符各1个。

2、是所有满足条件1的串中,字典序最小的。

例如:babbdcc,出现过的字符为:abcd,而包含abcd的所有子序列中,字典序最小的为abdc。

阅读全文 »

Problem

在除数游戏中,两人轮流行动,初始时有一个整数q,每次行动要写下一个整数,这个整数必须是最近一次出现的整数的“强除数”。所谓一个整数的“强除数”是指除了1和该整数本身以外,可以整除该整数的整数。

当游戏的某一方找不出符合以上条件的整数时,该方取得胜利,游戏结束。

假设游戏双方都采取最好的策略,给出初始数字。计算第一个写数字的人赢,还是第二个写数字的人赢。

样例解释:

在样例一中,数字6的“强除数”是2和3。不管是写哪个数字,下一个人都赢了。 在样例二中,6是30的一个“强除数”。写下6后,接下来的过程同上。

阅读全文 »

Problem

有n根鞋带混在一起,现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起。可以想象,这n次之后將不再有单独的鞋带头,n条鞋带系成了一些环。那么有多大概率刚好所有这些鞋带只形成了一个环?

阅读全文 »

Problem

有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励。在结束时间之前完成该任务,就可以获得对应的奖励。完成每一个任务所需的时间都是1个单位时间。有时候完成所有任务是不可能的,因为时间上可能会有冲突,这需要你来取舍。求能够获得的最高奖励。

阅读全文 »

Problem

现在有一块玻璃,是长方形的(w 毫米× h 毫米),现在要对他进行切割。

切割的方向有两种,横向和纵向。每一次切割之后就会有若干块玻璃被分成两块更小的玻璃。在切割之后玻璃不会被移动。

现在想知道每次切割之后面积最大的一块玻璃是多少。

阅读全文 »

Problem

小b有一个数组a,她想知道a中任意两个数之间二进制距离的总和。

两个整数的二进制距离指的是这两个数字的二进制数对应位不同的数量。

样例解释:

在二进制表示中,4表示为0100,14表示为1110,2表示为0010。 4和14的距离为2,因为0100和1110只有右数第2,4位不同。其他同理。 所以答案为: Distance(4, 14) + Distance(4, 2) + Distance(14, 2) = 2 + 2 + 2 = 6.

阅读全文 »

Problem

B君和m个人一起,要完成n个任务,在这个题中,m个人会看着这B君,自己什么都不做。

第i个任务有一个开始时间s[i]和结束时间e[i](保证s[i]<=e[i]),一个人完成两个任务的时间区间,不能有交集,但是可以首尾相连。(参考样例)

换句话说,如果一个人依次完成了(s[1], e[1]) (s[2], e[2]) (s[3], e[3])这3个任务,那么这3个任务需要满足s[1]<=e[1]<=s[2]<=e[2]<=s[3]<=e[3]。

同一个任务只能完成一次,并且中间不能换人。

问B君一个人最多可以完成多少个任务。

(单组 n <= 100000)

(所有 n 求和 <= 200000)

(开始时间和结束时间,都是非负整数,且在int范围内。)

(开始时间 <= 结束时间,如果等于的话,意味着这个任务可以瞬间被做完,但是不能没有人做)

阅读全文 »

Problem

X轴上有N个点,每个点除了包括一个位置数据X[i],还包括一个权值W[i]。点P到点P[i]的带权距离 = 实际距离 * P[i]的权值。求X轴上一点使它到这N个点的带权距离之和最小,输出这个最小的带权距离之和。

阅读全文 »

Problem

给定𝑛个数𝑥1…𝑥𝑛,请你选择n个数𝑝1…𝑝𝑛,使得𝑝1<=𝑥1,𝑝2<=𝑥2......,并且𝑝1 𝑥𝑜𝑟 𝑝2 𝑥𝑜𝑟 𝑝3 … 𝑝𝑛的值尽量大。问这个最大的异或和是多少。

𝑛≤100 , 0≤𝑥𝑖≤1e9

阅读全文 »

Problem

小b养了n盆花,第i盆花高度为A[i]。

小b每天可以给某一盆花浇水,这样这盆花就会长高一单位。

小b希望每盆花都是独一无二的,也就是不存在两盆花高度相等。

求小b最少要浇几天水。

阅读全文 »