サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Google I/O
qiita.com/superrino130
はじめに WindowsでRubyのインストールと言えばRubyInstallerですが、CrystalをインストールするにはScoopが必要なので、本格的に移行してみました。 bundle でハマった Gemfileでパッケージ管理が楽々が魅力のRuby、しかしnative extensionsのインストールでエラーが発生。 Fetching gem metadata from https://rubygems.org/..... Resolving dependencies... Fetching debase 0.2.5.beta2 Installing debase 0.2.5.beta2 with native extensions ... An error occurred while installing debase (0.2.5.beta2), and Bundler c
はじめに Atcoderのコンテストにて、RubyでTLEが解消しないこと、ないでしょうか。 私はあります。 Rubyのコードを速い言語にトランスパイルして欲しいと思ったこと、ないでしょうか。 私はあります。 前回記事にてripperの内容が少し理解できましたので、それをcrystalに応用してみました。 但し、julializerはRipper.sexpを使用、こちらはRipper.lexを使用しています。 また、諸先輩の記事を参照させていただきました。 Crystallizer require 'ripper' module Crystallizer class << self def ruby2crystal(source) transpile(Ripper.lex(source)) end private def transpile(s) arr = [] s.map do |w|
はじめに Windows版rubyinstallerの話ですが、ridkってご存知ですか。 私は知りませんでした。 実はいつも見ていた rubyinstallerの終わりの方に出てくるコマンドプロンプト画面。 実はこれ、ridkだったんです。 次のバージョンをインストールするまでお目にかかることもないと思っていましたが、次のコマンドで呼び出すことができます。 実はアップデートもできる 2年前はmsys2でpacmanを使用していましたので、頻繁にアップデートしておりましたが、rubyinstallerを使用してからはアップデートしなくて楽だった次のコマンド等で、アップデート可能です。
class PriorityQueue def initialize(array = []) @data = [] array.each{|a| push(a)} end def push(element) @data.push(element) bottom_up end def pop if size == 0 return nil elsif size == 1 return @data.pop else min = @data[0] @data[0] = @data.pop top_down return min end end def size @data.size end private def swap(i, j) @data[i], @data[j] = @data[j], @data[i] end def parent_idx(target_idx) (target_id
n, m = gets.split.map(&:to_i) MOD = 1_000_000_007 def nPk(n, k) r = 1 while k > 0 r *= n r %= MOD n -= 1 k -= 1 end r end if (n - m).abs > 1 puts 0 elsif n == m puts nPk(n, n) * nPk(m, m) * 2 % MOD else puts nPk(n, n) * nPk(m, m) % MOD end
はじめに AtCoder Problems の Recommendation を利用して、過去の問題を解いています。 AtCoder さん、AtCoder Problems さん、ありがとうございます。 今回のお題 AtCoder Regular Contets C - Attention Difficulty: 641 今回のテーマ、累積和 入力例 2 のWEWEWEEEWWWEを考察しますと、WEWEWEEiWWWEとなりiの左側のWの個数と右側のEの個数の合計が求める人数となります。 文字列の左0から右n-1に向かって、Eは単調減少、Wは単調増加ですので、計算量を抑える手法として累積和を使用します。 n = gets.to_i s = gets.chomp e = (s[0] == 'E' ? [1] : [0]) w = (s[0] == 'W' ? [1] : [0]) 1.up
入力例 4 の972439611840を素因数分解しますと、{2=>6, 3=>3, 5=>1, 103=>4}となります。 これを N 個の整数に分配すれば解答が求まります。N 個未満の素数は、最大公約数に寄与しないわけです。 require 'prime' n, p = gets.split.map(&:to_i) if p == 1 puts 1 elsif n == 1 puts p else h = Prime.prime_division(p).to_h ans = 1 h.each do |k, v| while v >= n ans *= k v -= n end end puts ans end
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
このページを最初にブックマークしてみませんか?
『qiita.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く