Programming Competition
给定 $n$ 个点的树,问能选出多少点对 $(u,v)$,满足 $u,v$ 互相不为祖先,每个点只能被包含在一个点对中。
给定 $n$ 个点的树,问能选出多少点对 $(u,v)$,满足 $u,v$ 互相不为祖先,每个点只能被包含在一个点对中。
给一个长度为 $n\,(1\le n\le 1000)$ 的正整数序列 $\left\lbrace c_n\right\rbrace \,(1\le c_i\le 10^9)$。用该序列一如下方式构造一个括号序列 $s$:
开始 $c$ 为空;
对 $i$ 从 $1$ 到 $n$ 依次遍历,若 $i$ 为奇数,则在 $s$ 后插入 $c_i$ 个 '('
,否则插入 $c_i$ 个 ')'
。
求有多少对 $\left<l,r\right>$ 使得 $s_{l\sim r}$ 为合法括号序列。
有一个长度为 $n$ 的数组 $a$,满足 $\forall a_i\in\lbrace 0,1,2\rbrace $,一开始所有元素均为蓝色。
可以有如下操作:
用一枚硬币,把一个蓝色元素涂成红色;
选择一个不等于 $0$ 的红色元素和一个与其相邻的蓝色元素,将所选的红色元素减少 $1$,并将所选的蓝色元素涂成红色。
要将所有元素涂红,最少需要多少硬币?
现在由k种程序
在一个cpu中如果执行了第$i$种和然后又执行第$i$种程序,则花费$hot_i$时间。否则是$cold_i$时间
现在有一个长度为n的需要执行的程序序列。有两个cpu,两个cpu只能同时运行一个。
运行完所有程序所需要的时间是多少。
给出一个合法括号序列(每个左括号都有对应的右括号)
现在你需要给这个括号序列涂上颜色。
涂色的规则:
一对对应的括号只能涂其中一个括号
任意相邻的两个有颜色的括号颜色不能相同
涂的颜色只有两种,红色或蓝色
求合法涂色的方案数。
你有一辆货运卡车,你需要用这一辆车把一些箱子从仓库运送到码头。这辆卡车每次运输有 箱子数目的限制 和 总重量的限制 。
给你一个箱子数组 boxes
和三个整数 portsCount
, maxBoxes
和 maxWeight
,其中 boxes[i] = [portsi, weighti]
。
portsi
表示第 i
个箱子需要送达的码头, weightsi
是第 i
个箱子的重量。
portsCount
是码头的数目。
maxBoxes
和 maxWeight
分别是卡车每趟运输箱子数目和重量的限制。
箱子需要按照 数组顺序 运输,同时每次运输需要遵循以下步骤:
卡车从 boxes
队列中按顺序取出若干个箱子,但不能违反 maxBoxes
和 maxWeight
限制。
对于在卡车上的箱子,我们需要 按顺序 处理它们,卡车会通过 一趟行程 将最前面的箱子送到目的地码头并卸货。如果卡车已经在对应的码头,那么不需要 额外行程 ,箱子也会立马被卸货。
卡车上所有箱子都被卸货后,卡车需要 一趟行程 回到仓库,从箱子队列里再取出一些箱子。
卡车在将所有箱子运输并卸货后,最后必须回到仓库。
请你返回将所有箱子送到相应码头的 最少行程 次数。
示例 1:
```txt
输入:boxes = [[1,1],[2,1],[1,1]], portsCount = 2, maxBoxes = 3, maxWeight = 3
输出:4
解释:最优策略如下:
所以总行程数为 4 。
注意到第一个和第三个箱子不能同时被卸货,因为箱子需要按顺序处理(也就是第二个箱子需要先被送到码头 2 ,然后才能处理第三个箱子)。
```
示例 2:
```txt
输入:boxes = [[1,2],[3,3],[3,1],[3,1],[2,4]], portsCount = 3, maxBoxes = 3, maxWeight = 6
输出:6
解释:最优策略如下:
卡车首先运输第一个箱子,到达码头 1 ,然后回到仓库,总共 2 趟行程。
卡车运输第二、第三、第四个箱子,到达码头 3 ,然后回到仓库,总共 2 趟行程。
卡车运输第五个箱子,到达码头 2 ,回到仓库,总共 2 趟行程。
总行程数为 2 + 2 + 2 = 6 。
```
示例 3:
```txt
输入:boxes = [[1,4],[1,2],[2,1],[2,1],[3,2],[3,4]], portsCount = 3, maxBoxes = 6, maxWeight = 7
输出:6
解释:最优策略如下:
卡车运输第一和第二个箱子,到达码头 1 ,然后回到仓库,总共 2 趟行程。
卡车运输第三和第四个箱子,到达码头 2 ,然后回到仓库,总共 2 趟行程。
卡车运输第五和第六个箱子,到达码头 3 ,然后回到仓库,总共 2 趟行程。
总行程数为 2 + 2 + 2 = 6 。
```
示例 4:
```txt
输入:boxes = [[2,4],[2,5],[3,1],[3,2],[3,7],[3,1],[4,4],[1,3],[5,2]], portsCount = 5, maxBoxes = 5, maxWeight = 7
输出:14
解释:最优策略如下:
卡车运输第一个箱子,到达码头 2 ,然后回到仓库,总共 2 趟行程。
卡车运输第二个箱子,到达码头 2 ,然后回到仓库,总共 2 趟行程。
卡车运输第三和第四个箱子,到达码头 3 ,然后回到仓库,总共 2 趟行程。
卡车运输第五个箱子,到达码头 3 ,然后回到仓库,总共 2 趟行程。
卡车运输第六和第七个箱子,到达码头 3 ,然后去码头 4 ,然后回到仓库,总共 3 趟行程。
卡车运输第八和第九个箱子,到达码头 1 ,然后去码头 5 ,然后回到仓库,总共 3 趟行程。
总行程数为 2 + 2 + 2 + 2 + 3 + 3 = 14 。
```
提示:
1 <= boxes.length <= 10^5
1 <= portsCount, maxBoxes, maxWeight <= 10^5
1 <= portsi <= portsCount
1 <= weightsi <= maxWeight
在 x 轴上有一个一维的花园。花园长度为 n
,从点 0
开始,到点 n
结束。
花园里总共有 n + 1
个水龙头,分别位于 [0, 1, ..., n]
。
给你一个整数 n
和一个长度为 n + 1
的整数数组 ranges
,其中 ranges[i]
(下标从 0 开始)表示:如果打开点 i
处的水龙头,可以灌溉的区域为 [i - ranges[i], i + ranges[i]]
。
请你返回可以灌溉整个花园的 最少水龙头数目 。如果花园始终存在无法灌溉到的地方,请你返回 -1 。
示例 1:
```txt
输入:n = 5, ranges = [3,4,1,1,0,0]
输出:1
解释:
点 0 处的水龙头可以灌溉区间 [-3,3]
点 1 处的水龙头可以灌溉区间 [-3,5]
点 2 处的水龙头可以灌溉区间 [1,3]
点 3 处的水龙头可以灌溉区间 [2,4]
点 4 处的水龙头可以灌溉区间 [4,4]
点 5 处的水龙头可以灌溉区间 [5,5]
只需要打开点 1 处的水龙头即可灌溉整个花园 [0,5] 。
```
示例 2:
```txt
输入:n = 3, ranges = [0,0,0,0]
输出:-1
解释:即使打开所有水龙头,你也无法灌溉整个花园。
```
提示:
1 <= n <= 10^4
ranges.length == n + 1
0 <= ranges[i] <= 100