2016 京东校招研发算法题 9.6

第一题:爬山

思路:

需要判断第一个有效数据,到第一天所能达到的最高高度,和最后一个有效数据到最后一天能达到的最高高度。我这里是用的一个map来存放d,h。

AC代码:

 1 #include "iostream"
 2 #include "map"
 3 #define MAX 10000001
 4
 5 using namespace std;
 6
 7 map<int, int > mapp;
 8 int n, m;
 9
10 int solve()
11 {
12     int c = 0, res = 0;
13     map<int, int>::iterator  iter = mapp.begin();
14     map<int, int>::iterator  end = mapp.end();
15     end--;
16     //判断第一天
17     int h = mapp.begin()->first + (mapp.begin()->second);
18     for (iter = mapp.begin(); iter != end; iter++)
19     {
20
21         int f = abs(iter->first - (++iter)->first);
22         iter--;
23         int s = abs(iter->second - (++iter)->second);
24         iter--;
25
26         if (f < s)
27         {
28             cout << "IMPOSSIBLE" << endl;
29             return 0;
30         }
31
32         else
33         {
34             h = (f - s) / 2;
35             if (h > res)
36                 res = h;
37         }
38     }
39
40     //判断最后一天。
41     int temp = end->second + (n - end->first);
42     if (temp > res)
43         res = temp;
44
45     cout << res << endl;
46     return 1;
47 }
48
49 int main()
50 {
51     while (cin >> n >> m)
52     {
53         while (m--)
54         {
55             int d, h;
56             cin >> d >> h;
57             mapp[d] = h;
58             //mapp.insert(pair<int, int>(d+1, h+1));
59         }
60         solve();
61         mapp.clear();
62     }
63 }

进制均值:

思路:

分别计算2到A-1进制的所有数之和,每个进制返回一个cnt,最后分母是所有cnt的累加,分子是A-2。

代码:

 1 #include "iostream"
 2
 3 using namespace std;
 4
 5 int n;
 6
 7 int solve(int t)
 8 {
 9     int cnt = 0, nn = n;
10     if (t == 1)
11         return 0;
12     while (nn != 0)
13     {
14         cnt += nn%t;
15         nn /= t;
16     }
17     return cnt;
18
19 }
20
21 int main()
22 {
23     int t, res = 0;
24     while (cin >> n)
25     {
26         res = 0;
27         int flag = n;
28         while (flag != 0)
29         {
30             res += solve(flag);
31             flag--;
32         }
33         cout << res - 1;
34
35         cout << "/" << n - 2 << endl;
36     }
37 }
时间: 2024-07-30 22:33:03

2016 京东校招研发算法题 9.6的相关文章

2016 百度校招研发算法题 9.12

很简单,直接ac: 1 #include "iostream" 2 3 using namespace std; 4 5 int n, t, tag = 1; 6 int main() 7 { 8 cin >> n; 9 10 if (n % 2 == 1) 11 t = n; 12 else 13 t =n+ 1; 14 15 for (int i = 0; i < t; i++) 16 { 17 cout << n; 18 } 19 cout <

2016 阿里校招研发算法题 9.9

题目大意: 输入一个字符串流,里面有数字和非数字,非数字将数字隔开了,要找出,出现次数最多的数字. 思路: 先将所有非数字用统一字符替换,然后找出数字,需要判断下一个字符是不是数字,然后将数字存到hashmap里面,出现存在过的数字,hashmap的value+1:最后输出value值最大的数字. 代码: 1 #include"iostream" 2 #include"map" 3 #include"vector" 4 #include"

2016京东Android研发校招笔试题

一.选择题汇总,具体的记不住啦.. 1.计网:ip的网络前缀.SNMP(报文组成):http://blog.csdn.net/shanzhizi/article/details/11606767 参考这个博客 TCP协议 2.数据库连接查询.全文索引:select * from product where match(detail) fulltext('jyc') 3.PAD图.N-S图 4.hash映射. 5.CSS中透明的部分 6.DMA.中断 7.线性窥孔 8.编译原理的表达式 9.and

美团点评2017校招研发offer面经

2017届的校招早早就结束了,抽出时间做个记录. 职位:后台开发工程师 岗位职责: 如果你热爱编程,这里给你平台用代码改变世界: 如果你乐于挑战,这里有用户和商家五花八门的需求和苛刻的系统运行环境在等待着你: 在这里,你可以参与后端模块.数据平台.基础服务和云计算功能的开发工作: 在这里,你还将参与需求定义,确定设计方案并负责最终实现: 你需要对代码质量负责,确保代码正确无误,高效工作,无QA,你的代码你做主! 工作要求: 1. 一句话,会写代码.你可以是本科及以上计算机相关专业的科班出身,也可

java基础算法题

为了提高自己的代码能力和算法能力,我决定每天学习一道算法题,吸收前辈思想. [程序1] TestRabbit.java 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析:兔子数量的规律为数列:1,1,2,3,5,8,13.....其实就是斐波那契数列  使用递归就可以实现 1 /** 2 * 兔子问题 3 * 2016/5/9 4 * 斐波那契数列求值 5 *题目:古典问题:有一对兔子,

2016华为校招机试记录

3道题,分值100/200/300,都不算难 1.输入一个字符串,输出该字符串按照每个字母与'U'距离的绝对值排序的新字符串(若相同,按照原字符串中的位置关系排列) 核心就是写一个sort的cmp函数,没什么难度 2.续1s:给定一个字符串类型的时间(2016/09/13 13:13:13),输出下一秒的时间 考虑好闰年情况依次进位即可 3.仿自动售货机:给一个字符串(形如p 1,p 5,p 5,b A1,b A3,b A2)和执行前货箱.钱箱的初始状态,p k(1/2/5)表示塞入一张k元纸币

数据结构与算法题整理

未经各位前辈允许,擅自整理,还望谅解.感激不尽. ↓↓↓↓一一一2016.9.23 如何计算时间复杂度 平均查找长度详解 ↓↓↓↓一一一2016.9.15 找工作知识储备(3)---从头说12种排序算法:原理.图解.动画视频演示.代码以及笔试面试题目中的应用(该博主博客很多面试数据结构与算法方面的干货!推荐!) 找工作笔试面试那些事儿(15)---互联网公司面试的零零种种和多家经验(同为该博主,这篇讲大纲) ↓↓↓↓一一一2016.9.14 微软公司等数据结构+算法面试100题(第1-100题)

笔试算法题

转自:http://www.cnblogs.com/xwdreamer/archive/2011/12/13/2296910.html 1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向.   10  / \  6  14 / \ / \4  8 12 16 转换成双向链表4=6=8=10=12=14=16.  首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode{  i

每天刷个算法题20160522:支持各种类型的并查集

版权所有.所有权利保留. 欢迎转载,转载时请注明出处: http://blog.csdn.net/xiaofei_it/article/details/51524671 为了防止思维僵化,每天刷个算法题.已经刷了几天了,现在发点代码. 我已经建了一个开源项目,每天的题目都在里面: https://github.com/Xiaofei-it/Algorithms 绝大部分算法都是我自己写的,没有参考网上通用代码.读者可能会觉得有的代码晦涩难懂,因为那是我自己的理解. 最近几天都是在写一些原来的东西