hut第三次面试题解
第一次抓题,写一篇题解庆祝一下(bushi
地址 hut第三次面试
A题yyj的电影
题意:给三个类型,1.2.3,关键点在于3这种类型,会跟风,所以把所有差评即2这种类型的放到一个网站,再把1.3放到另一个网站,签到题,主要就是读懂题目意思,计算一下1.3的个数就行,代码仅供参考
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;const int N = 210;int main() {int t;cin >> t;while (t--) {int n;cin >> n;int cnt = 0;while (n--) {int a;cin >> a;if (a == 1 || a == 3)cnt++;}cout << cnt << endl;}return 0;
}
B题一一学姐的烦恼
题意:经过一次操作,使剩下的字符串为’2020’,由于只能进行一次操作并且是取出连续的子串,所以符合答案可以取出“2020”的只有四种情况
a[0]='2',a[1]='0',a[2]='2',a[3]='0';
a[0]='2',a[1]='0',a[2]='2',a[n-1]='0';
a[0]='2',a[1]='0',a[n-2]='2',a[n-1]='0';
a[0]='2',a[n-1]='0',a[n-2]='2',a[n-1]='0';
所以我们只要暴力判断是否符合这四种情况即可
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;const int N = 210;
char a[N];int main() {int t;cin >> t;while (t--) {int n;cin >> n;cin >> a;if (a[0] == '2' && a[1] == '0' && a[2] == '2' && a[3] == '0')cout << "YES" << endl;else if (a[0] == '2' && a[1] == '0' && a[2] == '2' && a[n - 1] == '0')cout << "YES" << endl;else if (a[0] == '2' && a[1] == '0' && a[n - 2] == '2' && a[n - 1] == '0')cout << "YES" << endl;else if (a[0] == '2' && a[n - 3] == '0' && a[n - 2] == '2' && a[n - 1] == '0')cout << "YES" << endl;else if (a[n - 4] == '2' && a[n - 3] == '0' && a[n - 2] == '2' && a[n - 1] == '0')cout << "YES" << endl;else cout << "NO" << endl;}return 0;
}
CD两题问惠姐姐[dogs]
惠姐姐给的题解
惠姐姐yyds
C题这题是一个比较考思维的题
把图画出来就好写很多
仔细观察,不难发现偶数的步数都从顶角开始隔一个一个地方
奇数则是边角的另一个
奇数就是从边长为2的正方形开始,到边长为n+1的正方形结束
而偶数是隔一个正方形来加
需要注意的是要特判4的倍数,因为原点也算一个地方。
代码如下:
#include <stdio.h>
#include <string.h>int main()
{int n;scanf("%d",&n);int i;int sum=0;if(n%2==0) {for (i=n; i>=2; i-=4) {sum+=4+4*(i/2-1);}} else {for (i=n+1; i>=2; i-=2) {sum+=4*i/2;}}if(n==1) {sum=4;}if(n%4==0) {sum++;}printf("%d\n",sum); return 0;
}
D题也是惠姐姐给的题解
这本来是一题背包题,结果被你们暴力写出来了
那这里写两种解法
背包法:
#include <stdio.h>
#include <string.h>int s[]={10,20,50,100};
int f[1001];
int main()
{int n;scanf("%d",&n);int i,j;f[0]=1;for (i=0; i<4; i++) {for (j=s[i]; j<=n; j++) {f[j]+=f[j-s[i]];}}prinf("%d\n",f[n]);return 0;
}
这里先不讲背包,讲起来很麻烦,感兴趣的可以移步csdn搜背包问题学一学背包。
暴力法:
#include <stdio.h>
#include <math.h>int main()
{int n;scanf("%d",&n);int i,j,k,x;int a=n/100;int b=n/50;int c=n/20;int d=n/10;int sum=0;for (i=a; i>=0; i--) {for (j=b; j>=0; j--) {for (k=c; k>=0; k--) {for (x=d; x>=0; x--) {if(n==i*100+j*50+k*20+x*10) {sum++;}}}}}printf("%d\n",sum);return 0;
}
暴力法还挺好理解的,就是用a,b,c,d四个变量分别存有多少个100,50,20,10。
然后直接循环就可以了。
E题惠姐姐送你的签到题
就是一题求最小公倍数的题,不清楚最小公倍数定义的建议百度哦,可以从一开始暴力写,也可以求出最大公因子然后a和b的最小公倍数即
a * b / gcd(a ,b);
//gcd(a, b)即返回的值为最大公因子
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;int gcd(int a, int b) {return b ? gcd(b, a % b) : a;
}
int lcm(int a, int b) {return a * b / gcd(a, b);
}int main() {int a, b;while (cin >> a >> b) {cout << lcm(a, b) << endl;}return 0;
}
下面这个gcd和lcm的建议背诵
int gcd(int a,int b)//辗转相除法(欧几里德算法)求最大公约数{return b ? gcd(b,a%b) : a;}int lcm(int a,int b){return a*b/gcd(a,b);//最小公倍数 }
代码仅供参考,可以暴力写,但是是因为这一题数据范围很小,所以不会超时,如果其他数据范围太大会超时的。
提供C语言版本
#include <stdio.h>
#include <math.h>int gcd(int a,int b)
{int i;int min;if(a<b) {min=a;} else {min=b;}for (i=min; i>=1; i--) {if(a%i==0 && b%i==0) {return i;}}} int main()
{int a,b;while (scanf("%d %d",&a,&b)!=EOF) {int x=gcd(a,b);int sum=a*b/x;printf("%d\n",sum);}return 0;
}
F题惠姐姐yyds
这题其实并不难,只是题目有些人没看懂,一定要注意,是恢复这个数列,而不是让你照着这个规律排
代码如下:
#include <stdio.h>
#include <string.h>long long a[303],b[303];
int main()
{int t;int n;scanf("%d",&t);while (t--) {scanf("%d",&n);int i,j,k;for (i=1; i<=n; i++) {scanf("%lld",&a[i]);
}j=1;k=n;for (i=1; i<=n; i++) {if(i%2!=0) {b[i]=a[j];j++;} else {b[i]=a[k];k--;}}for (i=1; i<=n; i++) {printf("%lld",b[i]);if(i==n) {printf("\n");} else {printf(" ");
}}}return 0;
}
不懂再问惠姐姐
G题惠姐姐的百宝箱
这题有些人看到n<=7竟然想打表
是一个用递归函数画图的题,稍微有点难度
题意的话就是用X去画图,当n为一,是一个X,n为2是以n=1时候的图形为基准,变成
X XX
X X
n为2时,是用n=2时候的图形为基准,变成
X X X XX X
X X X XX XXX X
X X X XX X
X X X X
依次类推
然后我们可以定义一个二维的char数组,刚开始的时候都赋值成空格,使用memset函数进行赋值
memset(ml, ' ', sizeof ml);
从(1,1)开始进行递归,每次的基准图形都是有五个位置需要绘制的,所以对五个位置进行递归,具体的位置就是和三这个数字有关,是三的某次方,具体可看代码实现
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;const int N = 1010;
char ml[N][N];void pp(int x, int y, int n) {int cnt;cnt = pow(3.0, n - 2);if (n == 1) {ml[x][y] = 'X';return;}//有五个位置需要递归pp(x, y, n - 1);pp(x, y + cnt * 2, n - 1);pp(x + cnt, y + cnt, n - 1);pp(x + cnt * 2, y, n - 1);pp(x + cnt * 2, y + cnt * 2, n - 1);
}int main() {int n;while (cin >> n && n != -1) {memset(ml, ' ', sizeof ml);//pow(x,y)头文件math.h中的函数,求x的y次方int cnt = pow(3.0, n - 1);pp(1, 1, n);for (int i = 1; i <= cnt; i++) {for (int j = 1; j <= cnt; j++) {cout << ml[i][j];}cout << endl;if (i == cnt)cout << '-' << endl;}}return 0;
}
有不懂的欢迎讨论和提问
hut第三次面试题解相关推荐
- 2020西安邮电大学ThoughtWorks®联合创新实验室面试题解
2020西安邮电大学ThoughtWorks®联合创新实验室面试题解 题目 1.年轻人我劝你耗子尾汁 2.学生分组问题 3.青蛙过河 4.熊熊的困惑 5.素数和 6.自然之美 7.海涛数对 8.那就是 ...
- 【进阶2-3期】JavaScript深入之闭包面试题解
(关注福利,关注本公众号回复[资料]领取优质前端视频,包括Vue.React.Node源码和实战.面试指导) 本周正式开始前端进阶的第二期,本周的主题是作用域闭包,今天是第8天. 本计划一共28期,每 ...
- 三分钟计算机自我介绍面试,三分钟面试自我介绍【三篇】
[导语]自我介绍是向别人展示你自己的一个重要手段,自我介绍好不好,甚至直接关系到你给别人的第一印象的好坏及以后交往的顺利与否.同时,也是认识自我的手段.以下是无忧考网整理的三分钟面试自我介绍,欢迎阅读 ...
- 程序员阿里三次面试已过却无理由挂了,网友:阿里HR有一票否决
进入互联网大厂一般都是"过五关斩六将",难度堪比西天取经,但当你真正面对这些大厂的面试时,有时候又会被其中的神操作弄的很是蒙圈. 近日,某位程序员发帖称,自己去阿里面试,三面都过了 ...
- 程序员面试快手后感慨:你们经历过绝望吗?三个面试官都是清华的
一名程序员在面试完快手后如此感叹:快手的要求确实高,比阿里难进100倍,三个面试官都是清华的,全是问的acm和算法题. 所谓同行相轻,马上又网友评论:题刷得好不代表解决问题能力强,面试一般考一两个考察 ...
- 阿里三次面试经验和总结,希望对你有帮助!
点击上方"程序IT圈",选择"置顶公众号" 工作日早晨8点50分,准点开车打卡 大纲: 一.投递简历 二.准备面试 三.技术一面 四.健身房里的技术二面 五.产 ...
- 求职信分三步 面试结束后别忘写一封感谢信
求职信分三步 面试结束后别忘写一封感谢信 如果把得到面试机会比作求职成功的第一步,那么写好求职信则是和招聘单位双方沟通的第一道桥梁.万宝盛华的HR告诉求职者,一封求职信的好与坏绝对影响您能否得到面试的 ...
- 985Java程序员的三次面试总结,京东,华为,去哪儿 , 已拿offer
京东 商城平台中间件部门(offer) 一面 自我介绍 项目介绍 (我对于项目说的比较细,项目简介.用到的技术.总体框架.个人贡献,着重讲了项目中遇到的问题,我这里说的是并***形下的性能和数据精确性 ...
- 软件测试工程师三次面试失败的血泪教训!!!
把时间用在进步上,而不是抱怨上;其实很多时候,你并不需要做什么,真诚即可. 最近三次面试的经验总结: 1.开始介绍一下你自己 您好,我叫xxx,xx年xxxx学院xxxx专业毕业,毕业至今在xx的软件 ...
最新文章
- CVPR2020论文解读:CNN合成的图片鉴别
- 一口气发布1008种机器翻译模型,GitHub最火NLP项目大更新
- Failed to load resource: net::ERR_INSECURE_RESPONSE 问题解决记录
- java stream流_Java-8-流(1)
- 2021 ccpc 哈尔滨 G. Damaged Bicycle 状压 + 期望dp
- 【转】Docker学习_本地/容器文件互传(5)
- 为什么你成长这么慢?
- 火星上网不是梦,国际空间站开测星际互联网DTN服务
- JavaWeb项目--【在线音乐播放器】onlineMusicPlayer
- 微信朋友验证消息是什么来源_微信好友来源朋友验证消息
- 制作外挂需要多高的编程技术?
- 数据结构系列之三红黑树
- 微信小程序通过”链接/文字/数字等等“生成二维码
- ADS3 Inverted File Index
- HBuilderX快速上手
- java中cbrt_Java Math类静态double cbrt(double d)示例
- 前端技术基础--笔记
- iOS11界面交互设计规范(iOS 11 Human Interface Guidelines)
- 【数据结构篇03】栈和队列
- 将小写人民币转换成大写
热门文章
- 仙界修仙 - 最新章节列表
- Altera的FPGA用烧写器烧写POF文件,烧写成功,显示100%,但是逻辑做的点灯没亮,一般会是哪的问题呀?烧写sof,灯亮。
- 【华为机试真题详解】货币单位换算【2022 Q4 | 100分】
- Spring Coud 2.0 Client 使用 https 注册到 eureka server 中 (二)
- Vue 项目优化图片
- indexOf()方法
- python time timeit_Python timeit模块
- 追妹神器,恋爱神器,哄老婆开心,智能机器人每天给你心爱的TA发送早晚安问候
- 日本展示机器人Erica,看脸还不错
- MEET2022智能未来大会:李开复张亚勤上演巅峰对话