首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
wangpucong
vivo_通信工程师
获赞
15
粉丝
2
关注
0
看过 TA
7
男
清华大学
2017
C++
IP属地:广东
沉着冷静,喜欢挑战
私信
关注
拉黑
举报
举报
确定要拉黑wangpucong吗?
发布(14)
评论
刷题
收藏
wangpucong
关注TA,不错过内容更新
关注
2021-12-05 00:23
vivo_通信工程师
题解 | #[CQOI2007]涂色PAINT#
考虑区间,设表示将区间染色需要的最少染色次数, 然后我们考虑如何将区间合并,由于我们对于一段连续的区间可以在一次内涂完, 这就意味着如果我们就可以直接从和位置的答案里转移过来。 否者,我们就要枚举断点,将区间分为两部分染色,并将两部分的结果相加,取最小的。 具体转移方程如下: #include <stdio.h> int main() { char s[51]; int dp[51][51]={[0 ... 50]={[0 ... 50]=100}}; gets(s); int len = strlen(s); for(int length=1;length<=len;...
0
点赞
评论
收藏
分享
2021-12-02 12:14
vivo_通信工程师
题解 | #连续子数组最大和(ACM版本)#
so easy 直接上答案 #include <stdio.h> int main() { long long n=0,max,prev,cur; scanf("%lld",&n); scanf("%lld",&prev); max = prev; for(long long i=1;i<n;++i) { scanf("%lld",&cur); prev = cur>(prev+cur)?cur:(prev+cur); max = max > prev ? max : prev; } printf("%lld",max); return 0...
0
点赞
评论
收藏
分享
2021-12-02 11:38
vivo_通信工程师
2021.12.02 在牛客打卡15天!
0
点赞
评论
收藏
分享
2021-12-01 14:07
已编辑
vivo_通信工程师
题解 | #[C语言]设计LRU缓存结构#
题里面要求 set()和get()都是 O(1) 所以没啥说的,至少LRU中的每个数据需要双向链表存储,这样添加/删除/更新的时候才能做到 O(1) 为了实现通过key直接找到LRU中的数据,只能使用hash,这样才能满足O(1),虽然会有冲突发生,但是也比每轮通过循环找key-value要好的多 // 双向链表节点结构 typedef struct element_s{ struct element_s* prev; struct element_s* next; int value; int key; }element_t; // 双向链表结构 typedef struct list_s{...
0
点赞
评论
收藏
分享
2021-11-29 13:55
vivo_通信工程师
题解 | #不相邻取数#
不相邻取数的最小场景就是 间隔1个取数和间隔2个取数(间隔3个的可以看成是 2个间隔1个的取数,以此类推) 所以我们只需要记录 dp[i] = max{aia_iai+dp[i-2] , aia_iai+dp[i-3]} 最大值一定位于 n或者 n-1中(从1开始) #include<stdio.h> int main() { long long n,dp[5]={0}; scanf("%lld",&n); for(long long i=1;i<=n;++i) { scanf("%lld",&dp[i%5]); if(i>2) dp[i%5] = ...
0
点赞
评论
收藏
分享
2021-11-27 22:43
已编辑
vivo_通信工程师
题解 | #【模板】二维前缀和#
#include<stdio.h> int main() { int n,m,x1,y1,x2,y2; long long temp,q,arr[1001][1001]={0}; scanf("%d %d %lld",&n,&m,&q); for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) { scanf("%lld",&temp); arr[i][j] = temp+arr[i][j-1]+arr[i-1][j]-arr[i-1][j-1]; } for(int i=0;i<q;++i) { s...
0
点赞
评论
收藏
分享
2021-11-27 16:11
vivo_通信工程师
题解 | #abb字串#
cnt[i] 表示在索引为0~i-1 之间小写字母出现的次数,i-cnt[i]表示除了这个字符以外其他字符的数量,这样我们就可以统计出像 ab这样的字符串有多少个 使用dp[i]记录 0~i-1 之间 以字符s[i]结尾的字符串有多少 #include<stdio.h> int main() { long long n,res=0; long long cnt[26]={0},dp[26]={0}; scanf("%lld",&n); getchar(); char *s=(char*)malloc(n+1); gets(s); for(int i=0;i<n;++...
0
点赞
评论
收藏
分享
2021-11-20 15:29
vivo_通信工程师
题解 | #最长回文字符串#
最长回文字符串 #include<stdio.h> int main() { char A[55],B[55]; int n,max=0; scanf("%d",&n); for(int q=0;q<n;++q) { scanf("%s%s",A+1,B+1); max=0; int dp[52][52][52][52]={0}; memset(dp,0,sizeof(dp)); for(int d1=0;d1<=strlen(A+1);++d1) { for(int d2=0;d2<=strlen(B+1);++d2) { for(int i=1,j=d...
0
点赞
评论
收藏
分享
2021-11-20 15:27
vivo_通信工程师
题解 | #二叉树的最小深度#
广度优先搜索计算二叉树最小深度 /** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ class Solution { private: int next_layer_num=0; //计算二叉树下一层的节点数 int current_layer_num=1; //当前遍历层剩余待处理的节点数 int deep_min=1; //最小深度 queue <struct TreeNode*> q; //队列,记录遍历中间结果 public: /** * ...
0
点赞
评论
收藏
分享
2021-11-05 16:38
vivo_通信工程师
2021.11.05 在牛客打卡14天!
0
点赞
评论
收藏
分享
2021-10-08 17:57
vivo_通信工程师
2021.10.08 在牛客打卡13天!
0
点赞
评论
收藏
分享
2021-09-30 16:04
vivo_通信工程师
题解 | #二叉树的最小深度#
广度优先搜索计算二叉树最小深度 /** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ class Solution { private: int next_layer_num=0; //计算二叉树下一层的节点数 int current_layer_num=1; //当前遍历层剩余待处理的节点数 int deep_min=1; //最小深度 queue <struct TreeNode*> q; //队列,记录遍历中间结果 public: /** * ...
0
点赞
评论
收藏
分享
2021-02-27 23:08
已编辑
vivo_通信工程师
vivo 2021春招来啦!!!
vivo2021【春季校园招聘内推节】焕新启动啦! 90 岗位,1000 offer 【内推时间更新】:即日起至3月9日中午12点。 内推码与简历入口如下图
0
点赞
评论
收藏
分享
2021-02-25 11:34
已编辑
vivo_通信工程师
2021 vivo春招来啦!!!
vivo2021【春季校园招聘内推节】焕新启动啦! 90 岗位,1000 offer 【内推时间更新】:即日起至3月9日中午12点。 内推码与简历入口如下图
0
点赞
评论
收藏
分享
1
创作者周榜
更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务