2023/3/30拼多多笔试
第一道题
给n个level
每一个level可能是boss也可能是商店
boss爆的物品种类为t
商店只收一种特定物品t,价格为v
弱鸡主角只能拿一种物品
问最多能赚多少钱
记忆化dfs爆内存60%
第二道题树
有n个城市,n-1条道路,首都为1,城市之间必有路径
有些道路坏了
问从首都出发派遣修理队,最少排多少队
递归做出来了
第三道题
看起来像滑动窗口双指针,但是越看越像动态规划
给个数组有正有负有0
问积最大的连续子数组
弱智遍历34%
第四道题
给个数组
可以将数组中数为x的均置0
问最少多少次操作可以将数组变成非递减
没时间看
给n个level
每一个level可能是boss也可能是商店
boss爆的物品种类为t
商店只收一种特定物品t,价格为v
弱鸡主角只能拿一种物品
问最多能赚多少钱
记忆化dfs爆内存60%
第二道题树
有n个城市,n-1条道路,首都为1,城市之间必有路径
有些道路坏了
问从首都出发派遣修理队,最少排多少队
递归做出来了
第三道题
看起来像滑动窗口双指针,但是越看越像动态规划
给个数组有正有负有0
问积最大的连续子数组
弱智遍历34%
第四道题
给个数组
可以将数组中数为x的均置0
问最少多少次操作可以将数组变成非递减
没时间看
全部评论
第一题:
#include<bits/stdc++.h>
using namespace std;
const int N = 1e4 + 10;
int a[N],w[N];
char v[N];
int f[N][N];
int main()
{
int n,m;
cin >> n >> m;
for(int i = 1 ; i <= n ; i++)
{
cin >> v[i] >> a[i];
if(v[i] == 'm')
{
cin >> w[i];
}
}
for(int i = 1 ; i <= n ; i++)
{
for(int j = 1 ; j <= m ; j++)
{
if(v[i] == 'm') f[i][0] = max(f[i - 1][0],f[i - 1][j] + w[i]);
else f[i][j] = max(f[i-1][j],f[i - 1][0]);
}
}
int res = 0;
for(int i = 0 ; i <= m ; i++)
{
res = max(f[n][i],res);
}
cout << res << endl;
return 0;
}
第一题
n, m = map(int, input().split())
dp = [-1] * (m + 1)
for j in range(m + 1):
dp[j] = -1
dp[0] = 0
for i in range(1, n + 1):
s = input()
if s == "b":
type = int(input())
t = dp[type]
dp[type] = max(dp[0], dp[type])
else:
type, v = map(int, input().split())
if dp[type] != -1:
dp[0] = max(dp[0], dp[type] + v)
res = max(dp)
print(res)
第一题:没看懂题目描述,第二题:dfs,第三题,leetcode原题152,实现思路是选取两个变量同时维护最大值和最小值,因为最小值是负数,可能下一个数碰到就是最大值了,第四题:感觉像求最长非递减序列,通过动态规划可以做(楼主能记住这么多题很棒了!!!)
可惜了 第四题很简单的 不过也很强了
请问pdd笔试全是编程题吗,就四题吗
还是待笔试是不是就是笔试挂了...
第一题就是找最近同类型,然后dp[i] = dp[pre-1] + value。第二题就是个dfs,从子节点回来看子节点是不是修了,修了就把自己和父节点的路修了。第三题就分段,找最远的负数,数值用前缀和记录2的个数。最后一题就是从前往后,写个单调栈,每次出现逆序对就清空栈
请问一下每道题过了一部分也有相应的分数嘛?
第一题dp了一个小时,没做出来 第二题想了会,觉得应该很难就没想了 第三题想到了dp,但是数字太大,也联想到了给的数字全是2的多少次方,没把两个放在一块想 第四题测试样例都过不了。。。。
一模一样😅我太菜了
爆内存的第一题,写完看到那个ifelse我就不想改成迭代的了
唯一做出来的第二道题
```
int findMinCnt(unordered_map<int, vector<pair<int, bool>>>& tree, int root)
{
//get from root min nums of workers need send to sub tree
//返回以当前为根发送最少数量
if (tree.find(root) == tree.end())
{
return 0;
}
auto sub_roots = tree[root];
int ret = 0;
for (auto [sub_root, path_ok] : sub_roots)
{
if (path_ok)
{
ret += max(findMinCnt(tree, sub_root), 0);
}
else
{
ret += max(findMinCnt(tree, sub_root), 1);
}
}
return ret;
}
```
相关推荐
Xuan2333:没错没错就是我,牛客娘表情包的创作者,大家都可以自用哒awa
(第5张“按住牛客娘开始思索”出自我的世界里的机械动力模组,我做这个表情包可是花了我1个多小时的时间啊qwq)
最后附上所有用过的素材图,希望大家喜欢awa
wow
将图片中的人物改成两手托腮,只显示头部照片,眼睛为星星眼,表情开心,并在下方附上文字“wow”
Ciallo
将第二张图的人物做出第一张图的姿势并且要在身体各处还有五官和动作完全一致,不要改背景,高分辨率,最佳质量,并在下方加上和图片相符的文字“Ciallo!”
说不出话
生成这个任务面无表情,一脸犹豫,嘴角下垂,双手交叉在胸前,在中间加上一个带有一条斜杠的麦克风的表示闭麦的符号,并且在下面配上文字“说不出话”
按住牛客娘开始思索
将第二张图的人物进行修改,要求是有一只手按在人物的头上,人物的眼神灵动,手略有着急的轻微摆起,头部微微抬起,并将第一张图放在第二张图的下方,高品质,把这张图的下方的黑色部分加上文字“按住牛客娘开始思索”,字体与图片里展示的“牛客娘”这三个字的字体相一致
我也要WA吗
将第一张图的人物的头发,脸部和衣服改成第二张图的人物的,眼睛保持不变,脸上的汗保持不变,头发的长度修改为和图片的一致,脸上不要有红晕,眼睛里不要有高光,眼睛里只要纯灰色
查看图片
查看图片 点赞 评论 收藏
分享
点赞 评论 收藏
分享

查看2道真题和解析