CSP-J模拟赛day5——试题

yjq的三点联通块

题目背景

yjq最近对一种叫 三点联通块 的东西巨感兴趣……

题目描述

现在给你一棵树。你的任务是找出树上有多少不同的点集(a, b, c),使得 a,b,c 构成一个直接相连的三点连通块。
下面举个例子说明:
请添加图片描述

上面的树中,直接相连的三点连通块有四个。分别是:(1, 2, 3), (1, 2, 5), (2, 3, 5), (2, 3, 4)
因此答案为 4。

输入格式

第一行一个正整数 n,表示树上总共有 n 个点。编号从 1 到 n。
接下来 n-1 行,每行两个正整数 u 和 v,表示点 u 和点 v 之间有一条连边。
输出格式
一个整数,表示有几个三点连通块。

样例

5
1 2
2 3
3 4
2 5
4

样例 1 解释
参见题目描述部分。
大样例见文件 three.in/out

数据范围

共 10 个测试点,每个测试点 10 分。
1 ≤ 𝑛 ≤ 100,000


yjq的矩阵魔法

题目描述

魔法少女yjq最近学会了一个矩阵魔法。她会在一个 n×n 的二维数组上将一个奇数阶方阵按照顺时针或者逆时针旋转 90°。

请添加图片描述

上图展示了一个 3×3 方阵经过顺时针旋转的例子。

首先,魔法少女yjq会将 1 到 n 2 n^2 n2 的正整数按照从左到右,从上到下的顺序填入初始的二维数组中,然后开始释放矩阵魔法。

给定yjq的魔法施放顺序,你的任务是求出魔法少女yjq施放所有魔法完毕之后,矩阵的
形状是什么样的。

输入格式

第 1 行两个整数 n,m,表示方阵大小和魔法施放次数。

接下来 m 行,每行 4 个整数 x,y,r,z,表示在这次魔法中,yjq会把以第 x 行第 y 列为中
心的 2r+1 阶矩阵按照某种时针方向旋转。

其中,z=0 表示顺时针,z=1 表示逆时针。

输出格式

输出 n 行,每行 n 个用空格隔开的数,表示最终所得到的矩阵。

Samples

5 4
2 2 1 0
3 3 1 1
4 4 1 0
3 3 2 1
5 10 3 18 15
4 19 8 17 20
1 14 23 24 25
6 9 2 7 22
11 12 13 16 21

样例 1 解释

初始的矩阵是第一行 1 到 5,第二行 6 到 10,第三行 11 到 15,第四行 16 到 20,第五行21 到 25。
四次操作分别是:
第一次以(2, 2)为中心,顺时针旋转一个 3×3的方阵
第二次以(3, 3)为中心,逆时针旋转一个 3×3的方阵
第三次以(4, 4)为中心,顺时针旋转一个 3×3 的方阵
第四次以(3, 3)为中心,逆时针旋转一个 5×5 的方阵
大样例见文件 magic.in/out

数据范围

共 10 个测试点,每个测试点 10 分。
1 ≤ 𝑛, 𝑚 ≤ 500

提示

写此题时一定要保证头脑清醒!


yjq的汪汪队

题目描述

yjq的汪汪队要执行一次追捕嫌疑人的特别行动!但是狡猾的嫌疑人为yjq的汪汪队布置了 n 个机关。
yjq的汪汪队需要按照给出的顺序通过这些机关。每个机关会消耗yjq的汪汪队𝑎𝑖点体力。
yjq的汪汪队在机房夜以继日刷KMP算法后,获得了一个能力:它们有至多 k 次机会跳过当前的机关。
但是,因为KMP算法太难理解,所以这个能力有一个副作用:接下来的所有机关将多使得yjq的汪汪队花费1点能量。跳过机关导致的额外能量消耗会叠加
比如当前已经跳过了 3 个机关,接下来的机关将使得yjq的汪汪队消耗𝑎𝑖 +3的能量。
yjq还要去机房讲树状数组,你承载着yjq的汪汪队的全部希望。yjq的汪汪队需要你帮助它们合理利用这 k 次机会,来最小化消耗的能量。

输入格式

第一行一个整数 t,表示一共有 t 组数据。
对于每组数据,第一行两个正整数 n 和 k,表示机关数量 n 和机会次数 k。
接下来一行 n 个整数,依次表示 n 个机关需要消耗的能量值。

输出格式

对每组数据,输出一行一个整数表示最少消耗的能量值。

样例

2
4 4
8 7 1 4
4 1
5 10 11 5
0
21

样例 1 解释
第一组使用四次机会全部跳过即可。
第二组只能用一次机会,最佳选择跳过第三个机关,总消耗是:5+10+0+(5+1)=21

大样例见文件 dog.in/out

数据范围

共 10 个测试点,每个测试点 10 分。
1 ≤ 𝑛 ≤ 1,000
1 ≤ 𝑘 ≤ 𝑛

提示

考试结束前不要慌,一定要编译后再提交!!!


yjq的避水珠

题目描述

游戏快要通关了。现在是最后一关,只需要走到魔王的面前干掉他! 但是通往魔王的路线上有许多有毒的雨区。你的游戏角色需要携带游戏中的宝物“避水珠”才可以安全通过,否则会直接判定失败。现在你的角色位于坐标零点处,魔王在$ a $点 处。通往魔王的这长度为 a a a 的路线上,有 n n n 段区间为雨区。

幸好,这段路线上散落着 m 颗避水珠。每颗避水珠位于数轴的整点 x 处,具有重量 p。

携带避水珠并不是没有代价的,代价是你的游戏角色的生命值。具体来说,携带重量 p 的 避水珠通行长度为 1 的区间,就需要你消耗 p 点生命。举例来说,如果在点 3 处捡起一颗 重量为 5 的避水珠,在点 6 处丢弃,则需要花费(6 - 3) * 5 = 15 点生命。

在每个整点处,你可以操控角色做以下行为:

  • 如果这个整点处有一颗避水珠,角色可以将这颗避水珠捡起携带。
  • 如果道具背包里有避水珠,角色可以将这颗避水珠丢弃。

当然,也可以先丢弃背包中有的,再捡起一颗当前位置上新的避水珠。不限制玩家背包中的避水珠数量。
那么,要想通过有毒的雨区到达魔王的位置展开大决战,游戏角色最少要消耗多少生命?

输入格式

一行三个正整数 a, n 和 m,表示魔王在点 a 处。共有 n 段区间为雨区,数轴上共有 m 颗 避水珠。
接下来 n 行,每行两个正整数 l, r,表示[l, r]这段区间为雨区。
接下来 m 行,每行两个正整数 x, p,表示在整点 x 处有一颗重量为 p 的避水珠。
保证给定的 l,r 不会重复,且不会有任何两段雨区发生交叉。

输出格式

一行一个正整数,表示所需要消耗的最少生命值。保证问题有解。

样例 #1

样例输入 #1
10 2 4
3 7
8 10 
0 10
3 4 
8 1 
1 2
样例输出 #1
14
样例 1 解释

初始位于点 0,要走到点 10。数轴上有 2 段雨区 [3, 7], [8, 10]。 有四颗避水珠,分别是点 0 处有一颗重量 10 的;点 3 处有一颗重量 4 的;点 8 处有一颗 重量 1 的;点 1 处有一颗重量 2 的。 最佳的方法是:在点 1 处捡起重量 2 的,到点 7 处丢弃,消耗 12 点生命;在点 8 处捡起 重量 1 的,到点 10 处丢弃,消耗 2 点生命。共计消耗 14 点生命。

数据范围

对于所有数据保证 1 ≤ a , n , m , p ≤ 2000 1 \le a,n,m,p \le 2000 1a,n,m,p2000,其中 n ≤ a 2 n \le \cfrac{a}{2} n2a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值