2020.3.14百度笔试编程题答案(C++/PHP)

选择题太菜了,编程做得还不错,发一下....
第一题,买饮料:
#include<cstdio>
using namespace std;
#define N 1100
#define K 1100
int n,k;
int like[N],buy_count[K]={0};

int main(){
	int i,t,sum=0;
	
	scanf("%d%d",&n,&k);
	for(i=0;i<n;i++){
		scanf("%d",&t);
		buy_count[t]++;
	}
	for(i=1;i<=k;i++){
		sum+=(buy_count[i]/2+buy_count[i]%2);
	}
	printf("%d\n",sum);
	return 0;
}

第二题,分岔。比较坑,一开始以为是动态规划来着,结果发现直接搜索就可以了....幸好在交卷前1分钟试一下搜索发现可以,不然凉了....
#include<cstdio>
#include<map>
#include<unordered_map>
#include<queue>
using namespace std;
map<int,int> fork_count;//部队分开的数量
int n,k; 

int main(){
	int i,j,x,y,min_query;
	queue<int> q;
	int count=0,t;
	
	scanf("%d%d",&n,&k);
	q.push(n);
	while(!q.empty()){
		t=q.front();
		q.pop();
		if(t>k&&(t-k)%2==0){
			//可分
			x=(t-k)/2;
			y=x+k;
			q.push(x);
			q.push(y); 
		}else count++;//不可分 
	}
	printf("%d\n",count);
	return 0;
}
第三题,拼火柴。用动态规划。比较坑的点一个是两个结果是要像字符串一样拼起来,例如123+456=123456;一个是要注意“火柴要全部用完”这个条件。
#include<cstdio>
#include<string>
#include<map>
using namespace std;
#define N 10010
int cost[10]={0,2,5,5,4,5,6,3,7,6};
int n,m;
string res[N]={""};

bool bigger(const string& x,const string& y){
	if(x.size()!=y.size()) return x.size()>y.size();
	else return x>y;
}

int main(){
	char buf[5];
	string sign;
	int i,j,value;
	int t_cost;
	string x,y;
	
	scanf("%d%d",&n,&m);
	for(i=0;i<m;i++){
		scanf("%s",buf);
		sign=buf;
		sscanf(buf,"%d",&value);
		t_cost=cost[value];
		//printf("sign=%s value=%d cost=%d\n",sign.c_str(),value,t_cost);
		if(res[t_cost]!=""){
			if(bigger(sign,res[t_cost])){
				res[t_cost]=sign;
			}
		}else res[t_cost]=sign;
	}
	
	/*for(i=1;i<=9;i++){
		printf("res[%d]=%s\n",i,res[i].c_str());
	}*/
	
	for(i=2;i<=n;i++){
		for(j=0;j<=i;j++){
			x=res[j];
			y=res[i-j];
			if(x!=""&&y!=""&&bigger(x+y,res[i])){
				res[i]=x+y;
			}
		}
		//printf("i=%d res=%s\n",i,res[i].c_str());
	}
	printf("%s\n",res[n].c_str());
	return 0;
}


许愿百度= =
#百度笔试##百度##笔试题目#
全部评论
大神 厉害666
点赞 回复 分享
发布于 2020-03-14 22:38
膜一下
点赞 回复 分享
发布于 2020-03-14 22:46
😂因为时间急迫,代码可能很难看,还有很多很奇怪的变量和注释
点赞 回复 分享
发布于 2020-03-14 22:48
膜一下,第二题用递归和动规都超内存了,只能80%AC。 原来用队列来保存当前的节点信息就可以,学到了。
点赞 回复 分享
发布于 2020-03-14 22:55
膜拜,第三题刚把转移方程想出来就没时间了...
点赞 回复 分享
发布于 2020-03-15 06:43
我第一道就没有做出来,我至今都没想明白为什么?sum+=(count[i]+1)/2;这不就是往上取整吗?我靠。结果一个测试用例都过不了,结果心态彻底奔溃,为什么???????????
点赞 回复 分享
发布于 2020-03-15 14:01
第二道记忆化递归就好,第三道没看到要用完火柴这个条件,结果只过了40%,彻底凉凉了,我靠,我,刷了快800道力扣了,然而我依然还是那么菜,我准备了那么多高阶算法和高阶的数据结构,什么树状数组,什么线段树,什么匈牙利,差点还把ACM的题目刷了,我实在是想不懂我为毛还是那么垃圾,到底是你百度编程题变态还是我力扣刷错了方向?
点赞 回复 分享
发布于 2020-03-15 14:04

相关推荐

尊尼获获:闺蜜在哪?
点赞 评论 收藏
分享
菜菜咪:1. 可以使用简历网站的模版,美观度会更好一点 2. 邮箱可以重新申请一个,或者用qq邮箱的别名,部分hr可能会不喜欢数字邮箱 3. 项目经历最好分点描述,类似的项目很多,可以参考一下别人怎么写的 4. 自我评价可加可不加,技术岗更看重技术。最后,加油,优秀士兵
点赞 评论 收藏
分享
秋招进行到现在终于能写总结了。完全没想到战线会拉这么长,过程会如此狼狈,不过更应该怪自己太菜了。好在所有的运气都用在了最后,也是有个去处。背景:双2本硕科班,无竞赛,本科一段研究所实习,硕士一段大厂暑期实习但无转正。技术栈是C++&nbsp;&amp;&nbsp;Golang,实习是客户端音视频(而且是鸿蒙端开发),简历两个C++项目一个Golang项目。主要投递岗位:后端,cpp软开,游戏服务端,测开,以及一些不拘泥于Java的岗位。从8月起总共投递123家公司,笔试数不清了,约面大约30家。offer/oc/意向:友塔游戏(第一个offer,面试体验很好,就是给钱好少南瑞继保(计算机科班点击就送(限男生),不...
乡土丁真真:佬很厉害,羡慕~虽然我还没有到校招的时候,也想讲一下自己的看法:我觉得不是CPP的问题,佬的背书双2,技术栈加了GO,有两段实习。投了123,面了30.拿到11个offer。这个数据已经很耀眼了。这不也是CPP带来的吗?当然也不止是CPP。至少来说在这个方向努力过的也会有好的结果和选择。同等学历和项目选java就会有更好的吗?我个人持疑问态度。当然CPP在方向选择上确实让人头大,但是我觉得能上岸,至于最后做什么方向,在我看来并不重要。至于CPP特殊,有岗位方向的随机性,java不是不挑方向,只是没得选而已。也希望自己以后校招的时候能offer满满
点赞 评论 收藏
分享
7 14 评论
分享
牛客网
牛客企业服务