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;
}


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

相关推荐

昨天 10:23
已编辑
湖南师范大学 计调
太久没更新,前几天看到一条评论,说“牛客就是当年那群做题区毕业了开始找工作还收不住那股味”的群体。字里行间透着居高临下的评判,不是,他该不会以为自己很幽默?很犀利吧?作为在牛客混了不算短日子的用户,我感到的不只是被冒犯,更是一种深刻的悲哀——这种以“松弛感”为名,对另一种生存策略的轻蔑,颇有一种自己考不上大学早早出来混社会,嘲笑考上大学的人是书呆子,然后大言不惭地说:死读书有什么用,人脉和资源才是硬道理。我不知道说这个话的人,手头究竟握着多少真正管用的人脉与资源,也不知道他这么傲慢地说出“那股味”的时候,是站在哪一个巨人的肩膀上,才能如此“松弛从容”地俯视众生,还能品评出别人身上“没收住”的余...
淬月星辉:这种评论把正常的努力扭曲成卷😂,说白了就是自己不努力,看着身边努力的人一个个都事业有成了,自己的心里开始不平衡了,就发这种酸言酸语。牛客可以说是我用过那么多平台里社区氛围最好的论坛了,用了大半年了,基本上没见过有人吵架的,都是在互帮互助提建议,帮忙看简历的,帮忙选offer的,帮忙指点学习路线的,分享工作经验和趣事的,我觉得这才是互联网该有的样子。
点赞 评论 收藏
分享
评论
7
14
分享

创作者周榜

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