2018网易游戏雷火盘古实习生笔试
来源:互联网 发布:js 算法 编辑:程序博客网 时间:2024/05/18 02:11
看了往年的题目,今年一如既往的是4个题目,讲道理都是区域赛签到题水平,或稍微难些,不及铜牌题。
虽然把机械键盘从公司拿回来了,但是手太生了,发挥的有点失常,估计是与网易游戏无缘了T_T。去年秋季九一八就让我去南京笔试,我那阵子在泡图书馆干大事,实在没空,错过了一次机会,这次又没抓住,哎。。。
1.第一个题,扔硬币,10000个硬币排成一排,每次选一个区间翻面,翻1000次,可以用树状数组区实现间加减法,讲道理如果暴力1kw复杂度人品好能过吧,没试过。
#include <iostream>#include <stdio.h>#include <math.h>#include <stdlib.h>#include <string>#include <string.h>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <stack>using namespace std;int n,m;int coins[10009];int ans[10009];int main(){ while(cin>>n>>m){ memset(coins,0,sizeof(coins)); memset(ans,0,sizeof(ans)); int MAXN=0; for(int i=0;i<m;i++){ int a,b; scanf("%d%d",&a,&b); coins[a]++; coins[b+1]--; MAXN=max(b,MAXN); } ans[1]=coins[1]; for(int i=1;i<=n;i++){ coins[i]=coins[i-1]+coins[i]; if(coins[i]&1==1)printf("1"); else printf("0"); } cout<<endl; } return 0;}
2.给三角形三个点,并给出一个新点,判断在不在三角形内,如果在内部求这个新点的插值。对插值不太熟悉,我连这玩意的定义公式都忘了,目测计算机图形学讲过?没想到好办法,跳过去了,没写,最后也没写这个题,光纠结最后一个题了。判断点在三角形内,可以用该点的y坐标横着切一刀,比较一下左右交点的奇偶性就行了。
3.100个村子之间有路,求出一共有几个联通的集合,-1之后算出至少新修几条路能使其全部联通。数据量太小了,一开始想用并查集,后来觉得简直大材小用,随便搞搞,dfs一下暴力一下就行了。
#include <iostream>#include <stdio.h>#include <math.h>#include <stdlib.h>#include <string>#include <string.h>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <stack>using namespace std;int n,m;vector<int>G[109];bool used[109];void dfs(int root){ used[root]=1; for(int i=0;i<G[root].size();i++){//cout<<"size "<<G[i].size(); if(used[G[root][i]]==0){ dfs(G[root][i]); } }}int main(){ while(cin>>n>>m){ memset(used,0,sizeof(used)); for(int i=0;i<101;i++){ G[i].clear(); } for(int i=0;i<m;i++){ int a,b; cin>>a>>b; G[a].push_back(b); G[b].push_back(a); } int ans=0; for(int i=1;i<=n;i++){ if(used[i]==0){ dfs(i); ans++; } } cout<<ans-1<<endl; } return 0;}
4.最后一个题,开始写的时候还有一个多小时,浪费的时间有点多。给出一个长度50的大写字母组成的字符串,每次能打印连续的同样字母的字符串,后打的可以覆盖前面的,问至少打印几次能打印完。这个题是典型的区间DP,一开始我自己出的测试样例水了,觉得贪心就能过,然后交了一发贪心的,结果case通过率2%,不知道算不算罚时啊。这个题挂了之后我就去研究第二个题了,第二个题没研究出来又回来研究这个题,然后慢慢敲,剩了5分钟才研究出来公式,之前少考虑了两边夹中间的,然后这个题没写完就到点了,最后把样例都过不了的代码交上去了- -。时间截止之后,我又把这题代码写完了,自己出的样例都能过了。。。哎。。。再给我半个小时就好了,自己太水了。
#include <iostream>#include <stdio.h>#include <math.h>#include <stdlib.h>#include <string>#include <string.h>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <stack>using namespace std;char S[58];int dp[55][55];int main(){ while(scanf("%s",S)!=EOF){ int l=strlen(S); for(int i=0;i<l;i++){ for(int j=0;j<l;j++){ dp[i][j]=999; if(j==i)dp[i][j]=1; } } for(int i=1;i<l;i++){//length for(int j=0;j<l-1;j++){//qidian int k=j+i;//zhongdian if(k>=l)continue; if(S[k]==S[k-1]){ dp[j][k]=min(dp[j][k],dp[j][k-1]); } if(S[j]==S[j+1]){ dp[j][k]=min(dp[j][k],dp[j+1][k]); } if(S[j]==S[k]&&l>=3){ dp[j][k]=min(dp[j][k],dp[j+1][k-1]+1); } dp[j][k]=min(dp[j][k],dp[j][k-1]+1); dp[j][k]=min(dp[j][k],dp[j+1][k]+1); for(k=j+1;k<=j+i&&k<l;k++){ dp[j][j+i]=min(dp[j][j+i],dp[j][k-1]+dp[k][j+i]); } } } cout<<dp[0][l-1]<<endl; } return 0;}
- 2018网易游戏雷火盘古实习生笔试
- 2018网易游戏雷火盘古实习生招聘笔试真题
- 名企笔试:网易游戏雷火盘古2017实习生招聘笔试题(字符串编码)
- 2017网易游戏雷火盘古实习生招聘笔试真题
- 2017网易游戏雷火盘古实习生招聘笔试:字符串编码
- 2017网易游戏雷火盘古实习生招聘笔试:最大和
- 2017网易游戏雷火盘古实习生招聘笔试真题 第四题
- 2017网易游戏雷火盘古实习生招聘笔试(4)赛马
- 2017网易游戏雷火盘古实习生招聘笔试真题 2
- 2017网易游戏雷火盘古实习生招聘笔试真题:字符串编码 [python]
- 2017网易游戏雷火盘古实习生招聘笔试真题:推箱子 [python]
- 2017网易游戏雷火盘古实习生招聘笔试真题:最大和 [python]
- 2017网易游戏雷火盘古实习生招聘笔试真题:赛马 [python]
- 网易雷火盘古实习2018笔试题
- 网易游戏雷火盘古题
- 网易游戏雷火盘古招聘题(一)
- 2017网易雷火盘古实习生招聘编程题之字符串编码——LZ压缩
- 2017网易雷火盘古实习生招聘试题——硬币反转
- PID
- Caffe学习系列(9):运行caffe自带的两个简单例子
- 跳台阶
- 授予身份及切换身份
- Longest Increasing Path in a Matrix (第五周 记忆化搜索)
- 2018网易游戏雷火盘古实习生笔试
- PAT-B1065. 单身狗
- 每周一结_20170319
- 斐波那契数列
- beam search算法
- C#笔记整理(九)
- 李白打酒,蓝桥杯2014年第3题
- maven的基本原理和使用
- 《ACM程序设计》书中题目总结