C. C. Blog

Security Research, Algorithm and Data Structure

Problem

在一个无限大的二维网格上,你站在(a,b)点上,下一步你可以移动到(a + b, b), (a, a + b), (a - b, b), 或者 (a, a - b)这4个点。 给出起点坐标(a,b),以及终点坐标(x,y),问你能否从起点移动到终点。如果可以,输出"Yes",否则输出"No"。 例如:(1,1) 到 (2,3),(1,1) -> (2,1) -> (2,3)。

阅读全文 »

Problem

有多少个长度为n的二进制串,即不存在3个连续的1,也不存在3个连续的0。

例如n = 4,共有16个长度为4的01串,其中0000 0001 1000 1111 0111 1110,不符合要求,所以共有10个符合要求的串。

阅读全文 »

Problem

小b有个长度为n的数组a,她想将这个数组排序。

然而小b很懒,她觉得对整个数组排序太累了,因此她请你将a分成一些块,使得她只需要对每一块分别排序,就能将整个数组排序。

请问你最多能把a分成多少块。

保证a为0...n-1的一个排列。

样例解释:

将a分成2块或者更多块,都无法得到所需的结果。 例如,分成 [4, 3], [2, 1, 0] ,排序得到的结果是 [3, 4, 0, 1, 2],这不是有序的数组。

阅读全文 »

Problem

小b有一个非负整数N,她想请你找出 ≤𝑁 的最大整数x,满足x各个位数上的数字是不降的。也就是说,设x的十进制表示为 𝑎1,𝑎2,…,𝑎𝑚,则对于任意 1≤𝑖<𝑚,𝑎𝑖≤𝑎𝑖+1。

阅读全文 »

Problem

考虑足球比分系统,一场足球比赛从开始到结束的过程中,摄像机随机拍摄了𝑛张比分信息,问你本场比赛最多出现了几次平分。

例如:3个比分信息为:

2 0 3 1 3 4

最终比分为3:4,所以最多只可能出现最初的0:0以及3:3这2次平分。如果只有1张3:4,那么最多可能有0:0 1:1 2:2 3:3共4次平分。

阅读全文 »

Problem

N个整数组成的序列a[1],a[2],a[3],…,a[n],从中选出一个子段(a[i],a[i+1],…a[j]),使这个子段的和>0,并且这个和是所有和>0的子序列中最小的。

例如:4,-1,5,-2,-1,2,6,-2。-1,5,-2,-1,序列和为1,是最小的。

阅读全文 »

Problem

小Y上数据结构课的时候摸鱼,听到老师在讲用栈做括号匹配,于是乎边随意写了一个合法的括号序列。但是光是写括号太无聊了,他现在想知道这个括号序列的价值。他是这样定义一个括号序列的价值的:

1、一对括号价值一分(比如"()"得一分)

2、两个合法的括号序列的拼接而成的括号序列的价值是他们的价值的和(比如"()()"价值为1+1=2)

3、嵌套的括号的序列的价值是,所嵌套的括号序列的价值的翻倍(比如"((()))"价值为122=4)

下课了,qz看到小Y写的括号序列,他一眼就推测出了规则并得到了括号序列的价值。那么问题来了,小Y写下的括号序列的价值是多少呢?

阅读全文 »

Problem

正当Noder惊魂未定的时候,走来一个美女,要求和他一起玩个数学游戏。美女提议:“让我们各自亮出硬币的一面,或正或反。如果我们都是正面,那么我给你A元,如果我们都是反面,我给你B元(A + B为偶数)。剩下的情况你给我(A + B) / 2元就可以了。

Noder知道这个游戏他多半要输,可他并不在乎,他只想让自己输的慢一点。

那么你来帮美女计算一下,她选择出正面的概率应该是多少(以最简分数形式输出)?

阅读全文 »

Problem

考虑股票市场,一共有n天。 对于第i天,B君知道股票的价格是每单位a[i]元 在每一天,B君可以选择买入一个单位的股票,卖出一个单位的股票,或者什么都不做。 刚开始B君有无穷多的钱,但是没有任何股票。 问n天之后B君最多可以赚多少钱。 (1 <= n <= 200000) (1 <= a[i] <= 10000)

阅读全文 »