广联达笔试5.11

#广联达##投票#
全部评论
怎么做啊
1 回复 分享
发布于 2022-05-11 22:48
#include<iostream> #include<algorithm> #include<vector> using namespace std; int main() { int n; cin>>n; int k; cin>>k; vector<int> pos(n); for(int i=0;i<n>>pos[i]; } //先对pos排序 sort(pos.begin(),pos.end()); int l=0,r=0; vector<int> cover(n); //双指针法,求出cover[0..n-1] //cover[i]表示在pos中下标i之后(包括i)共有多少个馅饼与pos[i]的距离在k之内 //比如pos: 1 1 2 3 4 5 5 //如果k=1,则对应的cover: 3 2 2 2 3 2 1 while(l<n>> dp(n); for(int i=0;i<n>=0;i--) { for(int j=1;j<3;j++){ /*如果i+cover[i]==n并且必须恰好要有2次选择吃馅饼, 说明此时这个馅饼一定不能选择吃 否则的话,假如我们选择吃它,就会剩下一次必须选择吃馅饼的机会 但却没有馅饼可吃了,所以直接dp[i][j]=dp[i+1][j]*/ if(i+cover[i]==n&;&;j==2){ dp[i][j]=dp[i+1][j]; } /*如果i+cover[i]==n并且必须恰好要有1次选择吃馅饼, 说明pos[i]这个馅饼一定要选择吃,因为这样会吃完pos[i]以及之后 的所有馅饼,一定是最多数量,直接dp[i][j]=cover[i]即可 */ else if(i+cover[i]==n&;&;j==1){ dp[i][j]=cover[i]; } /*如果i+cover[i]</n></n></int></n></int></vector></algorithm></iostream>
点赞 回复 分享
发布于 2022-05-18 23:47
笔试题是全是编程题吗
点赞 回复 分享
发布于 2022-05-12 15:16
我的状态变成等待面试了,不知道是过了还是养鱼
点赞 回复 分享
发布于 2022-05-12 14:48
这个通过不通过有结果了?
点赞 回复 分享
发布于 2022-05-12 12:34
0%😅
点赞 回复 分享
发布于 2022-05-12 12:27
这题应该咋做啊
点赞 回复 分享
发布于 2022-05-12 10:57
是接馅饼那个题吗
点赞 回复 分享
发布于 2022-05-11 23:47
凉了,唉
点赞 回复 分享
发布于 2022-05-11 22:33

相关推荐

点赞 评论 收藏
分享
评论
2
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务