当前位置: 首页 > news >正文

小红书2020校招测试开发后端笔试题卷三

 //完全背包求组合数

#include <iostream>
#include<vector>
#include<set>
#include<map>
#include<algorithm>
using namespace std;
int value[300];
// vector<int>vis;
// vector<int>vis1;
map<vector<int>,int>mp;
// set<vector<int>>se;
int num=0;
int res=0;
int a[1000];int dp[50000];
int main() {int n;scanf("%d",&n);getchar();char c=getchar();while(c!=']'){scanf("%d",&value[num++]);c=getchar();}dp[0]=1;//求组和,完全背包for(int i=0;i<num;i++){for(int j=value[i];j<=n;j++){dp[j]+=dp[j-value[i]];}}printf("%d\n",dp[n]);return 0;}
// 64 位输出请用 printf("%lld")

 

#include <iostream>
#include<stack>
using namespace std;
string res;
stack<char>kuo;
int main() {string s;cin>>s;int id=0;for(int i=0;i<s.length();i++){if(s[i]=='('){kuo.push('(');id=1;}else if(s[i]==')'){kuo.pop();}// if(id==1)// {//     while(s[i]!=')'){//         i++;//     }//     id=0;// }else if(kuo.empty()){if(s[i]!='<'){res.push_back(s[i]);}else{if(res.size()>0){res.pop_back();}}}}cout<<res<<endl;return 0;}
// 64 位输出请用 printf("%lld")

 

#include <iostream>
using namespace std;
int dp[1005];
int num[1005];
int a[1005];
int main() {//dp[i]表示从前i篇笔记获得的最大点赞数int n;scanf("%d",&n);dp[0]=0;for(int i=0;i<n;i++){scanf("%d",&a[i]);}dp[0]=a[0];num[0]=1;for(int i=1;i<n;i++){dp[i]=max(dp[i-1],dp[i-2]+a[i]);//如果不选第i个if(dp[i-2]+a[i]>dp[i-1])num[i]=num[i-2]+1;else if(dp[i-2]+a[i]==dp[i-1]){num[i]=min(num[i-1],num[i-2]+1);}else{num[i]=num[i-1];}}int max_value=dp[n-1];printf("%d %d\n",dp[n-1],num[n-1]);return 0;
}
// 64 位输出请用 printf("%lld")

题解:贪心维护第一个值的升序,然后对第二个值用LIS(二分+dp),不然会爆,注意第一个值>=,第二个值要严格递增,要不然过不了

#include <iostream>
#include<queue>
#include<string.h>
#include<algorithm>
using namespace std;
struct Node{int x;int h;
}node[1000004];bool cmp(Node a,Node b)
{if(a.x<b.x ){return true;}else if(a.x==b.x){return a.h<=b.h;}else{return  false;}}
int dp[1000005];int binary_search(int r,int val)
{int l=1;while(l<=r){int mid=(l+r)/2;if(dp[mid]<val){l=mid+1;}else{r=mid-1;}}return l;
}
int main() {int N;scanf("%d",&N);for(int i=0;i<N;i++){scanf("%d%d",&node[i].x,&node[i].h);}sort(node,node+N,cmp);int res=1;memset(dp,0x3f3f3f3f,sizeof(dp));dp[1]=node[0].h;for(int i=1;i<N;i++){if(node[i].h>dp[res]){dp[++res]=node[i].h;}else{dp[binary_search(res,node[i].h)]=node[i].h;}// printf("%d %d\n",node[i].x,node[i].h);}printf("%d\n",res);return 0;}
// 64 位输出请用 printf("%lld")

 

http://www.lryc.cn/news/105105.html

相关文章:

  • python数据可视化Matplotlib
  • firewalld防火墙
  • iMacros WebBrowser Component for .NET
  • 3,堆,桶排序,排序总结【p4-p5】
  • 使用langchain与你自己的数据对话(四):问答(question answering)
  • 如何快速开拓海外华人市场?附解决方案!
  • 【云原生-制品管理】制品管理的优势
  • Java爬虫----HttpClient方式(获取数据篇)
  • 计算机视觉实验:图像增强应用实践
  • ES6:Generator函数详解
  • 前端小练-产品宣传页面
  • arm学习之stm32设备树学习-中断控制led灯亮灭+字符设备指令控制led灯亮灭
  • 快速开发框架若依的基础使用详解
  • RabbitMQ 教程 | 第4章 RabbitMQ 进阶
  • 小程序如何从分类中移除商品
  • P1219 [USACO1.5] 八皇后 Checker Challenge
  • 如何在不使用脚本和插件的情况下手动删除 3Ds Max 中的病毒?
  • SpringCloud Gateway 在微服务架构下的最佳实践
  • Android studio修改app图标
  • <C++> 三、内存管理
  • 大模型开发(十五):从0到1构建一个高度自动化的AI项目开发流程(上)
  • HarmonyOS 开发基础(二)组件拼凑简单登录页面
  • flutter minio
  • ChatGPT:人工智能交互的新时代
  • C. Binary String Copying - 思维
  • 哈工大计算机网络课程网络安全基本原理详解之:密钥分发中心与公钥认证中心
  • md5sum
  • 图文档数字化:实现高效管理的几大步骤
  • 服务器磁盘占用过高分析
  • 【C语言】通讯录3.0 (文件存储版)