19年 招行暑期实习笔试题有感!!
昨晚把招行的实习笔试做了,1题卡了,2 ,3 AC了
因此特来总结一发,方便自己以后复习
1.发巧克力:依次给N个人发总数为N块巧克力,按照学号顺序给学生发巧克力,(数量随机,但是至少保证一快,因此后面学生可能没有巧克力) ,求第一个人至少拿6块巧克力的方案数。(如7个人,只有6 1 00000和 7 000000 两种分法,当时没审题清楚,一直认为6 1 00000和6 0 1 0 000 是两种不同
#include<bits/stdc++.h>
using namespace std;
const int M=100001, MOD = 666666666;int a[M],n;
int main(){cin>>n; //学生人数,同时也是巧克力人数a[0]=a[1]=1;for(int i=2; i<=n-6; i++)a[i]=(2*a[i-1])%MOD;int sum=0;for(int i=0; i<=n-6; i++){sum+=a[i];sum%=MOD;}cout<<sum;return 0;
}
)
2.给你n个boy,n个girl ,然后W表示茶壶的最大容量,然后n个茶杯,每个都有不同的容量,要求boy的茶杯里的茶水是girl的两倍,且boy和boy容量一样,girl和girl 容量一样,问如何倒茶,最大化总的茶量(codeForces Round 331)
这题简单,不过注意最后要和茶壶最大容量做对比,
#include <bits/stdc++.h>
using namespace std;
const int N=3*1e5+10;
double num[N];
int main()
{int n,w;while(scanf("%d%d",&n,&w)!=EOF){for(int i=1; i<=2*n; ++i) scanf("%lf",&num[i]);sort(num+1,num+1+2*n);double ans=min(num[1],num[n+1]/2);///排序玩后依次选择最小的ans=ans*3*n;ans=min(ans,1.0*w);printf("%.6f\n",ans);}return 0;
}
3.题意大致就是 n个数,每个数可以进行两次操作,第一种操作是翻倍,第二种操作是减半(取整),问最少操作数使这n个数变成同一个数 (codeforces Round 558)
Input
第一行为一个整数n,第二行为n个整数
Output
输出最少操作数
Sample Input
3
3 5 6
Sample Output
5
这题有点麻烦,
思路如下
可以除以二或者乘以二,就相当于位运算的右移和左移。用两个数组,vis 数组, cnt 数组,刚开始都初始化为0,vis[i] 表示 i 这个数可以由几个数转化而来,cnt[i] 表示题目给出的 n 个数全部转化为 i 需要的操作数。
首先遍历数组找到 ai 的最大值记为 Max,那么所有数转化的上界就是 Max,因为如果最终转化的数如果大于Max,那么所有值都要转化为大于Max的那个数,很明显这不是最后的答案。
把一个数表示为二进制数,
1、如果最低位是0,那么这个数右移一位(除以2),再左移一位(乘以2),就得到原来的数
2、如果最低位是1,那么这个数右移一位(除以2),再左移一位(乘以2),得不到原来的数
处理一个数 ai
1、对 ai 执行左移操作,记录 ai 通过左移能够得到的数字,上限为Max,vis 数组加1,cnt数组记录步数
2、对 ai 执行右移操作,直到 ai 为0
若 ai 的最低位为1,右移一步之后,进行左移,上限为Max,维持vis数组和cnt数组
若 ai 的最低位为0,右移一步,维持vis数组和cnt数组
这样我们就把一个数的所有情况都处理出来了,并且是最少的操作数。最后遍历数组找 vis[i] 为n,并且操作数最小。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define maxn 100005
int n;
int a[maxn],vis[2*maxn],cnt[2*maxn];
int main()
{while(scanf("%d",&n)!=EOF){int Max=0;for(int i=0;i<n;i++){scanf("%d",&a[i]);Max=max(Max,a[i]);}memset(vis,0,sizeof(vis));memset(cnt,0,sizeof(cnt));for(int i=0;i<n;i++){int temp1=a[i],temp2=a[i];int step1=0,step2=0;vis[temp1]++;while(temp1<=Max){temp1<<=1;vis[temp1]++;step1++;cnt[temp1]+=step1;}while(temp2>0){if(temp2%2&&temp2!=1){temp2>>=1;step2++;vis[temp2]++;cnt[temp2]+=step2;int temp3=temp2;int step3=step2;while(temp3<=Max){temp3<<=1;vis[temp3]++;step3++;cnt[temp3]+=step3;}}else{temp2>>=1;step2++;vis[temp2]++;cnt[temp2]+=step2;}}}int ans=1<<30;for(int i=0;i<2*Max;i++)if(vis[i]==n)ans=min(ans,cnt[i]);printf("%d\n",ans);}return 0;
}
参考 https://blog.csdn.net/V5ZSQ/article/details/47082701
https://blog.csdn.net/u013050857/article/details/46707563
19年 招行暑期实习笔试题有感!!相关推荐
- 2014.3.29阿里巴巴暑期实习笔试题分析
參考:http://blog.csdn.net/iloveyoujelly/article/details/22941531 以下中的[分析]是我给出的. 2014.3.29阿里巴巴暑期实习笔试题分析 ...
- 2022暑期实习笔试题总结(网易,华为,360,美团)
暑期投的比较晚,总结一下目前做过的一些笔试题 网易0327 题目:传送门 解析:传送门好像没有第三题 总结: 第一题不难,想的比较复杂,看到很多人说枚举就可以做,本人非要在做题的时候想一个" ...
- 联发科2022暑期实习笔试题
笔试题一共八道,第一道是根据门电路写逻辑表达式.第二个是根据逻辑门和触发器连接图和给定信号的波形,补全波形.第三个记不清了.第四个是智力推理题,难度很小.第五个是描述做过的项目.第六个是脚本编程题.第 ...
- 微软2019暑期实习笔试题
微软2019招暑期实习生的编程题 问题一: [玻璃球游戏] 一个队伍中N个人从1到N编号,N个人之间的连线方式如下:编号为K的人和编号为J的人相连(J exactly divides K),玻璃球可 ...
- 华为2019暑期实习笔试题
目录 第一题 题意 思路 代码 第二题 题意 思路 代码 第三题 题意 思路 代码 笔试共有3道编程题,分别为100分.200分.300分,两个小时.以下内容的编写全凭记忆和个人理解,如有什么不对的地 ...
- 招商银行信用卡中心(信息技术部)暑期实习笔试题
时间:4月11日晚18:00-19:30 地点:东华大学 试卷:(拿到卷子,扫了一眼,持续懵逼中) 第一部分选择题: 1.操作系统进程相关的,2.哈夫曼树,3.哪个排序初始状态对系统系能没影响(差不多 ...
- C语言单链表实现FCFS算法,2014腾讯实习笔试题
2014腾讯实习笔试题 1. 关于二叉树,下面说法正确的是() A. 对于N个节点的二叉树,其高度为nlog2n; B. 一个具有1025个节点的二叉树,其高度范围在11~1025之间 C. 二叉树的 ...
- 育碧Web实习笔试题分享
育碧的Web实习笔试题分享 笔试题目一共有20道,主要有选择题,简答题以及编程题,但是大部分都是简答题,题干是全英语的,但是大致题意还是能够读懂.考查知识大体涉及JavaScript.HTTP.CSS ...
- 2021.4.11 字节跳动实习笔试题---情报解密
2021.4.11 字节跳动实习笔试题-情报解密 题目内容 题目内容: 给你一个字符串,该字符串中有数字,字母(字母只有大写字母)以及一些其他的字符(例如:%,.等),如果首字母为字母或者数字的话,就 ...
最新文章
- poj3304(线段相交问题)
- PXE新手经典思路引导
- 使用ABAP编程实现对微软Office Word文档的操作
- python精彩编程200例pdf下载-最经典的25本Python编程开发电子书(附下载地址)!...
- ios runloop学习
- idea中如何创建接口
- mysql to char 用法_postgresql 中的to_char()常用操作
- SweetAlert2网页弹窗---JAVASCRIPT弹窗
- flask-login
- T470 Win10下触摸板手势
- 每天学命令get_property
- 为什么魂斗罗只有128KB却能实现那么长的剧情有答案了
- Linux大神进阶二十:Mariadb服务管理
- 5 torch.utils.data (Dataset,TensorDataset,DataLoader)
- ssm项目笔记(五)图片存储方案
- Linux服务器运维常用命令(持续更新)
- C/S与B/S应用的区别
- 运行金蝶KIS记账王V10.0对系统有什么要求
- 机载激光雷达数据获取及生产流程
- linux-网络-nc命令