试题“转移罪犯”和最高薪酬
2015-09-14 11:29
549 查看
这是一个xx在线笔试的题目:
1、转移罪犯,题目图片如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/15/ff19d73264738f970b2523b255300ca2)
最好感觉题目有点问题,没有理解透彻,但是一下是我自己的理解,能够达到测试样例的正确输出,
只是不知道对不对。
这个算法主要是连续扫描,满足的情况计数加一。
代码如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/15/1f845a2a6b65d10f89f1d99c87532355)
2、获得最高薪酬
题目没有读懂。
题目如图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/15/8f71ce5f34e7f014209f3afe5425310a)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/15/d20610758c3c599c8973041b2576875c)
这是我写的代码,调试通过问题。但是考试没来得及提交上去!!!悲剧啦.
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/15/908e496ce6f146512f678ff81fa5f2b0)
1、转移罪犯,题目图片如下图:
最好感觉题目有点问题,没有理解透彻,但是一下是我自己的理解,能够达到测试样例的正确输出,
只是不知道对不对。
这个算法主要是连续扫描,满足的情况计数加一。
代码如下:
#include<iostream> #include<math.h> using namespace std; int main(void) { int n,t,c; double maxn,maxt; cin>>n>>t>>c; maxn=2*pow(10.0,5.0); maxt=pow(10.0,9.0); if(n<1||n>maxn) { cout<<"ERROR N"<<endl; return ; } if(t<1||t>maxt) { cout<<"ERROR T"<<endl; return ; } if(c<1||c>n) { cout<<"ERROR C"<<endl; return ; } int *a; a=new int ; for(int i=0;i<n;i++) cin>>a[i]; int k,j,m,count; count=0; for(j=0;j<n;j++) { k=0; for(m=j;m<n-1;m++) { while(a[m]<=t) { k++; m++; if(k==c) { count++; break; } } if(a[m]>t) break; } } cout<<count<<endl; delete [] a;
return 1; }运行结果图:
2、获得最高薪酬
题目没有读懂。
题目如图:
这是我写的代码,调试通过问题。但是考试没来得及提交上去!!!悲剧啦.
#include<iostream> #include<math.h> using namespace std; int main() { int n,m,k; double max; cin>>n>>m>>k; max=pow(10.0,9.0); int h=m*k; if(h<1||h>n) { cout<<"ERROR (M*K)"<<endl; return 0; } if(n<h||n>5000) { cout<<"ERROR N"<<endl; return 0; } int *a; a=new int ; for(int i=0;i<n;i++) { cin>>a[i]; if(a[i]<0||a[i]>max) { cout<<"ERROR INPUT"<<endl; return 0; } } int j,t,z,maxget,pos; maxget=0; int *maxp; maxp=new int[k]; for(int p=0;p<k;p++) maxp[p]=0; t=0; pos=0; for(int p=0;p<k;p++) { for(j=0;j<n;j++) { for(z=j;z<m+j;z++) { t+=a[z]; if(maxp[p]<t) { maxp[p]=t; pos=z; } } t=0; } for(int c=pos-m+1;c<=pos;c++) a[c]=0; for(int q=0;q<n;q++) cout<<a[q]<<" "; cout<<endl; } for(int p=0;p<k;p++) maxget+=maxp[p]; cout<<maxget<<endl; delete [] maxp; delete [] a; return 0; }运行结果图:
相关文章推荐
- 五种常见的薪酬体系优缺点对比
- 猎人与狗的故事
- Visual Studio 2010 Service Pack 1安装日志
- 写给玩命工作却对现状不满的IT人
- 单例分享(循环引用及内存占用解决)
- MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(268,5): error MSB6006: “link.
- C++标准程序库笔记(1)
- 软件企业研发人员激励机制研究
- DirectX学习第二篇:构建框架
- 关于VS2010选中代码崩溃问题
- C++的构造函数浅析
- VS2005、2008、2010快捷键大全
- windows + visual studio 2010 配置SVN(1)
- Visual Studio 2010 集成环境下配置OpenGL环境
- 对不起老板!我是来面试你的!
- 互联网行业薪酬等级!看看你值多少钱?
- Visual Studio 2010单元测试--运行测试并查看代码覆盖率
- 如何:生成单元测试
- VS2010关于error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏