[過去ログ] プログラミングのお題スレ Part16 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
398(1): 2019/12/20(金)22:16 ID:ZH5ZbPnE(4/10) AAS
C/C++だと
ほんのちょっと数学の知識を使えば
コード上の工夫をまったくしなくても0.01秒
コード上の工夫でまだまだ速くなる
スクリプト系言語でも100倍はかからない気がする
なぜ5秒?
なぜ1000000?
なぜ3000回?
謎だ
399(2): 2019/12/20(金)22:30 ID:fz/tpFJr(1) AAS
些末な最適化など
数学的知識に基づくオーダーの低減に比べたらむなしい
400: 2019/12/20(金)22:30 ID:ZH5ZbPnE(5/10) AAS
数学的知識を使わないで
単純に足していくアルゴリズムを
コードの工夫で5秒切るって問題?
401: 2019/12/20(金)22:38 ID:PCNOOvYP(1) AAS
>>399
>>393は素数の数に対してオーダーは2^n nだけど、
コード上の工夫で2^nになる
さらに、
乗算の数十倍時間がかかる、変数による除算も
コード上の工夫で無くせる
些細な差では無いと思う
402: 2019/12/20(金)22:38 ID:ZH5ZbPnE(6/10) AAS
>>399
>>393は素数の数に対してオーダーは2^n nだけど、
コード上の工夫で2^nになる
さらに、
乗算の数十倍時間がかかる、変数による除算も
コード上の工夫で無くせる
些細な差では無いと思う
403: 2019/12/20(金)22:39 ID:ZH5ZbPnE(7/10) AAS
ダブった
404: 2019/12/20(金)22:50 ID:qHTdS2+z(2/2) AAS
数学も計算機学もどっちも大事
405(1): 2019/12/20(金)23:00 ID:KibkA5Ab(2/3) AAS
>>393
正解。ちなみにRで短く書いたプログラム: 外部リンク:ideone.com
結局、奇数個の積の倍数の個数の和から偶数個のそれを引くというやり方は同じだな。
>>397
そう。上のプログラムが5秒以内に余裕を持って終わるように繰り返し回数を設定したw
効率というより短いのが好きで書いた。
>>398
>>393をRにそのまま移植すると5秒以内に終わらず、1000回に減らしても
(外部リンク:ideone.com)4.56秒かかって、上のプログラムの2.43秒より
遅いよ。Rでは自前のループを書くよりも、関数や演算子を使って短く書いた方が
省1
406: 2019/12/20(金)23:06 ID:ZH5ZbPnE(8/10) AAS
>>405
Rだと3桁倍も時間がかかるのか
衝撃
407(1): 2019/12/20(金)23:10 ID:KibkA5Ab(3/3) AAS
1000までではなく与えられた自然数までということ以外は>>346と同じ問題が
オライリーの「Modern C++チャレンジ」に載っているが、示されている解答は
if (i % 3 == 0 || i % 5 == 0) sum += i; という単純に足していく方式だな。
本の副題は「C++17プログラミング力を鍛える100問」だが、何が鍛えられられるのか
よく分からない。
408: 2019/12/20(金)23:11 ID:ZH5ZbPnE(9/10) AAS
C/C++で1秒かかる問題は
C/C++限定になっちゃう感じだね
409: 2019/12/20(金)23:14 ID:ZH5ZbPnE(10/10) AAS
>>407
算数やアルゴリズムじゃなくて
言語の勉強ってことでしょ
410: 2019/12/21(土)05:43 ID:vVh8rrgH(1) AAS
連投アスペ君うざいよ
学歴詐称までしてたみたいだけど
411(6): 2019/12/21(土)17:30 ID:BSqycIZI(1) AAS
お題
ビットコインの採掘問題です
000 〜 300 までの3桁の整数の文字列を、MD5 で暗号化した時に、
冒頭部分から、5 が最も多く続く、整数は何?
答え、239 : 555d6〜
412: 2019/12/21(土)21:23 ID:WOeaPgYE(1) AAS
>>411
Java
外部リンク:paiza.io
413: 2019/12/21(土)22:58 ID:hbXQRpYW(1) AAS
>>411 PowerShell
$MD5 = new-object "System.Security.Cryptography.MD5CryptoServiceProvider"
$a = 0..300
$hash = $a |% {-join ($MD5.ComputeHash([char[]]("{0:000}" -f $_)) |% {"{0:x2}" -f $_})}
$n = $hash |% {[RegEx]::Match($_, "^5+").length}
$max = ($n | measure -max).Maximum
$a |? {$n[$_] -eq $max} |% {"$_ : " + $hash[$_]}
-- 実行結果 --
239 : 555d6702c950ecb729a966504af0a635
414: 2019/12/22(日)03:50 ID:lBW/6Z3k(1) AAS
>>411
Kotlin
外部リンク:paiza.io
415: 2019/12/22(日)14:00 ID:sfBU8dhx(1) AAS
>>411 Ruby
require 'digest'
p ("000".."300").map{|i|[Digest::MD5.hexdigest(i).index(/[^5]/),i]}.max[1]
416: 411 2019/12/22(日)19:20 ID:u+b66RrE(1) AAS
>>411 Ruby
require 'digest'
# :count は、先頭から続く、5の数
Result = Struct.new( :num, :md5, :count )
res = ( "000".."300" ).each_with_object( Result.new( nil, nil, -1 ) ) do |num, res|
md5 = Digest::MD5.hexdigest( num ) # ハッシュ化
md5.each_char.with_index do |char, idx| # 1文字ずつ処理する
if char != "5"
if idx > res.count # 大きい時だけ更新する
res.num = num
省9
417: 2019/12/23(月)15:49 ID:8tSOZ4fL(1) AAS
>>411
Perl5
外部リンク:paiza.io
418(1): 2019/12/24(火)02:05 ID:3/kDRwCG(1/2) AAS
>>377
>>389
・n=13 のとき
条件(2,2)
{12345678} = A, {9,10} = B, 11=C, 12=D, 13=E と略記する。
ABCDE, -, -, -
手順1
CDE, -, -, AB
手順2
CD, E, -, AB
省16
419: 2019/12/24(火)02:16 ID:3/kDRwCG(2/2) AAS
#A = f(2,1) = 8, #B = 2
* 手順1
ABX, -, -, -
BX, -, -, A
OX, 9, -, A
AOX, 9, -, -
AOX, -, -, 9
OX, -, -, A9
X, O, -, A9
AX, O, -, 9
省22
420: 2019/12/24(火)06:16 ID:cUFUrp77(1/6) AAS
おめでとう
次は(2,2,2)
421(1): 2019/12/24(火)06:33 ID:cUFUrp77(2/6) AAS
n=13を考えるとき
真ん中2本が空いてる時にはn=12までは動かせる
っていう仮定を使うと
考え方が楽になりますよ
これが出来たら
あとは(2,1)のn=8から1枚ずつ増やしていく帰納法が使えます
422(2): 2019/12/24(火)07:26 ID:cUFUrp77(3/6) AAS
a≧b≧c≧d≧e≧1
f(a,b,c,d,e)=f(a-1,b,c,d,e)+2n+1
n = max { a, f(b-1,c,d,e) }
+ max { b, f(c-1,d,e) }
+ max { c, f(d-1,e) }
+ e
423(3): 2019/12/24(火)07:43 ID:cUFUrp77(4/6) AAS
(a,b,c,d,e) の動かしかた
A : 小さい f(a-1,b,c,d,e) 枚
X : 最大の1枚
(n) : A,X以外の任意のn枚
n : >>422で定義
A(2n)X / - / -
(n)X / - / A(n)
(n) / X / A(n)
A(n) / X / (n)
A(n) / - / (n)X
省1
424: 2019/12/24(火)07:48 ID:cUFUrp77(5/6) AAS
ミスった
n = min { a, f(b-1,c,d,e) }
+ min { b, f(c-1,d,e) }
+ min { c, f(d-1,e) }
+ e
425(1): 2019/12/24(火)19:47 ID:cUFUrp77(6/6) AAS
動かせる枚数だけですがコードにしました
外部リンク:ideone.com
426(5): 2019/12/25(水)16:51 ID:eBvDhPt7(1/3) AAS
[お題] 2020と素数
"2020"の省略形は"20"
異なる素数を20個使って、総合計で2020を作る。
1) 何種類できるか(組合せで)。 --> ?
以下 数列は昇順でソート済みでの比較
2) 数列の比較で(辞書順)最小な数列を出力。
--> [3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,73,1381]
3) 数列の比較で(辞書順)最大な数列を出力。
--> ?
例) 総合計 26 で要素数 3の場合
省2
427(1): 2019/12/25(水)19:05 ID:LrSoTBV6(1/4) AAS
2) 3) は瞬時だけど
1) は難しい
出題者は出来たんだよね?
428: 426 2019/12/25(水)19:20 ID:eBvDhPt7(2/3) AAS
>>427
1)は二年前の大晦日に、part9で ほぼ既出問題。
とても大きな数字になるから、
全探索しないでね、って意味で1)においたのだが……
429(3): 2019/12/25(水)22:46 ID:LrSoTBV6(2/4) AAS
外部リンク:ideone.com
430: 2019/12/25(水)22:48 ID:LrSoTBV6(3/4) AAS
合ってる?
431: 2019/12/25(水)22:57 ID:LrSoTBV6(4/4) AAS
辞書順最後は
{ 53, 59, 61, 67, 71, 73, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151 }
432(1): 426 2019/12/25(水)23:33 ID:eBvDhPt7(3/3) AAS
>>429 431 当方とおなじです。
>>426
外部リンク:ideone.com
数が程々なので、まとめて手抜きの"文字列DP"をやってます。
(pypyで1秒以内で回っているのだから、真面目にやる必要ないでしょう)
433: 2019/12/26(木)01:18 ID:rIhsLdYp(1/5) AAS
がんばって速くしてみたけどあまり速くならなかった
外部リンク:ideone.com
434: 2019/12/26(木)01:28 ID:rIhsLdYp(2/5) AAS
C++だから速いはず
だけど大差無いって事は
アルゴリズムで負けてる?
435(1): 2019/12/26(木)04:04 ID:Wc5llTmi(1) AAS
>>421
>>418 は >>371 にEを追加したものです。
ピン0⇔ピン3 間で移動する「4ピン手順」と
ピン{{0,1,2} または {1,2,3} 間で移動する「3ピン手順」
を交互に行ないます。
*手順1 は4ピン手順で、ABの10個を移動します。
*手順2、手順3 は3ピン手順です。
ピン0→ピン{1,2} あるいはピン{1,2}→ピン3 間でxを移動するときは
xより小さい円盤を1本のピンに集めることが必要で、これがネックですね。
最初に12個移動するのはどうかと思うけど・・・・
436: 2019/12/26(木)07:13 ID:rIhsLdYp(3/5) AAS
>>435
帰納法を使えば
具体的な手順は>>423の手順だけで
≧を示せる
と言ってるだけですよ
帰納法の仮定として
・>>422の式より円盤の枚数が少ない時は動かせる
・>>422の条件より置ける置ける枚数が少ない時は>>422が成り立つ
を使う
437: 2019/12/26(木)07:22 ID:rIhsLdYp(4/5) AAS
>>371から>>423に進化して
本数も枚数も一般化出来た
( >>425 )
帰納法の仮定を使って
>>423の(n)は任意のn枚に出来る
これによって手順の記述が対称になり
非常に簡略化出来てます
最短手順を求めるのはまた別の話で
これは帰納的には求められないと思っています
438: 2019/12/26(木)07:28 ID:rIhsLdYp(5/5) AAS
ちなみに >>371の式は最大枚数ではなくて
Cをn枚にすることで最大になります
動かせる最大枚数はわかったので
残る課題は「最短手順を求める」のみ
439: 蟻人間 ◆T6xkBnTXz7B0 2019/12/26(木)15:19 ID:Npbug+/w(1) AAS
お題: 半角英数からなるユーザーIDとパスワードで認証できるアカウントのシステムを以下の要件で作る。
1.新規登録を選んでユーザーIDとパスワードとメールアドレスを入力するとアカウント登録ができる。
2. 複数アカウント対応。ユーザーIDの重複はダメ。
3. アカウント一覧を選ぶとアカウントの一覧とログイン状態が見える。
4. ログインを選んでユーザーIDとパスワードの入力が一致すればログインできる。
5. ログアウトを選べばログアウトできる。
6. パスワードを忘れたとき、アカウントの回復を選んでメルアド入力すると、メールが来てパスワードがリセットされる。
440(1): 2019/12/26(木)19:06 ID:ArA1I+l7(1) AAS
>>432
外部リンク:ideone.com
よくある経路復元方式に変更。
(大量な文字列のコピーが減った)
441: 2019/12/26(木)19:20 ID:nVG7mTn1(1/2) AAS
>>429を少し速くした
外部リンク:ideone.com
442: 2019/12/26(木)21:44 ID:nVG7mTn1(2/2) AAS
外部リンク:ideone.com
vectorを使いまわしするようにしたら速くなった
443: 2019/12/27(金)00:16 ID:N7T+QvJX(1) AAS
外部リンク:ideone.com
まだ省くことができた
444(1): 蟻人間 ◆T6xkBnTXz7B0 2019/12/27(金)18:58 ID:0l4cUgpw(1) AAS
Web系もプログラミングの一種なんだけど、日本のIT教育では軽視されてるみたいなんだ。
445: 2019/12/27(金)20:56 ID:JVKHwIo7(1) AAS
<('o')>フーン
446: ◆QZaw55cn4c 2019/12/27(金)21:03 ID:9iE1xeZJ(1) AAS
>>444
web 系をはじめるには、どういう環境で学べばいいですか?
447(2): 2019/12/27(金)21:12 ID:IA42SgXa(1/4) AAS
外部リンク:ideone.com
>>440のアルゴリズムの方が速いね
448: 2019/12/27(金)21:14 ID:IA42SgXa(2/4) AAS
↑が100回
これが1回
外部リンク:ideone.com
449(2): 2019/12/27(金)22:14 ID:novkoLBo(1/2) AAS
>>426 類似問題
素数を20個使って、総合計で2020を作る。
(同じ素数を複数使ってよい)
何種類できるか(組合せで)。 -->?
(同じ数字は区別しない -> ソートして数列が異なるもので1種類)
ちなみに、辞書順最小が[ 2(* 18), 5, 1979] 、最大が[ 101(* 20)]になる。
※ 2020で20個なら、まだint64_tでおさまる
450(1): 2019/12/27(金)22:54 ID:IA42SgXa(3/4) AAS
↑
>>429の+1を消すだけ
451(1): 2019/12/27(金)22:58 ID:Wx5tgQ31(1) AAS
お題: 「Happy New Year!!」と出力するプログラムを2020年元日に投稿せよ
452(1): 2019/12/27(金)23:32 ID:novkoLBo(2/2) AAS
>>450
やっぱり(既にできていて)、その程度なのだろう。
自分の方も、ユニーク時は更新が伝播しないように
逆順で処理していたのを、伝播するよう正順に戻すだけ。
>>449
外部リンク:ideone.com
453(2): 2019/12/27(金)23:43 ID:IA42SgXa(4/4) AAS
>>452
お題
同じ数は4個まで
454: 2019/12/28(土)01:41 ID:HU/ZZyYG(1) AAS
>>447のだと
for (j = N - 1; j >= 0; j--) {
これを
for (j = 0; j < N; j++) {
こう逆にすると重複の計算ができるんだね
455: 2019/12/28(土)03:25 ID:HeaGj5a1(1/3) AAS
>>423
m≧n≧1 のとき
ピン2に大円盤が1枚以下のときは、ピン0⇔ピン1間、ピン1⇔ピン3間で
n枚組の円盤を移動できますね。 (3ピン手順)
A: 1,2,・・・・,x のx個組 ただし x=f(m-1,n)
B: x+1,...,x+n のn個組
C: x+n+1,・・・・,x+2n+1 のn個組
D: x+2n+1
とする。
456: 2019/12/28(土)03:28 ID:HeaGj5a1(2/3) AAS
ABCD, -, -, -
BCD, -, -, A
手順2
BC(2..n)D, -, C(1), A
ABC(2..n)D, -, C(1), -
ABC(2..n)D, -, -, C(1)
BC(2..n)D, -, -, AC(1)
手順2
BC(3..n)D, -, C(2), AC(1)
ABC(3..n)D, -, C(2), C(1)
省21
457: 2019/12/28(土)03:34 ID:HeaGj5a1(3/3) AAS
B(3..n), -, -, AB(1..2)CD
・・・・・
同様にしてB(k) を移動する。(k=1..n)
・・・・・・
B(n), -, -, AB(1..n-1)CD
-, -, B(n), AB(1..n-1)CD
A, -, B(n), B(1..n-1)CD
手順3’
A, -, -, BCD
-, -, -, ABCD
省16
458: 2019/12/28(土)12:49 ID:eBmyBfXD(1) AAS
いつまでハノイのメモ帳続けるんだよw
459: 2019/12/28(土)16:57 ID:hZH7LPev(1) AAS
>>453
本気でやるには、"もらう"へ作り変える必要もあり、辛い
4つ程度なら、4倍回して出しちゃうだろう。
(四重ループで汚すぎるのでソースは非公開)
4と6の結果のみ載せておこう、あっているかも微妙。
合計: 2020 使用個数: 20 複数制限: 4-->
15100329420197868
[2, 2, 2, 2, 3, 3, 3, 3, 5, 5, 5, 5, 7, 7, 7, 7, 11, 11, 17, 1913]
[89, 89, 89, 97, 97, 97, 101, 101, 101, 101, 103, 103, 103, 103, 107, 107, 107, 107, 109, 109]
省6
460: 2019/12/28(土)19:46 ID:mH66EenF(1/4) AAS
>>426の1)はRで短く書ける(先頭・末尾行は正味の実行時間計測用)。
外部リンク:ideone.com
Rでは整数は32ビットまでなので、浮動小数点型(double型)で計算しているが、
double型の有効桁数は15桁なので、小数部を非表示にすれば、答である13桁の
整数は正しく表示される。
64ビット整数を扱うbit64というパッケージも一応あるが、それを使うと
正味の実行時間が4.3倍もかかってしまう。
外部リンク:ideone.com
461: 2019/12/28(土)21:25 ID:4BOt7DVD(1/2) AAS
>>453
>>447を使って書いた
外部リンク:ideone.com
メモリの使用を抑えたのも書いたけど遅くなった
462(4): 2019/12/28(土)22:48 ID:AtehPr/g(1/2) AAS
お題
最小値のあるインデックスから離れるほど数字が大きくなる数列があります
増加量はランダムです
その数列の中から効率よく最小値を探してください
入力: 115, 109, 107, 101, 92, 85, 76, 66, 65, 62, 53, 49, 40, 38, 35, 25, 23, 17, 9, 2, 0, 5, 8, 10, 11, 20, 30, 37, 42, 47
出力: 0
入力: 110, 104, 96, 93, 84, 83, 87, 93, 98, 103, 113, 120, 121, 128, 133, 134, 142, 152, 159, 169, 171, 174, 183, 186, 196, 203, 210, 212, 221, 224
出力: 83
入力: 138, 135, 127, 124, 122, 112, 103, 98, 92, 87, 77, 73, 71, 63, 59, 51, 41, 36, 45, 54, 63, 71, 81, 88, 90, 98, 105, 112, 114, 119
出力: 36
463(2): 2019/12/28(土)23:28 ID:mH66EenF(2/4) AAS
>>462
二分探索で答えてもらいたいんだろ。
外部リンク:ideone.com
464: 2019/12/28(土)23:34 ID:AtehPr/g(2/2) AAS
>>463
私が用意してた答えは二分探索ではありませんでしたが二分探索でできるんですねすごいです
465: 2019/12/28(土)23:38 ID:mH66EenF(3/4) AAS
>>463 訂正。signが抜けていた。
外部リンク:ideone.com
466(1): 2019/12/28(土)23:42 ID:mH66EenF(4/4) AAS
再度訂正。1行目が消えていた。
外部リンク:ideone.com
467: 2019/12/28(土)23:45 ID:4BOt7DVD(2/2) AAS
最初に思いつくのが二分探索だからそれより速い方法があるんだろうなと思った
468(2): 2019/12/29(日)00:04 ID:Jtzyjysr(1/4) AAS
外部リンク:ideone.com
469(1): 2019/12/29(日)00:15 ID:Jtzyjysr(2/4) AAS
外部リンク:ideone.com
470: 2019/12/29(日)00:41 ID:wJ/DeyFk(1/2) AAS
>>466 最小値が複数ある場合の条件分けが抜けていた。
外部リンク:ideone.com
Rのbinsearch関数は値の返し方に癖があって、条件分けを見落としやすいな。
471: 2019/12/29(日)02:13 ID:2ZGuf6bc(1/3) AAS
>>462
Java 三分探索で2/3に範囲を狭めてく
外部リンク:paiza.io
1/2に減らせる二分探索には敵わない
傾きを二分探索するって発想はなかったわー
472: 2019/12/29(日)02:17 ID:2ZGuf6bc(2/3) AAS
>>468
実装の効率はパないすね、効率はそういう意味でもありましたホントです
473: 2019/12/29(日)09:24 ID:Y3W4ZjXN(1/2) AAS
いやいや
ただのリニア検索より遅いのはあり得ん
474(1): 2019/12/29(日)19:39 ID:Jtzyjysr(3/4) AAS
でも出てる中で一番速いけど。
475(2): 2019/12/29(日)21:33 ID:wJ/DeyFk(2/2) AAS
>>474
そりゃ、例の数列では要素数が少なくてアルゴリズムの差が出にくいからだろ。
「効率よく」とわざわざ書いてある問題なんだから、もっと大きなデータを与えた
場合も想定して答えるのが普通。
例えば、100万から1までの連番の後に2から50万までの連番が続く数列を与えれば
アルゴリズム間の違いは歴然。
Rで二分探索、min関数、sort関数で求めたときの1回あたり平均実行時間を計測すると、
0.132, 2.08, 55.2ミリ秒で桁が違う (PCでは二分探索はもう少し速かった)。
計算量オーダーがO(log n), O(n), O(n log n)だから当たり前だが。
外部リンク:ideone.com
省4
476: 2019/12/29(日)21:37 ID:Jtzyjysr(4/4) AAS
>>475
>>469の場合だとどんな感じ?
477: 2019/12/29(日)21:41 ID:2ZGuf6bc(3/3) AAS
なんかすまんなみんな、ワイのせいで・・・ワイのせいで・・・ワイは悪くない
478: 2019/12/29(日)22:06 ID:Y3W4ZjXN(2/2) AAS
>>462くらい乱数に法則があれば2分検索より速いアルゴリズムを作れる
例としてはイマイチ
479: 2019/12/29(日)22:38 ID:Byl7yBSZ(1) AAS
このスレだけマジで何言ってんのか理解できない
やっぱまずいよなあ、数学勉強し直さなきゃなあ
480: 2019/12/29(日)22:43 ID:KptD7+e9(1) AAS
>>426
1)数百万規模でありそう。
481: 2019/12/30(月)08:49 ID:1DW7Hzfm(1/2) AAS
>>475
最適化されたCとC++のSTLならCのほうが分があるということ?
482: 2019/12/30(月)09:13 ID:W9rqQHA3(1) AAS
突き詰めた機械語にコンバートされるCと
汎用性のSTL
どちらに分があるのか
483: 2019/12/30(月)11:48 ID:1DW7Hzfm(2/2) AAS
戦争になりそうだが、俺は膝にassertを受けちまってな
皆の力にはなれない、すまない
484(1): 2019/12/30(月)13:23 ID:I3iMR+1Y(1) AAS
Rのsortは基数ソート使ってるらしいからその差かもしれない
c++のもこのデータの場合stable_sortに変えると3倍くらい速くなった
485: 2019/12/30(月)15:32 ID:fFRqMrLq(1/13) AAS
いいっすねー、新しいお題用意してるからちょっとまってて
486(4): 2019/12/30(月)15:44 ID:fFRqMrLq(2/13) AAS
お題
四角形の縦の長さの数列と
四角形の横の長さの数列と
四角形の面積が与えられます
縦の長さと横の長さを組み合わせて
与えられた面積と一致する四角形をいくつ
作ることができるか求めてください
入力: 41, 9, 25, 92, 48, 15, 69, 61, 85, 22, 82, 79, 7, 34, 86, 29, 36, 77, 16, 79, 57, 8, 9, 58, 86, 0, 24, 83, 63, 46
入力: 12, 79, 11, 65, 9, 33, 44, 54, 30, 43, 76, 23, 24, 86, 15, 35, 21, 97, 57, 96, 6, 3, 59, 51, 29, 58, 93, 94, 49, 8
入力: 195?
487: 2019/12/30(月)15:45 ID:fFRqMrLq(3/13) AAS
195の後ろの文字化けは無視してください
195と書きたかったのです
488: 2019/12/30(月)15:47 ID:fFRqMrLq(4/13) AAS
入力の数列の長さが数万になってもちょっぱやで計算できるとなお良いです
489(1): 2019/12/30(月)16:18 ID:pgNmBWor(1) AAS
四角形の縦の長さの定義は?
まさか四角形=長方形じゃないでしょ
490: 2019/12/30(月)16:21 ID:fFRqMrLq(5/13) AAS
>>489
ではそのまさかということで
四角形とは長方形のことです!
491: 2019/12/30(月)16:26 ID:fFRqMrLq(6/13) AAS
問題を書いたときは長方形以外の四角形がこの世に存在するとは思いもよらなかったので四角形と書いたのです
492(2): 2019/12/30(月)18:39 ID:JZjS6BbQ(1/8) AAS
オーダーは n log n
問題には
数列に同じ値が複数あった場合に1個とするのか別カウントするのかという曖昧性がある
493: 2019/12/30(月)18:41 ID:fFRqMrLq(7/13) AAS
>>492
同じ値は別カウントで良いです
494: 2019/12/30(月)18:54 ID:JZjS6BbQ(2/8) AAS
数列が整数限定
数列の数が大きい
面積が小さい
なら
素因数分解っていうアプローチもあるのかな?
495(2): 2019/12/30(月)19:25 ID:fFRqMrLq(8/13) AAS
>>486
同じ値を別カウントにするとベラボーに難しいですね
同じ値は1個とカウントして良いです
496(3): 2019/12/30(月)19:25 ID:2F+fuXCx(1/3) AAS
>>486
数万程度なら、Rで何の工夫もなしに素直に書いても瞬時に求められるな。
外部リンク:ideone.com
497: 2019/12/30(月)19:28 ID:fFRqMrLq(9/13) AAS
>>496
マジですか・・・すごいです
上下前次1-新書関写板覧索設栞歴
あと 505 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.488s*