2017年 百度校招《数据挖掘工程师》笔试题---程序题
来源:互联网 发布:noppoo choc mac 编辑:程序博客网 时间:2024/06/11 23:58
一,程序题
1,餐厅里有一张圆形的桌子,桌子上有n个座位,座位按照顺序从1到n编号,而且n号座位和1号座位相邻,每个座位都不一样。m个人一起去这家餐厅吃饭,为了更好地就餐,他们不想坐得太过拥挤,因此,不允许有任意两个相邻。
您知道一共有多少种不同的就坐方法吗?最后答案可能非常大,输出答案除以1000000007之后对的余数。两种坐法不一样当前仅当存在一个人,在两种坐法中他坐在了不同的位置上。
2,输入:
第一行一个数字T(T<=10)表示测试数据的组数。对于每组测试数据,输入两个数n和m (1<=n,m<=100000)。
3,输出:
每组数据输出一行,就坐的方案数,如果不存在合法的就坐方案,方案数为0。
样例输入:
4
3 1
3 2
4 2
50 10
3
0
4
128093084
二,程序题(java) AC了的。
import java.util.*;public class Main{ public static void main(String [] agrs) { Scanner scan=new Scanner(System.in); int num; while(scan.hasNext()) { num=scan.nextInt(); for(int i=0;i<num;i++) //这里表示有num组测试数据 { long sum; long total=1; int n=scan.nextInt(); int m=scan.nextInt(); if(m>n/2) //当给定m大于n/2时,直接输出0。因为总会有两个人是相邻位置的。 { sum=0; System.out.println(sum); continue; } for(int j=n-m;j>=n-m*2+1;j--) { total=total*j; } sum=(total)/(n-m); //公式为N=( n/(n-m))*(n-m)(n-m-1)...(n-m-(m-1)) N表示总的方案数 sum=sum*n; sum=sum%1000000007; System.out.println(sum); } } }}
三,运行结果:
1 0
- 2017年 百度校招《数据挖掘工程师》笔试题---程序题
- 百度2017校招笔试题 (机器学习/数据挖掘工程师)
- 2015百度校招机器学习/数据挖掘工程师笔试题(杭州站)
- 2015百度校招--机器学习、数据挖掘工程师笔试题
- 百度校招研发工程师笔试题
- 2012百度数据挖掘研发工程师笔试题
- 百度笔试题(数据挖掘-算法工程师-机器学习)
- 机器学习/数据挖掘工程师校招笔试题目总结。
- 2014百度校招开发测试工程师笔试题
- 2017百度校招笔试第一题
- 百度校招笔试题
- 百度校招笔试题
- 2013百度校园招聘-机器学习和数据挖掘工程师-笔试题
- 2013百度校园招聘-机器学习和数据挖掘工程师-笔试题
- 2013百度校园招聘-机器学习和数据挖掘工程师-笔试题
- 2013百度校园招聘-机器学习和数据挖掘工程师-笔试题
- [转]2013百度校园招聘-机器学习和数据挖掘工程师-笔试题
- 【自己整理的答案】2013百度校园招聘-机器学习和数据挖掘工程师-笔试题
- 【PAT甲级】1012. The Best Rank (25)
- Android之基本UI的学习
- 2016-09-29课后练习
- Gson的使用——Gson解析json数组并展示在ListView控件上
- outline的截图
- 2017年 百度校招《数据挖掘工程师》笔试题---程序题
- B. Chris and Magic Square
- Tensorflow #2 深度学习-RNN LSTM版 MNIST手写识别Demo
- webview 加载h5页面,播放视频+全屏,实现简单封装
- ACdream1427-Nice Sequence
- velocity之使用函数对web-inf文件夹下模板进行解析加载
- java设计模式之适配器模式
- 优质Swift学习视频地址
- 在Linux里设置环境变量的方法(export PATH)