首页 > 代码库 > 2016 京东校招研发算法题 9.6
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 else33 {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 }
2016 京东校招研发算法题 9.6
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。