LL2006 君ならどう書く ROUND2 C++編 [C++]

| コメント(0)
これのC++版です。LLじゃないけど
特に変わったことはしてないけど、
h(100000)の計算が約0.3秒ですむという驚異。やはりC++、すばらしい(´▽`ノ
#include <iostream>
#include <algorithm> //max_element
#include <map>
#include <cstdlib> // atoi

typedef std::map<int,int> xs_t;

int g(int n) {
  return ( n == 1 ) ? 1 : 1 + g((n%2) ? n*3+1 : n/2);
}

int s(const xs_t::value_type& lhs, const xs_t::value_type& rhs) {
  return lhs.second < rhs.second;
}

int h(int n) {
  xs_t xs;
  for (int i = 0; i < n; ++i) {
    xs[i+1]=g(i+1);
  }
  return std::max_element(xs.begin(), xs.end(), s)->first;
}

int main(int argc, char** argv) {
  int n = ( argc > 1) ? std::atoi(argv[1]) : 100;
  std::cout << "h(" << n << ")=" << h(n) << std::endl;
  return 0;
}
[追記]
せっかくなのでLL2006の方にトラックバックしておきます :D

コメントする

AUTHOR

  • turugina (虎王 剱奈)
  • E-mail: turugina {at} floralcompany.jp
  • pixiv
  • ニジエ

2014年5月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

アーカイブ

OpenID対応しています OpenIDについて
Powered by Movable Type 5.2.10

- 警 告 -

本サイトにはいわゆる「18禁画像」(イラスト)へのリンクが存在します。 未成年の方や、その手の画像に不快感を覚える方は、 該当記事(「えちぃの」及び「ちょっとえちぃの」カテゴリ) をご覧にならないようお願いいたします。

上記を理解した上で非表示のブログパーツを表示する
あわせて読みたいブログパーツ
ついった
drawr/pixiv/twitpic