首页 > 代码库 > 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