zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    R语言介绍与安装
    待分析数据数值化
    网络环路与攻击和谷歌的四个8
    基于storm和hadoop的广告系统研究【5】
    Xpath语法
    Xcode编译工具
    关于Xcode的Other Linker Flags
    iOS项目的目录结构和开发流程
    Objective-C中关于NSArray, NSDictionary, NSNumber等写法的进化
    Windows 8 常见教程
  • 原文地址:https://www.cnblogs.com/SeekHit/p/5845137.html
Copyright © 2011-2022 走看看