牛客小白月赛60
A. 小竹与妈妈
- 题意
- ay+b=x, 已知a,b,x,求y
- 题解
- 显然小竹的年龄为
直接输出即可。
- 显然小竹的年龄为
- 代码
1 |
|
B.走丢的小竹
题意
有 n 个出口,每个出口都连着 m 个房间其中一个,有 q 次询问,每次都问如果不能去 x 号房间的话,有多少出口能走。
1≤n,m,q≤105
题解
- 记录每个房间有多少个出口连接记为
,每次询问输出
即可。
- 记录每个房间有多少个出口连接记为
代码
1 |
|
C.小竹关禁闭
题意
- 有 n 个绳子,第 i 条绳子长度为 ai ,当你使用第 i 条绳子的时候,后面的 k 条绳子就都不能用了,问能拿到的所有绳子长度总和最大是多少。
题解
用一个
的
即可解决该问题。
设为选择前
个数绳子的最大长度。
很容易能列出
。
由于允许
通过,直接模拟该过程即。最后的答案为
。
代码1 从前往后推
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using namespace std;
int n, k;
int a[2005];
int dp[2005];
int ans;
int main()
{
cin >> n >> k;
for (int i = 1; i <= n; ++i)
{
cin >> a[i];
}
for (int i = 1; i <= n; ++i)
for (int j = 0; j <= max(0, i - k - 1); ++j)
{
dp[i] = max(dp[j] + a[i], dp[i]);
ans = max(ans, dp[i]);
}
cout << ans << '\n';
return 0;
}代码2 从后往前推
1 |
|
D. 游戏购买!
题意
- 有一个 n∗m 的矩阵,矩阵上有数值。玩家当前分数为 0 ,想从 (sx,sy) 走到 (ex,ey) ,每一步都可以将自己的分数更新为当前所在位置的数值。问想从(sx,sy) 走到 (ex,ey) ,且分数超过 x 需要的最小步数是多少。
题解
- 从起点开始
求出起点到每个位置的最短路,从终点开始同样跑一遍
求出终点到每个位置的最短路.对于每一个拥有刺激度高于
游戏的店铺
,要经过该店铺的答案即为起点到
的最短路,加上终点到
的最短路
- 从起点开始
代码
1 |
|
E.寻找小竹!
题意
- 给定树上 n 个节点和 n−1 条边,如果一条边上的两个点存在至少两个不同的质因子,称这两个节点为共同优雅的。问整棵树上包含节点最多的共有优雅连通块有多少个节点。
题解
相邻结点满足有至少两个不同的共同质因子,也就相当于,相邻两个结点的
满足不为任何质数的幂次,且不为1
我们可以把所有质数的幂次使用一个标记数组
标记起来,然后进行树形dp
设
为以
为根的最大优雅联通块,设
为
的子节点的集合,则
代码
1 |
|
F.被抓住的小竹
- 题意
- 题解
- 代码
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xw的妙妙屋!
评论