X



競技プログラミング総合スレ 64
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ラクッペペ MM7f-osoq)
垢版 |
2022/10/02(日) 17:43:58.66ID:FqAfPtIrM
↑2行になるようにする

競技プログラミング、オンラインジャッジ、プログラミングコンテストやCTFに関する雑談スレ
次スレは>>950

AtCoder https://atcoder.jp/
yukicoder https://yukicoder.me/
Codeforces https://codeforces.com/
CodeChef https://codechef.com/
Project Euler https://projecteuler.net/
CLIST https://clist.by/
AtCoder Problems https://kenkoooo.com/atcoder/
AtCoder Clans https://kato-hiro.github.io/AtCoderClans/

※前スレ
競技プログラミング総合スレ 63
https://mevius.5ch.net/test/read.cgi/tech/1627477128
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0004デフォルトの名無しさん (ワッチョイ 632d-zMP3)
垢版 |
2022/10/02(日) 18:53:41.67ID:lvUEyWJj0
フレームワーク使っていい競技?
0006デフォルトの名無しさん (ワッチョイ 632d-zMP3)
垢版 |
2022/10/02(日) 21:00:40.58ID:lvUEyWJj0
そうじゃない
そこはフレームワークなんて使うわけないだろ馬鹿
とか罵るところだろ
0012デフォルトの名無しさん (アウアウウー Sa27-smph)
垢版 |
2022/10/06(木) 04:14:49.38ID:9NOfMkbNa
ライブラリとフレームワークの違いもよくわからんしな
0014デフォルトの名無しさん (ラクッペペ MM7f-osoq)
垢版 |
2022/10/06(木) 13:07:07.83ID:fbef5HqPM
この深層強化学習で行列積アルゴリズムを改善したというnature論文かなり注目されているな
chokudaiもRTしてたし
NNの重み埋め込んで使えば競プロでもウハウハじゃね?って思ったけど、10%とか20%の改善で競プロで劇的に役立つほどの改善じゃなさそう
とはいえ、深層学習とかも中身は結構行列演算だし、人類に相当貢献するアルゴっぽい
https://www.nature.com/articles/s41586-022-05172-4
0016デフォルトの名無しさん (ワッチョイ ff55-vqPj)
垢版 |
2022/10/07(金) 08:03:59.07ID:+3SOT7p60
ある工事完了に必要な作業1〜6について以下の制約がある。
作業2は作業1が終わるまで開始できない。
作業3は作業1が終わるまで開始できない。
作業4は作業2と3が終わるまで開始できない。
作業5は作業3が終わるまで開始できない。
作業6は作業4と5が終わるまで開始できない。
この工事はT日以内で終えねばならず、各作業iはt_i日かかる。
しかし臨時作業員を雇うことにより作業日数を減らすことができるが、
s_i日よりは少なくはできない。また、1日減らすのにm_i万円かかる。
費用を最小にする作業計画をたてよ。

minimize: 農{i=1}^{6} m_i × (t_i - x_i)
subject to:
x_1 + x_2 + x_4 + x_6 ≦ T
x_1 + x_3 + x_4 + x_6 ≦ T
x_1 + x_3 + x_5 + x_6 ≦ T
s_i ≦ x_i ≦ t_i (i = 1, …, 6)

模範解答では各作業の開始日y_iという変数も考えています。
上の解答は間違っていますか?
0018デフォルトの名無しさん (ワッチョイ ff55-vqPj)
垢版 |
2022/10/07(金) 10:02:47.32ID:+3SOT7p60
>>17
ありがとうございました。念のため本に書いてある模範解答を以下に書きます。
minimize: 農{i=1}^{6} m_i × (t_i - x_i)
subject to:
y_1 = 0
y_1 + x_1 ≦ y_2
y_1 + x_1 ≦ y_3
y_2 + x_2 ≦ y_4
y_3 + x_3 ≦ y_4
y_3 + x_3 ≦ y_5
y_4 + x_4 ≦ y_6
y_5 + x_5 ≦ y_6
y_6 + x_6 ≦ T
s_i ≦ x_i ≦ t_i (i = 1, …, 6)
0019デフォルトの名無しさん (アウアウウー Sa27-iAIf)
垢版 |
2022/10/07(金) 18:03:45.88ID:JQxQ1kA+a
https://youtu.be/7DbdPKWhrpY

令和のコペルニクス さんによって固定されています
令和のコペルニクス
2 年前(編集済み)
六角アミダって有りそうで無かったので自作しました。xyz空間座標も「6方向」ということで。

ソースコードはこちら。

https://drive.google.com/file/d/1hsFT2F4AMgUv1JHqy0si_7Yj7q7TyHnR/view?usp=sharing

室町時代のアミダくじは円形であること、ベンゼン環の六角構造、赤青緑の三色ダイオードを考えてみた。




令和のコペルニクス
1 年前
地動説をとる人には、地動説をとるのを妨げない。天動説をとる人には、天動説をとるのを妨げない。学説上において人びとの所見を妨げず、かつ実生活においても、「令和のコペルニクス」は決して客観的に善悪正誤など認定しない。
0025デフォルトの名無しさん (ワッチョイ 4a55-Phf8)
垢版 |
2022/10/08(土) 17:34:43.15ID:YhGfCLqP0
atcoder.jp/contests/tessoku-book/tasks/tessoku_book_m

この問題の解答として以下のコードを作ったのですが、なぜか小さい入力データに対して
実行時間制限オーバーになってしまいます。大きい入力データに対してはすべてパスしています。

ideone.com/CUJvso
0026デフォルトの名無しさん (ワッチョイ 4a55-Phf8)
垢版 |
2022/10/08(土) 17:41:04.41ID:YhGfCLqP0
バグを見つけました。
0027デフォルトの名無しさん (ワッチョイ 3abd-ehet)
垢版 |
2022/10/08(土) 22:47:32.78ID:faeVVmtQ0
恥ずかしいんだが、競プロ初心者の俺のD問題のコードを見てほしい
bfsを使って解いたんだが、なぜかTLEが出てしまった。
このコードの何がいけないのか有識者教えていただけないだろうか。
次のレスでコードのせます。
0028デフォルトの名無しさん (ワッチョイ 3abd-ehet)
垢版 |
2022/10/08(土) 22:49:39.36ID:faeVVmtQ0
import numpy as np
import math

n, m = list(map(int, input().split(" ")))
mapp = np.zeros((n, n)) - 1
mapp[0, 0] = 0

p = []
for i in range(n + 1):
temp = m - i ** 2
if temp < 0:
continue
t = math.sqrt(temp)
if t - int(t) <= 1e-7:
p.append((int(i), round(t)))
temp = []
for a, b in p:
temp.append((-a, -b))
temp.append((a, -b))
temp.append((-a, b))
directions = list(set(temp + p))


def is_inside(pp, qq):
return 0 <= pp <= n - 1 and 0 <= qq <= n - 1


que = [(0, 0)]
0029デフォルトの名無しさん (ワッチョイ 3abd-ehet)
垢版 |
2022/10/08(土) 22:49:55.06ID:faeVVmtQ0
while True:
if len(que) == 0:
break
y, x = que.pop(0)
num = mapp[y, x] + 1
for s, t in directions:
yy, xx = y + s, x + t
if not is_inside(yy, xx):
continue
if mapp[yy, xx] != -1:
continue
mapp[yy, xx] = num
que.append((yy, xx))
mapp = mapp.astype(int).astype(str).tolist()

for i in mapp:
print(" ".join(i))
0033デフォルトの名無しさん (ワッチョイ 83bd-Wzy+)
垢版 |
2022/10/08(土) 23:04:25.31ID:Ez6YqFCV0
>>28
あんま競プロでPython使わないんだけど、まずDってO(N^3)とかO(N^2√M)だから遅い言語だとちょっと定数倍遅いだけで2secで通らなくなるような問題だと思う
そしてそのコードは(x,y)で状態持ってたりしてて定数倍微妙そうなコードだなと思ったな
numpy使ってるってことはPyPyじゃなくてCPythonでしょ?それだとアルゴリズム自体は間違ってなくてもTLEで落ちるんじゃないかな
0034デフォルトの名無しさん (ワッチョイ 83bd-Wzy+)
垢版 |
2022/10/08(土) 23:09:23.51ID:Ez6YqFCV0
que.pop(0)ってやってるけど、PythonのlistにFIFOとしての機能あったっけ?
listの内部実装次第だけど、そこで計算量オーダー増えててもおかしくないような
queueを使いたいときにはdequeとか使ってる人が多い印象
0036デフォルトの名無しさん (ワッチョイ 83bd-Wzy+)
垢版 |
2022/10/08(土) 23:14:27.40ID:Ez6YqFCV0
手元のPythonで見てみたけど、listでpop(0)すると配列の長さ分計算時間がかかってそうだから、その書き方だとO(N^4)とかO(N^5)になってるんじゃないかな
ぶっちゃけ別にBFSである必要はないからque.pop(0)→que.pop()でだいぶ早くなるんじゃない?
確かstackとしては使えたはず
0037デフォルトの名無しさん (アウアウウー Sa2f-Rtu3)
垢版 |
2022/10/08(土) 23:14:43.63ID:c7g2g7wLa
深さ優先でも上手く行くんかな
0038デフォルトの名無しさん (ワッチョイ 83bd-Wzy+)
垢版 |
2022/10/08(土) 23:18:18.42ID:Ez6YqFCV0
>>35
出る難易度帯からすると青ぐらいの印象
ただ概念的にはそんなに難しくないかなあ(SA-ISというアルゴリズム自体は頭いいけど)
知識的な敷居の高さから後ろに置かれることが多いけど、水色ぐらいでも練習すればACLを活用しつつ普通に解けるレベルの問題も多いと思う
0040デフォルトの名無しさん (ワッチョイ 83bd-Wzy+)
垢版 |
2022/10/08(土) 23:21:14.83ID:Ez6YqFCV0
あ、すまん、ボケてたわ
最短距離問題からBFSである必要はあるわ、忘れてくれ
dequeをcollectionsからimportして、使えばいいと思うよ
あとnumpyを使わずに実装しなおしてPyPyで提出しなおせば
0047デフォルトの名無しさん (ワッチョイ 3abd-ehet)
垢版 |
2022/10/09(日) 13:10:10.78ID:x4NHwN4o0
昨日コードかいたものだけど
サンクス、numpyをやめてqueをdequeにして
python3.8⇒pypyにしたらTLEにならず通った

しかし、python3.8にしたら通らなかった

なんだかな。。言語によっては通らないみたいなのやめた方がいいんじゃないだろうか。。
0049デフォルトの名無しさん (アウアウウー Sa2f-Rtu3)
垢版 |
2022/10/09(日) 13:22:07.84ID:JvcDFF+ra
計算量の見積りは大事な要素だから遅い言語使う方が悪いということになってる
実際Pythonはpypy あるしRubyはCrystalあるからどうにもならないって人はそんなにいないはず
aclがc++にしかない方が不公平に感じる
0051デフォルトの名無しさん (ワッチョイ 83bd-Wzy+)
垢版 |
2022/10/09(日) 13:53:56.11ID:Uv2+Kk010
CPythonだとC++の10〜30倍ぐらいは遅いから、なんでもかんでも確実にCPythonで通るようにtime limit設定するとC++で非想定の悪い解がバンバン通るようになってゲームが成立しなくなる
一方PyPyは確かJavaと同等かちょっと遅い程度だからそれでほぼ通せるはず
言語ごとにtime limit変えるみたいな話もなくはないけど、ちょっと詳しい人なら遅い言語にC++とかのコンパイル済バイナリ埋め込んで通すみたいなことができてしまうし、現行のルールはなるべくしてなったものだと思うよ
0052デフォルトの名無しさん (ワッチョイ 83bd-Wzy+)
垢版 |
2022/10/09(日) 15:09:36.52ID:Uv2+Kk010
そういえばAGCって年6回開催が目標だったけど、今年まだ2回しかやってないのか
一昔前はARC級が全然なくて黄橙がつらい言ってたけど、こっちは順調なペース
WTFもないし、上級者向けコンテストが枯渇してる
0053デフォルトの名無しさん (アウアウウー Sa2f-Rtu3)
垢版 |
2022/10/09(日) 15:27:54.23ID:YI179TSWa
りんご時代より大幅に減ってるんだな
Admin無能すぎでは
0055デフォルトの名無しさん (ワッチョイ ffda-tP+p)
垢版 |
2022/10/09(日) 18:01:54.02ID:eUfo/LYX0
>>47
ジャンプの問題かな?
自分も Python & deque で最初は TLE した。
問題の対象性を利用して (i, j) が確定した時に
合わせて (j, i) の値もセットして訪問済みに
したら Python でも通るようになった。
一方で E は PyPy でないと通らなかったわ。
0057デフォルトの名無しさん (ワッチョイ 3abd-ZDf4)
垢版 |
2022/10/09(日) 20:49:39.37ID:bbTbmui80
もうすぐレギュラーだ
A問題だけでもなんとかして解きたい
0058デフォルトの名無しさん (ワッチョイ 3abd-ZDf4)
垢版 |
2022/10/09(日) 20:50:21.13ID:bbTbmui80
競プロ初めて2ヶ月、A問題さえ解ければ茶色になれる
0065デフォルトの名無しさん (ワッチョイ 83bd-iygP)
垢版 |
2022/10/09(日) 23:55:49.59ID:Uv2+Kk010
AGC格に持っていけるかどうかは後ろの問題がどのぐらい面白くて難しいかだと思うけど、自分は判定できない
Fがとにかく難しかったみたいだけど
前の方の問題はAGCで出してもいい感じだと思う
0067デフォルトの名無しさん (ワッチョイ 83bd-iygP)
垢版 |
2022/10/10(月) 00:07:00.96ID:7uvMEE6l0
>>60
寒色がレートを伸ばす効果でいえばABCの練習の方がずっとコスパいいと思うから、当分ABCでいいと思う
ただ、暖色になった後も見据えてるんだったら、ARCもちょっとずつ考えてみるのも悪くないかな
あとARCの練習に関しては解説ACはしない方がいいと個人的には思っている
0068デフォルトの名無しさん (ワッチョイ 86e2-iGwm)
垢版 |
2022/10/10(月) 00:11:53.24ID:KmBNdxXe0
>>63
ワテは0完ボチボチ出すようになってからARC引退した
0072デフォルトの名無しさん (ワッチョイ 4a55-Phf8)
垢版 |
2022/10/10(月) 14:38:04.12ID:5s2b/FHQ0
>>42
ありがとうございます。
2分探索なんて簡単だなどと思っていても、実際実装しろと言われると何度実装したことがあっても
時間がかかってしまいます。

実装に時間がかからない方法って重要ですね。
0073デフォルトの名無しさん (スフッ Sdea-HsIT)
垢版 |
2022/10/10(月) 18:08:43.67ID:yebCwecVd
>>67
ありがとうございます!
Atcoder自体、数学パズルが好きでやってて暖色後のことも見据えてるのでちょくちょく解いてみます
解説ACはしない方が良いとは自分で充分熟考して、どうしようもなくなったときだけ解説を見るってことです?
0074デフォルトの名無しさん (ワッチョイ 83bd-iygP)
垢版 |
2022/10/10(月) 22:00:30.58ID:7uvMEE6l0
>>73
強い人見てると解けなくても数か月間寝かせて後から解き直すみたいなのを繰り返しているから、そもそも解ける前に解説を読まない方がベターなのかも?
知識不足で解けない場合はかなりのタイムロスになっちゃうけど、知識面はABCの問題をたくさん解くことで十分身につくと思う
0078デフォルトの名無しさん (アウアウウー Sa2f-rqSc)
垢版 |
2022/10/11(火) 00:31:31.56ID:bhgQugsYa
二分探索はめぐる式もいいけど、やっぱり解がありうる範囲の幅に着目するのがいいんじゃないかと思う
これはめぐる式ほど何も考えずできるやり方じゃないけど、少なくともバグらない
幅に着目して、毎回幅が必ず半分以下になるようにすれば、無限ループとかも起こらないし
すべての要素が完全に意識内にあるようにできるから、デバッグも簡単
0082デフォルトの名無しさん (ワッチョイ 4a55-Phf8)
垢版 |
2022/10/11(火) 12:11:38.75ID:PLpmTy2t0
米田の『プログラミングコンテストの鉄則』を読んでいますが、コードが分かりやすくて、バグもないですね。
さすがレッドコーダーですね。
0085デフォルトの名無しさん (ワッチョイ 4a55-Phf8)
垢版 |
2022/10/11(火) 13:34:55.25ID:PLpmTy2t0
正しいアイディアが得られてから、素早く実装するにはどうすればいいのでしょうか?
いつも仮に正しいアイディアが得られたとしても、実装でもたついてしまいます。
0086デフォルトの名無しさん (アウアウウー Sa2f-Rtu3)
垢版 |
2022/10/11(火) 13:37:37.48ID:ZP0AWOS7a
まず3000acまで精進しましょう
自然と実装が早くなります
0087デフォルトの名無しさん (ワッチョイ 4a55-Phf8)
垢版 |
2022/10/11(火) 13:41:56.59ID:PLpmTy2t0
>>86
ありがとうございます。気が遠くなりますが、3000までいかなくても、次第に速くはなっていくと考えてがんばります。
0088デフォルトの名無しさん (ワッチョイ 83bd-iygP)
垢版 |
2022/10/11(火) 14:51:38.87ID:YbYCnUmy0
>>79
これを見るとE安定(1500pt安定)の人なら水中位は固い
いろいろ噛み合えば青タッチもできるレベルだと思うね
このグラフは他の色についても分析できるから便利
https://twitter.com/kiri8128/status/1561356750355570689
https://twitter.com/kiri8128/status/1576256376518897665
https://twitter.com/kiri8128/status/1566074062786658307
https://twitter.com/5chan_nel (5ch newer account)
0089デフォルトの名無しさん (ワッチョイ ca56-H/N1)
垢版 |
2022/10/11(火) 16:46:50.56ID:1kSE0RtX0
AC数800台で黄コーダーになった中学生
0091デフォルトの名無しさん (アウアウウー Sa2f-rqSc)
垢版 |
2022/10/11(火) 23:17:45.46ID:OYUWyscQa
実装を速くするコツは2つあると考えてる。
1 思考の手間を省く。
 競プロでは毎回全く違うプログラムってことはあんまりなくて、DFSとか1次元DPとか累積和とか毎回書き方が同じ部品というのは結構ある。
 こういう部品に対しては、事前に書き方を決めておくことで、その部分はもう考えずに書けるようになる。
2 隅々まで理解する。
 複雑な問題を解くとき、なんとなくわかった状態で実装を始めている人は多いと思う。気持ちはわかるし、簡単な問題ならそれでいいと思う。
 でも、実装と深い思考は両立するのが難しい。複雑な思考が必要な問題では、先に最後まで(何行目に何を書くかまで)考えておいた方が速い。
0094デフォルトの名無しさん (ワッチョイ 83bd-iygP)
垢版 |
2022/10/13(木) 16:44:42.51ID:jfaR96gz0
>>93
ありがとう
予想するに、logit([AよりBの方が難しく感じる確率]) = β_0 + β_1 [problems上のdifficultyの差] + β_2 [出題時点の差(単位は年)]としてβ_2/β_1 = 50だった的な感じかな
こういう回帰係数って素朴に割り算していいのかわからないけど
[problems上のdifficultyの差]と[出題時点の差]って独立っぽいから多重共線性とかはなさそう
0095デフォルトの名無しさん (ワッチョイ 4a55-rqSc)
垢版 |
2022/10/13(木) 17:29:37.68ID:S5qtayIE0
>>90-91
ついつい、あせってアイディアが整理されていなくても書き始めてしまうんですよね。。。

『離散凸解析と最適化アルゴリズム』という本の第1章を読んだのですが、このような
理論的な本は競技プログラミングに役に立つことがありますか?

問題を解くばかりでは飛躍的な上達はなかなか難しいのではないかという気もします。
0096デフォルトの名無しさん (ワッチョイ 86e2-iGwm)
垢版 |
2022/10/13(木) 17:54:44.70ID:GP86fHNY0
>>95
atcoderは大人のsapixなので役に立たないです
0100デフォルトの名無しさん (ワッチョイ 86e2-iGwm)
垢版 |
2022/10/13(木) 21:28:38.71ID:GP86fHNY0
ABCで黄色以上でた問題は存在しないも同然じゃからのぉ
実務的には調べながら1問に3時間くらいかけて解ければ十分みたいな感じかと
0101デフォルトの名無しさん (ワッチョイ 83bd-iygP)
垢版 |
2022/10/13(木) 21:29:29.75ID:jfaR96gz0
その離散凸解析の本は理論系の中でもかなり競プロに役立つ方の本な気がする
けど、知識をつけて飛躍的に伸びるのはAtCoderの中でもABCで、そのABCで出てくるぐらいの知識なら特別な勉強をしなくても、問題解いて蟻本あたり読んでいれば身につくものという印象(Exは除く)
だから理論系の勉強がコスパがよいかというと微妙
ただ、競プロ抜きにしてもアルゴリズムの勉強は面白い部分があると思うし、そもそも競プロとは独立して価値があるものなので勉強して損はないんじゃないかなと思う
0103デフォルトの名無しさん (ワッチョイ a7a4-iGwm)
垢版 |
2022/10/13(木) 22:31:16.40ID:H7IUAqHb0
というのはまあ冗談で、少なくともレート2000以下とかならそんなのいらん
鉄則本や蟻本に習熟して、AtCoderを練習しまくて遭遇した知らなかったアルゴリズムを覚えればいいだけ
ヘタに大学生向けの参考書なんか読むより大学受験レベルの整数問題を解く練習したほうがいいくらい
0108デフォルトの名無しさん (ワッチョイ efe2-TyQf)
垢版 |
2022/10/15(土) 22:43:48.07ID:ipApAIVt0
こういう重いのやるなら1問だけやれよ、ビギナーで1問70行とか無いわ
0109デフォルトの名無しさん (ワッチョイ 0f10-2yG4)
垢版 |
2022/10/15(土) 22:46:38.09ID:dFjmbf/S0
AtCoder を始めて10回ぐらい経ちましたが, A問題しか解けない状態が続いてます.
A:簡単
B:いくつかWA→解決できずに終了
といった感じです.
原因はコードを見てWAになる理由(そうなるケース)を見つけられないことだと思うのですが,
みなさんどのように対処されているのでしょうか
0110デフォルトの名無しさん (ワッチョイ 5ba4-TyQf)
垢版 |
2022/10/15(土) 22:52:32.49ID:fGPCLDVo0
Aしか解けない人の気持ちはわからん
なんか計算量とか前提知識が足りてなさすぎる気がするから、AtCodeer本とか読んでみたら?
競プロは問題に書かれたことをシミュレーションするコードを書くコンテストじゃなくて、たくさんのアルゴリズム知識を駆使したうえでの数学のコンテストだよ
0112デフォルトの名無しさん (ワッチョイ 2bbd-spri)
垢版 |
2022/10/15(土) 23:12:41.37ID:+G+SyjUt0
B問題に関しては計算量解析もそんなに問われないから、計算量の知識というよりはプログラミングコードを書くところとか、問題文の状況を考える基礎力とかかなあ
あんまいいアドバイスできないけど練習あるのみだよ、ABC-Bをたくさんやるのがいいと思う
競プロはよく役に立たないと言われているけど、ABCのC問題までは本当にプログラミングの基礎力と関わってそうだから、できないのなら練習して損はないと思うよ
0113デフォルトの名無しさん (ササクッテロラ Sp0f-NYti)
垢版 |
2022/10/15(土) 23:14:09.46ID:EzFe164Rp
永続データ構造ってどの色くらいから常識になる?というかどこからそういう知識を身につけてるんだ
あの問題文を読んで木構造を作るぞって気持ちに初見でなれるものなのかな
0117デフォルトの名無しさん (ワッチョイ 2bbd-spri)
垢版 |
2022/10/15(土) 23:18:43.87ID:+G+SyjUt0
>>113
ネットで競プロっぽいこと検索してたら結構出てくる
はまやんさんのブログとかにまとまってるやつオススメ
あれは別に木構造作ろうというよりは、

ページにAのデータ全部コピーするとオーバーヘッドやばい

ポインタアクセスで処理したい

どうせ末尾しか毎回アクセスしないし、linked listっぽくすればよさそう

というか、データ自体は時系列テーブル上に保存しとけばよくないか?

みたいな感じで思いつくのが自然な気がする
0120デフォルトの名無しさん (ワッチョイ 2bbd-spri)
垢版 |
2022/10/15(土) 23:24:39.60ID:+G+SyjUt0
>>118
そんなにすぐじゃないイメージ、今のところ2〜3週間遅れぐらい?
https://www.dropbox.com/sh/nx3tnilzqz7df8a/AAAYlTq2tiEHl5hsESw6-yfLa?dl=0
そもそも作業者のAtCoder運営自体がテストケースを直接見てデバッグってスタイルをそんなに好きじゃなさそうだから作業モチベも低そう
ここに貼ってくれれば誰かしらが見て指摘したりはできると思うけど
0124デフォルトの名無しさん (アウアウウー Sacf-Txcf)
垢版 |
2022/10/15(土) 23:59:48.98ID:FT6wiWdXa
A問題で初歩的なループや再帰を解禁したの
整数パズルみたいなのよりええな
0125デフォルトの名無しさん (ラクッペペ MM7f-oetI)
垢版 |
2022/10/16(日) 00:19:15.15ID:zH+PZ1kvM
競プロっぽい問題得意じゃない人からしたら整数パズルより愚直ループのが解きやすいし、整数パズルできるやつからしたらその辺の文法覚えるのは簡単だろうしで、最近のAの難易度からするとループ縛りは実情にあってなかった
0126デフォルトの名無しさん (ワッチョイ 9f55-ZPbQ)
垢版 |
2022/10/16(日) 07:01:44.35ID:ayOmFxSE0
『競技プログラミングの鉄則』という本の問題A19のナップザック問題について質問です。
アマゾンのレビューでも指摘がありますが、dp[i][j]に品物1からiまでの中から合計重量が
ぴったりjになるという条件を満たすナップザックへの入れ方のうち合計価値が最大になる
ときの合計価値を入れています。

普通に考えると、dp[i][j]には部分問題の答えを入れると思います。
つまり、品物1からiの中から合計重量がj以下になるという条件を満たすナップザックへの
入れ方のうち合計価値が最大になるときの合計価値を入れるのが普通だと思います。

これはなぜですか?
0127デフォルトの名無しさん (ラクッペペ MM7f-oetI)
垢版 |
2022/10/16(日) 11:47:32.10ID:zH+PZ1kvM
・計算量的にも実装の複雑さもほとんど変わらない(最後に全体maxをとるかどうかは微々たる差)
・重量合計がちょうどwになるときの最大価値の方が、重量合計がw以下になるときの最大価値よりも得られる情報が多い
・形式的冪級数で定式化したとき少しだけきれい

鉄則本持っとらんけど、このあたりの理由か?
二番目が多分重要で、競プロではちょうどwで書く人の方が多い気がするぞ
0128デフォルトの名無しさん (ワッチョイ 2bb1-jHCJ)
垢版 |
2022/10/16(日) 14:38:27.53ID:ixOB/E6y0
昨日初めてコンテストに挑戦しましたが、2問しか正解できませんでした
C++だけじゃなく、もう1個文字列操作用の言語を使った方が良いような気がしました
Perlが理想なのですが、VSCODEでのデバッグ環境の構築方法がわかりません
0129デフォルトの名無しさん (アウアウウー Sacf-Txcf)
垢版 |
2022/10/16(日) 14:58:25.40ID:WDOvRoY2a
Perlは遅すぎてc問題でも解けない可能性あるからやめた方がいい
スクリプト言語ならPythonが無難
0130デフォルトの名無しさん (ワッチョイ 8b01-+w9B)
垢版 |
2022/10/16(日) 15:13:58.77ID:yPZsgFrS0
Rust使えば?
0133デフォルトの名無しさん (ワッチョイ 8b01-+w9B)
垢版 |
2022/10/16(日) 18:24:36.77ID:jxKItKj70
プロは道具にこだわる。
0139デフォルトの名無しさん (ワッチョイ dfbd-EMpt)
垢版 |
2022/10/17(月) 10:18:40.91ID:4D5lyUw10
https://i.imgur.com/Q53m3ww.jpg
無事茶色達成
しかし将棋ウォーズで言えば1級レベルなのか
もっと頑張ります
0140デフォルトの名無しさん (ラクッペペ MM7f-oetI)
垢版 |
2022/10/17(月) 12:15:14.38ID:5a5BYNfKM
コドフォdiv. 1も不足してるしAGCも不足してるな
div. 2とかABCレベルが枯渇することはないだろうが、今後高レベル帯では問題を作りやすい実装ゲー、高度知識ゲーが増えていくんだろうか
あるいは新しい分野が開拓されるか
0144デフォルトの名無しさん (ワッチョイ 8bf0-e5nY)
垢版 |
2022/10/18(火) 19:26:06.06ID:KPHiYJNj0
デジタル庁が開発エンジニアを募集 任期1年の非常勤 
https://hayabusa9.5ch.net/test/read.cgi/news/1666079673/
年収最大1千数百万円 賞与なし

必須スキル
・Webアプリケーション開発経験5年以上
・TypeScript、React、Vue、GitHub等を用いた開発経験2年以上
・DevOpsの設計・開発、アジャイル開発経験2年以上
・C#によるWebバックエンドアプリケーション(MVC、Web API、Entity Framework)開発経験3年以上
・パブリッククラウドサービス(Azure、AWS、GCPなど)でホストするシステムの開発経験2年以上

・データベース設計経験2年以上
・Web・モバイル技術、及び大規模サービスの運用に対する確かな理解と技術を深く掘り下げる能力
・現在においても、開発・実装業務に直接携わっていること。
・複雑で不慣れな実装、及び開発言語にも素早く適応できる柔軟性
・英語で書かれた技術文書を理解できる語学力
0145デフォルトの名無しさん (ワッチョイ 9f10-Vt39)
垢版 |
2022/10/18(火) 19:50:00.45ID:XVoXwl440
場合の数を998244353で割った余りを求める能力だけで雇って欲しい
0148デフォルトの名無しさん (ワッチョイ 9f55-ZPbQ)
垢版 |
2022/10/19(水) 08:54:58.33ID:T4QuduyG0
エドモンズの花アルゴリズムを使わないと解けない問題はありますか?
0150デフォルトの名無しさん (ワッチョイ 9f55-ZPbQ)
垢版 |
2022/10/19(水) 14:50:58.95ID:T4QuduyG0
>>149
ありがとうございました。
0155デフォルトの名無しさん (ワッチョイ fbbd-EMpt)
垢版 |
2022/10/20(木) 03:26:34.39ID:7dYF2Oin0
離散フーリエ変換を知った時は感動した
競プロ界隈じゃ常識かもしれないけど
0157デフォルトの名無しさん (ワッチョイ 2bbd-KWxC)
垢版 |
2022/10/20(木) 11:12:32.08ID:zuiO6CV10
FFTは今でこそ半ば常識だけど、蟻本が本の中で扱わないぐらいのトピックだった
形式的べき級数の流行やACLで普及したのかな?
フーリエ変換なんて周波数成分とってきたり微分方程式解いたりするときに使うものという印象だったから、計算量削減に活用できるのにはびっくり
0158デフォルトの名無しさん (ワッチョイ 9f55-ZPbQ)
垢版 |
2022/10/20(木) 14:07:16.92ID:mYhqP5aW0
形式的べき級数が流行しているというのは本当ですか?
どうしてですか?
母関数とかと関係がありますか?
0159デフォルトの名無しさん (ワッチョイ 9f55-ZPbQ)
垢版 |
2022/10/20(木) 14:15:25.40ID:mYhqP5aW0
FFTについてはCLRSの第3版に分かりやすく書いてあって、読んだのですが、すごいなと思いました。
フーリエ変換とか難しい解析学の話を全く知らなくても大丈夫ですよね。
0162デフォルトの名無しさん (ワッチョイ 9f55-ZPbQ)
垢版 |
2022/10/20(木) 17:57:29.17ID:mYhqP5aW0
Nyaan回って何ですか?
0163デフォルトの名無しさん (ワッチョイ 9f55-ZPbQ)
垢版 |
2022/10/20(木) 19:01:43.10ID:mYhqP5aW0
形式的べき級数は、Liuの『組合せ数学入門I』とかKnuthの『Concrete Mathematics』に
書いてありますね。

競技プログラミングにどのように役立つのか分かりませんが。
0164デフォルトの名無しさん (ワッチョイ 2bbd-KWxC)
垢版 |
2022/10/20(木) 19:34:32.29ID:zuiO6CV10
Nyaan回というのはNyaanさんという人がwriterをやっているコンテストのこと
特にABCでは、Exに形式的べき級数の発展的な技法(ラグランジュの反転公式の利用とか)が解法に来ることがあり、解説も丁寧に書かれていてかなり勉強になる
0165デフォルトの名無しさん (ワッチョイ 9f55-ZPbQ)
垢版 |
2022/10/20(木) 19:43:13.83ID:mYhqP5aW0
>>164
ありがとうございました。
0166デフォルトの名無しさん (ワッチョイ 2bbd-KWxC)
垢版 |
2022/10/20(木) 19:48:25.32ID:zuiO6CV10
形式的べき級数の利用法として典型的なのは、数え上げのDP遷移を畳み込みとみなして高速化することかな
FFT使ってO(N^2)をO(NlogN)にする
maspyさんのブログの「数え上げとの対応付け」の記事とかが分かりやすい
同じ形の遷移をQ回するときとかは、周波数領域表現の方で各点を累乗すればいいとか、DP遷移の「逆変換」を考えたいときがあって、それは逆関数に対応するから機械的な代数学的操作で導出できるようになったり、恩恵はいろいろ
0167デフォルトの名無しさん (ワッチョイ 2bbd-KWxC)
垢版 |
2022/10/20(木) 19:56:58.93ID:zuiO6CV10
解析学の知識がなきゃ理解できないという部分はなさそう
形式的べき級数の微分とかオイラーの等式とか、基礎的な知識は要求されるけど、高校数学ちゃんとやってきた人なら適宜ググればどうにかなるレベル
0168デフォルトの名無しさん (ワッチョイ 9f55-ZPbQ)
垢版 |
2022/10/20(木) 20:35:33.61ID:mYhqP5aW0
形式的べき級数を使って解く問題ですが、なんかアルゴリズムの問題としては特殊すぎませんか?

例えば、プログラミングコンテストに、整数論的なアルゴリズムを使って解くような問題が出たとしたら、
場違いな感じがしますが、それと同じような感じがします。
0169デフォルトの名無しさん (ワッチョイ 2bbd-KWxC)
垢版 |
2022/10/20(木) 21:33:57.26ID:zuiO6CV10
情報科学の基礎や離散数学的なアルゴリズムが守備範囲のコンテストだから特殊とは思わないかな
学究的な観点ではそれらも十分アルゴリズムのメジャー領域かと
0171デフォルトの名無しさん (テテンテンテン MM7f-GGBy)
垢版 |
2022/10/21(金) 09:58:25.01ID:6qeEzBTbM
mod 素数数え上げのときモジュラ逆数を O(logP) で求めるのは整数論的アルゴリズム?だけどそれも場違いだと思ってる?
0172デフォルトの名無しさん (ワッチョイ fb12-avZt)
垢版 |
2022/10/21(金) 11:01:06.99ID:enxIjOIS0
競プロ全体でもそこそこ整数論を使うけど、AtCoderだと特に出題傾向が高いよな
実装が重い有名アルゴリズムは出さないって公式で宣言してるから、結果的に考察偏重にしようと数学ばっかりになってる
0175デフォルトの名無しさん (ワッチョイ 46e2-Bggx)
垢版 |
2022/10/22(土) 01:21:13.01ID:Qnr0PFxg0
FFTってライブラリに突っ込むだけじゃないの・・・・
0178デフォルトの名無しさん (テテンテンテン MMe6-cTJi)
垢版 |
2022/10/22(土) 13:48:45.77ID:34g95U3QM
>>176
vector<bool>を使いたいという話?
0183デフォルトの名無しさん (ワッチョイ 46e2-Bggx)
垢版 |
2022/10/22(土) 18:22:25.60ID:Qnr0PFxg0
キーエンスは営業が強くて徹底的に収益をプランニングするB2Bボッタクリ企業のイメージが・・・
0185デフォルトの名無しさん (ワッチョイ 39ff-TJeW)
垢版 |
2022/10/22(土) 20:09:16.07ID:f6PGG6170
競プロってなんか意味あるの?
よく知らんけど実務とも学問とも違うだろあれ
0186デフォルトの名無しさん (ワッチョイ 69bd-9Hqw)
垢版 |
2022/10/22(土) 20:45:00.56ID:FiPnTjXt0
パズルゲームだね
こういうパズルゲームを好きな人が競プロをきっかけに興味関心の幅を広げて情報科学の勉強につながることもあるから、役に立たないとは思わないけど、別に好きじゃないんならやらなくてもいいと思う
0188デフォルトの名無しさん (ワッチョイ 0255-w3aL)
垢版 |
2022/10/22(土) 22:40:12.40ID:pp2KI4rl0
Dですが、部分和問題だと気づいたのですが、実装まで行きませんでした。
0189デフォルトの名無しさん (ササクッテロラ Sp11-fN0a)
垢版 |
2022/10/22(土) 23:06:40.62ID:Br1QGzyRp
F、G辺りに置かれてても問題文の主旨自体は簡潔なことって結構あるんだね
普段Eくらいまでしか解けないからそこら辺の問題は歯が立たないのかなって思い込んでスルーしがちだったけど軽いアプローチくらいなら思いつくしもう少し上のレベルの問題も取り組んでいくべきか
0192デフォルトの名無しさん (ワッチョイ 46e2-Bggx)
垢版 |
2022/10/22(土) 23:26:14.59ID:Qnr0PFxg0
Fとか脳死で最適化ライブラリにぶっこんで解けるような問題出してほしい
0195デフォルトの名無しさん (テテンテンテン MMe6-cTJi)
垢版 |
2022/10/22(土) 23:35:42.74ID:hxCCLg5SM
>>191
ABCは1問30分ぐらい考えて考察生えなきゃもう解説見ていいレベルだと思うわ
ABCクラスの問題ならAtCoderでもCodeForcesでも無限にコンテストで新問が提供されるし、考える練習はコンテストでやればいい
0196デフォルトの名無しさん (ワッチョイ 0279-SGBs)
垢版 |
2022/10/22(土) 23:53:18.15ID:zoqkqO3P0
D問題とけんかった・・・
XとYの行ける位置を全部セットに詰め込んで計算してたけど
4つほど不正解が出る

あと関係なさそうだけど
2 2 1
2 1
が入力としたら答えはNoだよね
同じ位置じゃ線分にならんし、90度も無理あるし
0197デフォルトの名無しさん (ワッチョイ 69bd-9Hqw)
垢版 |
2022/10/23(日) 00:22:16.64ID:Gmi6Wv/G0
Ex解説見てるけどNimberなんてものがあるのか、知らなかった
というか辞書順比較とロリハって勝手に相性が悪いと思ってたけど、LCP求めて一文字分比較するだけだからロリハでも普通に高速でできるね
0198デフォルトの名無しさん (ワッチョイ 69bd-9Hqw)
垢版 |
2022/10/23(日) 00:25:48.30ID:Gmi6Wv/G0
>>196
Noだね
0200デフォルトの名無しさん (ワッチョイ c6ba-duL+)
垢版 |
2022/10/23(日) 00:37:05.68ID:oA17rX6c0
>>196
どういうこと?Yesでは?
0203196 (ワッチョイ 0279-SGBs)
垢版 |
2022/10/23(日) 00:45:48.66ID:8R49AjqV0
あ、、、自分のミスだった
最後のA[N]でジャスト(x,y)にたどり着くのか
勝手に最後だけ距離が未定義だと思ってた
すみませんでした!
0204デフォルトの名無しさん (ワッチョイ 69bd-9Hqw)
垢版 |
2022/10/23(日) 00:51:07.79ID:Gmi6Wv/G0
>>201
こどふぉで役に立つかも精神で・・・
そういえば、ARCはDEとかで割と高度典型が出現することあるけど、AGC後半ってどのぐらい知識が役に立つ問題出るんだろうね
AGCはアドホックの祭典という評判だけはずっと聞いているが、後ろの問題は手をつけていないので実態は知らない
0205デフォルトの名無しさん (ワッチョイ 2101-i+dE)
垢版 |
2022/10/23(日) 14:02:32.86ID:kyxqVSK90
昨日のC問題が全然わからん😭
0207デフォルトの名無しさん (アウアウウー Sa45-wDBs)
垢版 |
2022/10/23(日) 15:00:21.51ID:viPCyFgla
日本語が難しかったね
ナンバリングの法則がちょっとイメージしにくかったかも
0210デフォルトの名無しさん (ブーイモ MM25-I5GH)
垢版 |
2022/10/23(日) 19:45:09.56ID:lki1jgwYM
昨日のABCのD問題、
なんかランタイムエラーが5つ程。
C++でもPythonでも同じ。

配列のサイズを入力した数字の合計(プラスα)から計算した値から定数値に変えたらAC

添え字のチェックして処理を飛ばしてもWAにはならずRE

どんなエラーになったか確認したくて
テストケース欲しい…
けど、社長はテストケース公開消極派なのね。
自分でテストケース作るのは難しい
0211デフォルトの名無しさん (ワッチョイ 46e2-Bggx)
垢版 |
2022/10/23(日) 19:51:50.60ID:aKzhqT3I0
今だってABCの範囲だと意味があるのは5問目程度までだろうから、せめてサンプル強くして難易度下げるべき
0214デフォルトの名無しさん (ワッチョイ 81bd-Bq7Q)
垢版 |
2022/10/24(月) 02:06:39.23ID:oE/P7WOq0
茶色になったばっかの新人コーダーだが、
土曜日C問題まで解いたけど若干レート下がった
時間一杯までやってしまったこともあるけど、C問題まで解いただけじゃ緑までいけないのか
0215デフォルトの名無しさん (アウアウウー Sa45-wDBs)
垢版 |
2022/10/24(月) 02:22:46.20ID:Dpd/V0qca
だいたいcで茶、dで緑、eで水やね
0221デフォルトの名無しさん (ワッチョイ 626f-VsiE)
垢版 |
2022/10/24(月) 15:56:17.71ID:aGKh4Pz90
avl木を題材にした問題は見たことあるけど仕組みの理解が必要かは疑問
せいぜい問題設定の理解が楽になる程度じゃないかなあ

その場でちゃちゃっと機能付け足せるくらい手に馴染んだ平衡二分木持ってると得するっつーか楽できる場面は結構ある
0222デフォルトの名無しさん (ワッチョイ e94f-Y/ct)
垢版 |
2022/10/24(月) 16:57:52.37ID:CSVgb4N80
確か赤黒木は、木の再構成を頻繁に行わないように、
木の高さが2倍になった時に初めて、再構成するのでしょ?

確か、Linux のタスク管理などに使われているのか?

この2倍と言うのが、解く問題に影響するかどうか
0223デフォルトの名無しさん (ワッチョイ c5a4-Bggx)
垢版 |
2022/10/24(月) 17:17:37.19ID:y+IDNEc90
「ちゃんと理解してないと」って言われても理解の深さにも差があるからなあ・・・
https://judge.yosupo.jp/problem/dynamic_sequence_range_affine_range_sum
こういう問題をサラっと解けるならおれはそこそこ理解してると思っちゃうけど、ライブラリ叩くだけだからこんなんじゃ理解したなんて言えない、と判断する人もいると思う

フェニック木やセグ木以外で、平衡二分木の実装まで要求してしまうとそこそこ重いし、深い理解を要求する問題にはあんまり遭遇しなそう
逆にいうと、セグ木でだいたいなんとかなってしまうともいえる
0224デフォルトの名無しさん (ワッチョイ 69bd-9Hqw)
垢版 |
2022/10/24(月) 18:27:07.50ID:k0ED32Xq0
平衡二分探索木のmerge-split系の操作が難しめの問題で役に立つみたいなのたまに見るけど、その辺り詳しくない
まあ、自作平衡二分探索木があると、std::setにない機能を追加できたり何かと捗るので自分で実装するのも悪くないと思うよ
順位取得とかね
座圧セグ木でもできることが多いけど
0229デフォルトの名無しさん (ワッチョイ 0255-w3aL)
垢版 |
2022/10/27(木) 16:34:41.72ID:dAuDGVLY0
ハードウェアとかコンパイラとか全然知らないのですが、

vector<vector<int>> dp(N + 1, vector<int>(N + 1, 0));

とか初期値を指定して初期化する場合、初期化の処理にΘ(N^2)回の計算量が必要になりますか?
0230デフォルトの名無しさん (アウアウウー Sa45-dV9P)
垢版 |
2022/10/27(木) 16:35:26.87ID:efUshkpEa
なる
0231デフォルトの名無しさん (ワッチョイ 0255-w3aL)
垢版 |
2022/10/27(木) 16:57:58.07ID:dAuDGVLY0
>>230
ありがとうございました。
0232デフォルトの名無しさん (ワッチョイ 0255-w3aL)
垢版 |
2022/10/27(木) 17:00:44.14ID:dAuDGVLY0
でも不思議です。
今まで
>>229
のようなコードを例えば、O(n * log(n))の計算量が求められる問題で使用してきましたが、
ちゃんとパスしてきたと思います。
>>229
のようなコードがあるとそれだけでO(n^2)以上の計算量が必要ですよね?
n^2の係数が極端に小さいんですか?

いずれにしても理論的にはO(n^2)以上ということになりますよね?
0233デフォルトの名無しさん (ワッチョイ c5a4-Z6PG)
垢版 |
2022/10/27(木) 17:36:43.76ID:RXobkv660
そう、O(n^2)だよ

当然だけど通るかどうかはNの値による
下のコードをN = 100000で、AtCoderのコードテストやってみたら2453msとかになったから、このサイズだとだいたいダメだろう

int main() {
int N = 100000;
vector<vector<int>> dp(N + 1, vector<int>(N + 1, 0));
cout << dp[0][0] << endl;
}
0235デフォルトの名無しさん (ワッチョイ 0255-w3aL)
垢版 |
2022/10/27(木) 17:39:59.24ID:dAuDGVLY0
>>233-234
ありがとうございました。
今度から意識して初期化するようにしてみます。
0236デフォルトの名無しさん (ワッチョイ 69bd-Y/ct)
垢版 |
2022/10/27(木) 17:44:47.51ID:9aVmm+3a0
vector上の数字を全部0にセットする処理はかなり定数倍軽そうだし、思ったよりも通りそうではある
もちろん無意味なオーバーヘッドを生んでるだけなのでやめた方がいいけど
0240デフォルトの名無しさん (ワッチョイ 0255-w3aL)
垢版 |
2022/10/28(金) 04:18:20.91ID:XEpm5NPR0
でもN^2のメモリが必要な問題もありますよね。
迷路の問題とか。
0249デフォルトの名無しさん (ワッチョイ 1355-FQW+)
垢版 |
2022/10/29(土) 12:58:54.16ID:mklHRG3O0
C++のpriority_queueについて質問です。

優先度付きキューに入っているある要素の優先度を変更する方法ってありますか?
0251デフォルトの名無しさん (ワッチョイ 1355-FQW+)
垢版 |
2022/10/29(土) 13:32:10.33ID:mklHRG3O0
>>250
自分で作るしかないということですか。
ありがとうございました。
0255デフォルトの名無しさん (アウアウウー Sa9d-gcVw)
垢版 |
2022/10/29(土) 16:17:47.20ID:cBW2XQMEa
N^2の計算ができるって、江戸時代からしたらものすごいことなんだけど人類はまだそれでも飽き足らないからすごいことだよね
0257デフォルトの名無しさん (ワッチョイ 1355-FQW+)
垢版 |
2022/10/29(土) 17:36:48.50ID:mklHRG3O0
>>252-254
ありがとうございました。

>>252
なるほど、それでも全く問題ないですね。
気持ち的には、ちょっと気持ちが悪いですが。
0258デフォルトの名無しさん (ワッチョイ 9112-kQRK)
垢版 |
2022/10/29(土) 20:07:47.15ID:81wL0y4v0
自作するとして、元の要素がどれか特定する部分が遅いんだよな
よくある実装だとunordered_map使うから定数倍が重い
acl::maxflowのadd_edgeのように、要素を追加したら後で優先度を変更する際の引換券を返すのが良いのか?
0259デフォルトの名無しさん (ワッチョイ b3bd-T+yX)
垢版 |
2022/10/29(土) 22:41:09.93ID:2S1iCoxk0
E問題。。。。
t-1回目にどのマスにいるかの確率(というか回数)を出して
t回目にどのマスにいるかを算出すればできるってことはわかってるのに時間が足りない。。

しかしこの考え方ってあってるのかな
dp的にやると100万×動けるマス10マスで1000万だからこのままやっても計算量的にアウトだったんだろうか
0260デフォルトの名無しさん (ワッチョイ 7be2-tAkO)
垢版 |
2022/10/29(土) 22:41:56.11ID:uHm3dTvI0
実装重いのをCに置くのはほんとやめて
0264デフォルトの名無しさん (ワッチョイ b3bd-T+yX)
垢版 |
2022/10/29(土) 22:47:59.86ID:2S1iCoxk0
>>262
公式見るとあっていたみたいだね。
ただ、低速な言語だと間に合わないで前計算が必要って書いてあったけド、このあたりまだ理解できていないので分数のmodについてちゃんと理解しておくようにする
0266デフォルトの名無しさん (ワッチョイ b3bd-T+yX)
垢版 |
2022/10/29(土) 22:50:45.78ID:2S1iCoxk0
でもE問題が射程範囲に入ったのはちょっと嬉しかった。
C問題がかなり苦戦して、どっち方向に直交ベクトルをかけるかっていう部分に関してかなり苦労してしまった。
結局2パターンについてべた書きしてしまった

D問題はメモ化再帰して一瞬だった。
C飛ばしてEに挑戦してればレーティング上がったのかな
0278デフォルトの名無しさん (ワッチョイ b3bd-T+yX)
垢版 |
2022/10/29(土) 23:08:20.93ID:2S1iCoxk0
from functools import lru_cache
pythonってメモ化再帰再帰が標準実装されてるんだ
知らなかった・・
どうやって制御してるんだって感じだが、やっぱり標準モジュール?ってすごいな
0281デフォルトの名無しさん (ワッチョイ 41a4-tAkO)
垢版 |
2022/10/29(土) 23:19:43.68ID:yV+y7EmI0
簡単にいうと、デコレータで内部的にdictを作って、引数と戻り値つっこんでるだけでしょ
dictより自分でlistを使ってメモ化したほうが高速だし、別にlru_cacheは覚えなくてもいい気がするな
0282デフォルトの名無しさん (ワッチョイ b3bd-T+yX)
垢版 |
2022/10/29(土) 23:25:38.82ID:2S1iCoxk0
標準実装部分って一度Cでコンパイルされてるから自前実装より速いと思っていたんだけどどうなんだろう。
あとdictってハッシュだから速いと思ってたんだけどlistの方が早いっていうことってあるの?
インデックスへのアクセスがn(1)だとしても再帰関数の場合はインデックスもばらばらだと思ったんだけど
0283デフォルトの名無しさん (ワッチョイ 7be2-tAkO)
垢版 |
2022/10/29(土) 23:30:42.87ID:uHm3dTvI0
mod逆元なんて意味不明な計算させんでも、誤差を認めた小数でええやん
0284デフォルトの名無しさん (ワッチョイ 69bd-8V2j)
垢版 |
2022/10/29(土) 23:30:58.93ID:n8+2LG4s0
Pythonの標準実装は、Cで高速化されて優秀なときと生Pythonで微妙な実装が施されていてひどいときの両方がある印象だね
PyPyに至っては最適化の仕方がよくわからないから実際に試すしかない
0286デフォルトの名無しさん (ワッチョイ 1901-mSDI)
垢版 |
2022/10/29(土) 23:36:54.42ID:DPwzGxhV0
Pythonを使ってた時は自前で書いた二分探索だと通らなくてそこを二分探索のライブラリに置き換えたら余裕を持って通ったことがあったからCによる高速化の恩恵は大きそう
0287デフォルトの名無しさん (ワッチョイ 69bd-8V2j)
垢版 |
2022/10/29(土) 23:42:41.35ID:n8+2LG4s0
>>283
ターンが進むごとに指数的に減衰していきそうな行動パターンまでちゃんと追跡できてるかを問いたいとすると、mod逆元の方がいいと思う
まあ、小数解答方式でそういうタイプの枝刈りで通せる人はそもそも今回の問題だと問題なく想定解にたどり着ける気がするけど
0293デフォルトの名無しさん (ワッチョイ b3bd-gcVw)
垢版 |
2022/10/30(日) 01:28:10.10ID:vMGX6/JC0
長さが同じっていうだけで判定すると菱形も拾ってしまうよね

直行条件って内積知らないと厳しいと思うけど、やっぱり数学の知識が必要なんだと思った
0294デフォルトの名無しさん (ワッチョイ 69bd-8V2j)
垢版 |
2022/10/30(日) 01:31:32.00ID:FuzvB50W0
>>290
部分和をちょうどxにするときに何かを最適化する問題って地味に取れる手立てが少なくて(今回のGみたいに例外的に連続緩和できるとかならともかく)、ABCだったらナップサックDPを出発点に考えても大体外れないと思う
0295デフォルトの名無しさん (ワッチョイ 69bd-8V2j)
垢版 |
2022/10/30(日) 01:35:18.53ID:FuzvB50W0
数学から離れて長かったり数学にあんま縁がない人だと、辺の長さが全部等しい四角形が正方形であることの必要十分条件だと勘違いするのはめちゃくちゃありそう
0297デフォルトの名無しさん (テテンテンテン MMeb-L0C9)
垢版 |
2022/10/30(日) 14:31:31.53ID:rp4qVfcRM
問題の枯渇で純粋なアドホック考察ゲー作るのが難しくなってきて破綻しつつあるから、アルゴの方はABCの延長線上みたいなゆるふわコンテンツがメインになり、AHCに賭けてるんじゃないかとか邪推してしまうな
0309デフォルトの名無しさん (ワッチョイ 9112-kQRK)
垢版 |
2022/10/31(月) 02:21:24.13ID:XwJ24qqi0
短期コンだと本当にちょっとした改善でスコア爆上がりすることが多すぎて辛い
なんで本番中は入力を虚空に放り投げてることに気付けなかったんだと後悔してる
0311デフォルトの名無しさん (ワッチョイ 69b1-y/dr)
垢版 |
2022/10/31(月) 12:31:58.77ID:qgwFPKRF0
問題に付いてるサンプルケースでは正解なのに、ソースコード提出すると他のテストケースで不正解となるんです

おそらくどこかでオーバーフローしていることが原因です

過去のコンテストのテストケースって全部どこかにアップロードされているんでしょうか?
0319デフォルトの名無しさん (ワッチョイ 1355-FQW+)
垢版 |
2022/10/31(月) 16:02:58.05ID:I3dWRJ7/0
(-m) % n がマイナスの余りになるという仕様になっているのはなぜですか?
((-m) % n) + n とするのが面倒です。
0320デフォルトの名無しさん (ワッチョイ 41a4-tAkO)
垢版 |
2022/10/31(月) 16:03:27.21ID:cNn+NHKm0
>>299,310,311 が同一人物だとしたら、そのレベルならあらゆるミスをしそうだし、原因はなんともかんとも
愚直で応えるコードを書いてもバグらせそうだし、他の人がACしたコードと比べてみるのがいいんじゃないか・・・
0324デフォルトの名無しさん (ワッチョイ 2bbd-gcVw)
垢版 |
2022/10/31(月) 18:15:49.14ID:hz0WOit40
競プロって意味ないって言われてるけどどうなんだろうね?俺は楽しいからやってるけど

確かにこのアルゴリズムを直接的に実務で使うことはあまりないかもしれないけど、バグの発見とかは競プロで鍛えると速くなる気はしてる
0327デフォルトの名無しさん (ワッチョイ 69bd-K3KU)
垢版 |
2022/10/31(月) 19:28:31.38ID:GYR048690
ABCのD問題までスムーズに解けたらあとは趣味程度に思った方がいいと思うよ
逆にD問題までスムーズに通せるようになることで、ある言語で手早くスクラッチする力や計算量を意識する力はかなり身につくと思う
0328デフォルトの名無しさん (ワッチョイ 69bd-K3KU)
垢版 |
2022/10/31(月) 19:36:01.13ID:GYR048690
あと、アルゴリズムに興味を持つきっかけになるかな
スタックがLIFOでキューがFIFOだとか基礎教養でやったとき、正直つまらない暗記対象としか思ってなかったけど、ちゃんと意味があって重要だということが分かった
SQLでB木使うとかも競プロやらなかったら意識しなかっただろうし
ハマる人とっては情報科学の入口として優秀じゃないかな、競プロと相性悪い人はストレートに勉強した方がいいんだろうけど
0329デフォルトの名無しさん (ワッチョイ 41a4-tAkO)
垢版 |
2022/10/31(月) 19:48:50.64ID:cNn+NHKm0
>>328
おれは先に業務してから競プロやってるけど、RDBでB木使うとかは最初からめっちゃ意識してたぞ
インデックス効かないクエリを実行すると遅すぎてすぐ障害になるからな
そんでRDBだけでは実装が難しすぎる機能とかあったりするから、他のデータ構造も学ぶようになった

競プロはほとんどのひとはすぐ挫折して継続できないみたいだし、どっちのほうが良いかと言うと難しい
0330デフォルトの名無しさん (ワッチョイ 69bd-K3KU)
垢版 |
2022/10/31(月) 20:01:16.37ID:GYR048690
>>329
そこは人や環境によるところかな
自分はデータ分析職やってるけど、エンジニア職ではないせいか、ちゃんと理解してる人、意識してる人が少ない
役に立つのに、低レイヤーに触れる文化がないから、自発的にアルゴ勉強する発想が出にくい
あと競プロに相性いいのは、情報系に向いてる人というよりも、元々中受算数か高校数学、高校物理みたいなのがめちゃくちゃ好きとか数オリ経験者みたいなタイプだろうね
0332デフォルトの名無しさん (ワッチョイ 69bd-K3KU)
垢版 |
2022/10/31(月) 20:32:10.84ID:GYR048690
純粋な離散数学や暗号理論も守備範囲にいれたいとすると、数論みたいな普通のエンジニアリングやデータ解析の範疇じゃ役立てるのが難しい内容も扱いうる
今の競プロの源流のICPCや情オリも、そもそもアカデミックな動機付けでやってるものだし
0333デフォルトの名無しさん (ワッチョイ 1379-87TA)
垢版 |
2022/10/31(月) 20:42:28.12ID:Z4/NCeJU0
競プロ初心者でコーダーの俺
こっちの業務の役には立たないと思ってる
情報処理の資格を無駄に取得して給料アップ程度

競プロ面では、素直に実装してTLE連発
こんなガチガチに実装したら仕様変更に耐えられないだろうな
と思いながらAC取りにいく
0336デフォルトの名無しさん (テテンテンテン MMeb-ofdD)
垢版 |
2022/10/31(月) 22:05:33.73ID:sD6lQxmdM
>>326
俺も同じような感じだわ。

脳トレで思ったんだけど、脳の老化防止に競技プログラミング!!
とか言って高齢者にプログラム教えたら面白いかもな。
大半はダメポだろうけど、何百人に一人は才能開花しそう。
0340デフォルトの名無しさん (ワッチョイ 7be2-tAkO)
垢版 |
2022/11/01(火) 02:22:23.21ID:SlcyotAo0
面接落ちまくりなので、緑で役に立つ宣伝文句教えてほしいわ(´・ω…:.;::..
0341デフォルトの名無しさん (ワッチョイ 1310-ZlL6)
垢版 |
2022/11/01(火) 07:51:58.39ID:3hzoyxz90
青でWeb系の就活したけど、競プロだけのアピールはあまり刺さらなかった印象
「自分のレートは上位3%です!」って言っても、はいはいすごいねーって感じだった

Webアプリを作って、見せるようにしたら多少ウケるようになった
いきなりゴリゴリのWebアプリを作るのは難しいから、例えば、競プロでよくあるグラフの入力をペーストすると、
巡回セールスマン問題を解いて、経路を描画してくれるみたいな、そういうアプリを作って、面接で見せれば、
「愚直にやるとO(N!)なんですけど、動的計画法を使うとO(2^N*N)で解けて嬉しいんですよ〜」
みたいなアルゴリズムの能力も見せれて、良いと思うよ
0342デフォルトの名無しさん (ワッチョイ 694f-K3KU)
垢版 |
2022/11/01(火) 09:07:49.45ID:CMvcSOEo0
未経験からウェブ系へ転職するなら、Ruby on Rails 一択

YouTube で有名な雑食系エンジニア・KENTA や、RUNTEQ の動画を見ればよい。
KENTAのRailsサロンとか、くろかわこうへいのAWS サロンも良い

理系や競技プログラミングの知識などは、いらない。
文系で、英語・算数だけで十分

Linux, Docker, AWS、データベースなどは必須。
AWS Solution Architect も欲しい
0344デフォルトの名無しさん (テテンテンテン MMeb-L0C9)
垢版 |
2022/11/01(火) 11:21:20.61ID:DmCKRmd0M
別に水色ぐらいあれば、世間が競プロerに期待する人材の要件をほぼ満たす
jobsって転がってる求人もそのレベルだし
青以上になると考察力や競プロ過学習の高低の世界なわけで、そこの色の差で評価を変える理由がほとんどの企業では見当たらない
よほどの高知能者をポテンシャル採用したいときぐらいか
青でアピールするのは地雷とか純粋培養こじらせ過ぎだな
0345デフォルトの名無しさん (テテンテンテン MMeb-L0C9)
垢版 |
2022/11/01(火) 11:29:28.35ID:DmCKRmd0M
世間の大半は競プロerに「FizzBuzzやそれに毛が生えたようなコーディングぐらいならすぐできて、自発的にアルゴリズムの勉強ゲームをやる勤勉な人たち」程度の期待感しか持ってないし、暖色↑で始めてアピールできるようなものだと思ってるようだと、温度差で死ぬ
0347デフォルトの名無しさん (ブーイモ MMdd-ww+g)
垢版 |
2022/11/01(火) 11:35:22.17ID:YpP1+3gDM
- 競プロ、まあ一応水色ですけど他に専門分野/強みあります

- ガチで競技として取り組んでててICPCメダリストです

アピールするならどっちかのスタンスだと思ってて青で下のパターンで来るやつがいてヤバいという話ね
0350デフォルトの名無しさん (ブーイモ MMdd-ww+g)
垢版 |
2022/11/01(火) 11:47:34.29ID:qfAT5wFeM
>>349
でもそういう人特にjobs経由だと相当数いて競プロの評判落としてる気がするのよね

企業からしたらjobsは求人サイトの1つでしかないのにレート条件満たしてたらいけるやろと勘違いしてる的な
0351デフォルトの名無しさん (ワッチョイ 69bd-hZr9)
垢版 |
2022/11/01(火) 12:03:03.17ID:1IoQMX7D0
体育会系の活動は客観的な成果がそんなでもなくてもメインウェポンになる印象だから、青ぐらいでも頑張り度としては認めてほしい気持ちもあるけどねえ
もちろん、体育会系の活動を通じてわかる協調性や重労働耐性みたいなものを競プロじゃ測れないから、同様に評価されるわけはないんだけど
0353デフォルトの名無しさん (ワッチョイ 69bd-hZr9)
垢版 |
2022/11/01(火) 12:12:20.53ID:1IoQMX7D0
>>341
競プロって見た目地味だし何がすごいのか横から見てよくわからないのが課題だから、可視化するのは効きそう
N^3をNlogNまで落とした←ほーん、で?
N=1e5だと6億倍の高速化←お?
目に見えるようにするとこれだけ速くなっている←おお!
ぐらいの印象の差が出るんじゃないかと思う
0354デフォルトの名無しさん (ワッチョイ 69bd-hZr9)
垢版 |
2022/11/01(火) 12:20:49.62ID:1IoQMX7D0
>>352
業界に競プロerがそんなにいなければ、青ぐらいでも強いと言っていいレベルだと思うかなあ
そういうところではむしろ競プロ自体がどうすごいのか伝えるのが課題になってくる
競プロerがたくさんいる企業だとすると、その人たちのレベル感次第では黄色も「頑張ってる」ぐらいの表現で留めた方がいいかもね
赤はさすがに無条件で強いと言っていい気がするけど
0356デフォルトの名無しさん (テテンテンテン MMeb-L0C9)
垢版 |
2022/11/01(火) 12:34:48.15ID:DmCKRmd0M
青黄が社会で自分は強いとプレゼンしてもそんなに問題は起こらないだろうけど、大会でわかりやすいタイトルを取れるほどでもないから(中高生ならJOIでちょっと積めるが)、別のところでのアピールもあった方が無難
0357デフォルトの名無しさん (ワッチョイ 41a4-wl1a)
垢版 |
2022/11/01(火) 12:35:28.03ID:8LMgLlix0
競プロってあくまで経験の1つとしてしか見ないよ
仕事でソロの競プロやらせるわけじゃないし…
コミュニケーションに問題ないか、とか開発経験の有無だとか、他にもいろいろチェック項目あるし競プロ以外のことも聞かなきゃならんのよ
競プロしかなさそうだな、ってひとには競技プロの取り組み方とかを掘り下げて聞くけど
0359デフォルトの名無しさん (ワッチョイ 9112-kQRK)
垢版 |
2022/11/01(火) 14:45:32.58ID:9QgByuPW0
黄色だけどそんな就活の役には立たんかったぞ
それよりは他に普通の開発経験を持ってて、その中で競プロをどう活かしたかの方がウケは良い
が、大抵はチーム開発経験を聞いてきて、そっちが弱いと露骨に微妙な表情するんだよな……あと最終面接で落ちる
0365デフォルトの名無しさん (ワッチョイ 69bd-hZr9)
垢版 |
2022/11/02(水) 18:02:49.90ID:9x8rFS7h0
https://github.com/yosupo06/library-checker-problems/issues/895
ガウス整数環での素因数分解
A+Biとしたときに|A|,|B| <= 10^9でも十分高速でできる
数論の知識が豊富なら再発明は困難でもなさそう、ABC-Gぐらいの問題っぽい?ARC/AGCタイプではない
結構知識を使うので考える過程でいろいろ勉強になった
0367デフォルトの名無しさん (ワッチョイ 1355-FQW+)
垢版 |
2022/11/02(水) 19:34:08.80ID:eB36Kp3k0
コルテの本は競技プログラミングに役に立ちますか?
0369デフォルトの名無しさん (ワッチョイ 1355-FQW+)
垢版 |
2022/11/02(水) 19:39:08.78ID:eB36Kp3k0
>>368
ありがとうございます。
高度な本で競技プログラミングにも役に立つというのはいいですね。
高度な内容を理解するのが主目的で、おまけとして競技プログラミングも強くなる。
0374デフォルトの名無しさん (ワッチョイ 31bd-0L+7)
垢版 |
2022/11/05(土) 00:18:45.61ID:lGny4UBo0
ARCも昔(3年程度前)の問題やってるとdiff一色分ぐらい今より高く評価されている印象だから、昔の問題解くんなら自分のレート+400〜+800ぐらいの問題解いてるとちょうどいい思考練習になると思う
0375デフォルトの名無しさん (ワッチョイ 31bd-0L+7)
垢版 |
2022/11/05(土) 00:41:37.71ID:lGny4UBo0
開発って点だと自動judgeツールとか、ライブラリ整備とかは一応スキルアップにつながりそう
さらに突き詰めて、競プロ用にトランスパイラ作ってる人もたまに見る気がする
けど、こういう作業って決定的な競プロの実力向上につながるわけではないので、なかなか微妙な立ち位置だよね
まあ開発方面の技術につながる楽しみ方も一応あるということで
0380デフォルトの名無しさん (ワッチョイ 76e2-JAaf)
垢版 |
2022/11/05(土) 22:42:19.35ID:QlP7W/960
いや、一個前の順列とか知らんし、Dはiが2,3番めだと思ってた。酷いww
下手したら2完だたwww
検索しても全然出てこないからB問題まで解ければ十分だの
0384デフォルトの名無しさん (ワッチョイ 1202-Cw2/)
垢版 |
2022/11/05(土) 22:47:11.30ID:rFNV3e/H0
クソインフレおもんねーわ
結局ガキの頃から脳みそ鍛えてないとcとかで時間とけて終わるな
ワイのレートは頭打ちや
0385デフォルトの名無しさん (ワッチョイ a901-GdL1)
垢版 |
2022/11/05(土) 22:49:20.41ID:UBpIFpTC0
F問題方針合ってたのにBITも有理数用のライブラリも作ってないせいで実装間に合わなかったけどやっぱり作っておくべきか
三連続で有理数ライブラリ使える問題出題されてるし
0387デフォルトの名無しさん (スプッッ Sd69-vwSk)
垢版 |
2022/11/05(土) 22:57:52.72ID:nR4yZihTd
この難易度4完で3000位以下って…
しんどいよぉ
0393デフォルトの名無しさん (ワッチョイ a901-GdL1)
垢版 |
2022/11/05(土) 23:24:55.55ID:UBpIFpTC0
>>386
その二つ自体はそうなんだけど、分母はK^2になるから分子の情報だけ持てば良いっていうのを見落としてたせいで有理数の四則演算をしようとして実装が大変なことになったんだよね
初心者ですまん
0394デフォルトの名無しさん (ワッチョイ 31bd-0L+7)
垢版 |
2022/11/05(土) 23:24:57.65ID:lGny4UBo0
chokudaiはC#やkotlinも推してるからC++一強がいいとは思ってなさそうだけど、現実的にC++前提の作問が多くなるのはしょうがないところがある
他言語使いも、競プロerがC++でよくやる処理と同等のことができるようなものを用意しておいた方がいいかなあ
逆に、遠慮なく多倍長整数がバンバン出てくるような制約にしていいと思ってるんだけどね
0400デフォルトの名無しさん (ワッチョイ 31bd-0L+7)
垢版 |
2022/11/05(土) 23:46:13.55ID:lGny4UBo0
Cは普通にむずいと思うよ
進学校で高校数学まともに勉強してた層の中の上の方がコミュニティ作ってるから基準歪んでるけど
競技と言いながらあまり相対評価に囚われちゃいけないタイプの娯楽
0405デフォルトの名無しさん (ワッチョイ 76e2-JAaf)
垢版 |
2022/11/06(日) 00:38:46.41ID:b6AZTKz70
>>395
30歳すぎたら酒飲んだりなんか食べながら気軽にやるのが吉
0407デフォルトの名無しさん (ワッチョイ a901-Cw2/)
垢版 |
2022/11/06(日) 01:54:17.29ID:TnuCg6gk0
競プロ力ってWebとかシステムってよりかはゲームとかの方向な気がする。
0409デフォルトの名無しさん (ワッチョイ d27c-1t7Q)
垢版 |
2022/11/06(日) 10:53:13.10ID:v6GSz7hT0
DFSでもいいと思うよ
人によるけど、BFSの方が実装しやすいだけ
Pythonなど一部の言語だと、再設定しない限りDFSでは再帰上限でREになるから解説に書きづらいというのもある
0410デフォルトの名無しさん (ワッチョイ 6da4-JAaf)
垢版 |
2022/11/06(日) 11:08:07.55ID:PIbDNXM80
本当にどっちでもいいんだけど、おれもこういうときはなんとなくBFSで実装するようになってきたな
そもそも競プロの探索問題だと、DFSよりBFSを利用することのほうが多くて、BFSが手癖になってきたかな
0412デフォルトの名無しさん (ワッチョイ 31bd-0L+7)
垢版 |
2022/11/06(日) 14:27:17.74ID:DHDxR9FJ0
ARC/AGCが補充されないけど、来月にはさすがにAGC生やすのかな?
赤が競えないサイトってAtCoderの思想的にまずいような
ARCは今年それなりに多かったし、息切れされても困るから無理に生やさなくてもいいと思うけど(そもそも今どういう内部状況か全然知らんけど)
0413デフォルトの名無しさん (ワッチョイ 31bd-0L+7)
垢版 |
2022/11/06(日) 14:32:15.66ID:DHDxR9FJ0
DFSのが書きやすいと思うけど、確かに再帰って言語によって計算コストに癖があるからDFSよりもBFSの方が安定なのかもね
10^6のサイズのグリッドで2次元配列使うから、遅い言語だとやや定数倍気をつけないといけないタイプ
0414デフォルトの名無しさん (ワッチョイ 1255-Cw2/)
垢版 |
2022/11/06(日) 14:45:26.72ID:4JagSJ3R0
BFSはキューを使います。
DFSは再帰を使わない場合スタックを使います。
再帰を使わないとして、BFSのほうがDFSよりも実装が簡単ですか?
0428デフォルトの名無しさん (テテンテンテン MM96-ggMb)
垢版 |
2022/11/09(水) 15:23:24.57ID:HotMmDzmM
それは同じ傾向の典型問題がずっと出題され続けている場合に適用できる話だが、ARCは傾向が変わっているわけでそうとも言えない
ARCの昔の問題は今となっては典型となっているので、簡単に感じる、という話なら分かるんだが、どうも昔の方がアドホックで難しいと考えている人がいるのが自分の感覚だと意外だったってことが元々言いたかったことだな
0429デフォルトの名無しさん (テテンテンテン MM96-ggMb)
垢版 |
2022/11/09(水) 15:48:45.39ID:HotMmDzmM
まあ、到達難易度に関しては、最大限リソースを競プロにぶち込んだときにその色になれる確率の話か、その色になるための平均的なコストの話か、でも全然違うから、その辺り明示しないと無限にややこしくなりそうだな
典型性が高まってるんであれば、前者の難易度は下がってるかもな
0432デフォルトの名無しさん (ワッチョイ 31bd-nsye)
垢版 |
2022/11/10(木) 21:57:56.30ID:YS4V/v0d0
ARCが昔と今でアドホックさに変化があるという印象はなくて、これもどちらかというとwriter依存な気がする
少し前のmaroon回はアドホックだったようなイメージ
0437デフォルトの名無しさん (スッップ Sdb2-5krx)
垢版 |
2022/11/11(金) 11:36:15.83ID:Y094P/2Zd
CTFを勉強しようと以前アカウント作ったんだけど、難し過ぎてpicoCTFからやってたら最初のサイトを忘れた。。。
アカウント申請にもサイトを解析しないとダメでそれはクリアしてアカウント作ったんだけどどこか分かる?
0439デフォルトの名無しさん (ブーイモ MM96-aTO8)
垢版 |
2022/11/11(金) 19:04:07.17ID:LHlViBaLM
数列AのLCMを10^9+7のmodで取る問題が有るんだけど、
答えが合わないのは
gcd(l, Ai)とgcd(l % 10^9+7, Ai)は異なるということ?

って自分で確かめれるか。
家帰ったら確かめよ
0445デフォルトの名無しさん (テテンテンテン MM96-Cw2/)
垢版 |
2022/11/11(金) 22:49:25.23ID:hYHvcPylM
ふと思ったんだけど、競技プログラミングってすぐに結果が出るじゃん。
だから、出来た!!って達成感がすぐに味わえる。
それに対して、何かをつくるってすごく時間かかるから
達成感を感じるまでにすごく時間がかかる。
FFS理論の拡散性/保存性と関係ありそうだなって感じた。
FFS理論については俺もよくわかんないんで説明しないけど
競技プログラミング好きは拡散性が高く
何かをコツコツ作るのが好きな人は保全性が高い見ないな。
0446デフォルトの名無しさん (ワッチョイ 31bd-nsye)
垢版 |
2022/11/11(金) 23:06:55.29ID:zKcuQYM10
それはあるだろうね
FFS理論はよく知らないけど、自分は刺激がないと興味関心の対象がすぐ移るから、結果やフィードバックがすぐ返ってくる競プロが性にあう
0449デフォルトの名無しさん (ワッチョイ 15b1-sqhU)
垢版 |
2022/11/12(土) 19:57:29.12ID:qQOJrpEK0
競技プログラミングの鉄則のB07の問題が解けません。
これがなぜ不正解なのかわかる方いらっしゃいますか(ヘッダ省略してます)?
int main()
{
int T; // 閉店時刻、出力行数
int N; // 従業員の人数

cin >> T >> N;

// 各従業員の出勤時刻を入力して、
// 時刻毎の人数差分表を作成する。
int L,R; // 出勤時刻、退勤時刻
int diffList[500009]; // 前の時刻との人数差分リスト
for(int i = 0; i < N; i++) {
cin >> L >> R;
// 出勤時刻には人数が1人増える
diffList[L]++;
// 退勤時には人数が1人減る
diffList[R]--;
}
// 各時刻の働いている人合計を出力する
int total = 0;
for(int i = 0; i < T; i++) {
total += diffList[i];
cout << total << endl;
}
return 0;
}
0451デフォルトの名無しさん (ワッチョイ 15b1-sqhU)
垢版 |
2022/11/12(土) 20:31:37.25ID:qQOJrpEK0
>>450
配列のみグローバル領域に置いたら正解になりました!!
ありがとうございました!!
0453デフォルトの名無しさん (ワッチョイ 9be2-vn4b)
垢版 |
2022/11/12(土) 22:41:38.34ID:zPldldpV0
DのWAが1時間以上もとれない、コンテスト難しくなりすぎ・・・
0458デフォルトの名無しさん (ワッチョイ 03bd-WFXv)
垢版 |
2022/11/12(土) 22:46:35.73ID:I+5LPno20
2回に分ける
n, m = list(map(int, input().split(" ")))
t = {}
origin = list(map(int, input().split(" ")))
sums = sum(origin)
numbers = set()
for i in origin:
if i in t:
t[i] += 1
else:
t[i] = 1
numbers.add(i)
numbers = list(numbers)
numbers.sort()
numbers += numbers
start = 0
goal = -1
now_max = -1
now_sums = 0
last = None
0459デフォルトの名無しさん (ワッチョイ 03bd-WFXv)
垢版 |
2022/11/12(土) 22:46:51.30ID:I+5LPno20
while True:
goal += 1
if goal >= len(numbers):
break
if start is not None and goal - start + 1 > n:
break
mod_m = numbers[goal] % m
if last is None:
start = goal
now_sums = mod_m * t[mod_m]
last = mod_m
elif (last + 1) % m != mod_m:
last = mod_m
now_max = max(now_sums, now_max)
start = goal
now_sums = mod_m * t[mod_m]
else:
now_sums += mod_m * t[mod_m]
last = mod_m
now_max = max(now_sums, now_max)
print(sums - now_max)
0463デフォルトの名無しさん (ササクッテロラ Spc1-VzEu)
垢版 |
2022/11/12(土) 23:11:22.38ID:5N6IETenp
>>462
コード全然見てないから見当違いかもしれないけど、自分も殆ど同じテストケースでWAが出てソート済みの数列が全て差分1以内で連続してるパターン(0 1 2 3 4的な)でのミスが原因だったからこのパターンにも対応出来るようにしたらACになるかもしれない
0477デフォルトの名無しさん (ワッチョイ 9be2-vn4b)
垢版 |
2022/11/13(日) 00:09:53.81ID:LlAfmRCW0
Fが水色くらいになるようにしてほしいですね
0480デフォルトの名無しさん (ワッチョイ 15bd-sqhU)
垢版 |
2022/11/13(日) 00:36:57.60ID:vtTojVNy0
それも一理あるけど、GとExは同配点ながら明らかに難易度差があるような作りになってるし、配点と難易度を一致させることがマストとは考えられていないと思う
そもそも広く競プロを見れば点数がなくて完数で評価するコンテストもあるし
個人的にはB〜Gで灰から黄まで一色ずつ出現するぐらいが丁度いいABCかなあと思っている
0497デフォルトの名無しさん (ワッチョイ 6fbd-AKU4)
垢版 |
2022/11/19(土) 15:26:42.45ID:72lFIpVP0
opencupとかどういう質の問題が出てくるんだろうね
漏れ出てくる話を見る限り、割と知識バンバン使いそうな印象でAGC的な感じじゃなさそうだけど
AGC的傾向が唯一のものではなくて、そこで問題を食い合ってたら大変だなと
0499デフォルトの名無しさん (ワッチョイ cee2-wz7Y)
垢版 |
2022/11/19(土) 16:13:20.32ID:UeZx7lmP0
Dまでにダイクストラを使った問題を2年くらい見てない気がする。やるだけになりがちなので出ない。
0504デフォルトの名無しさん (ワッチョイ cee2-wz7Y)
垢版 |
2022/11/19(土) 22:42:42.99ID:UeZx7lmP0
同じく。Dまでが難しく時間かかるから解けそうでも足りない。
問題数増やすなら通りやすくしてほしい。
0508デフォルトの名無しさん (ワッチョイ 12bd-KP+k)
垢版 |
2022/11/19(土) 22:47:25.31ID:BGPGelZJ0
ちなみに俺が考えたE問題の解き方として

横移動するときに、移動前の列と移動後の列の差分を計算して行くっていうやり方なんだけど

これじゃアウトなんだろうか。300っていう制約があったから計算量的に足りる気がしたのだが
0514デフォルトの名無しさん (ワッチョイ 12bd-KP+k)
垢版 |
2022/11/19(土) 23:06:20.86ID:BGPGelZJ0
ってか競技プロって実務で役立つ説ってどうなんでしょう
atCoder初めてはや3ヶ月だけど、
IT業界2年目で実務で、皆が重いって言ってる内容とか全然重く感じない

競プロによる基礎体力があるからでしょうか(願望)
0518デフォルトの名無しさん (ワッチョイ 12bd-KP+k)
垢版 |
2022/11/19(土) 23:13:26.30ID:BGPGelZJ0
だよね
ただ、それ以外のサーバー知識とかlinux周りとかはやっぱり経験者の方が強いわ

でも、10年以上IT業界にいる人よりもSQLをかけたりするんだよね

こういうのって、職人の世界で言ういわば力持ちで、広く浅い(?)知識もってる人より偉くなりにくいのかね?どうなんだろう
0519デフォルトの名無しさん (ワッチョイ cee2-wz7Y)
垢版 |
2022/11/19(土) 23:17:05.43ID:UeZx7lmP0
>>514
BからC問題くらいまで解けるようになる価値はめちゃ高くて最も役に立つ帯域だと思う
0520デフォルトの名無しさん (ワッチョイ e3a4-wz7Y)
垢版 |
2022/11/19(土) 23:19:13.45ID:r882ug7a0
>>514
おれも業務経験ガッツリ積んでから競プロやってるけど、競プロの知識が業務に役立つことほとんどないよ

例えばデータベースでは全レコード数をNとして、検索速度はO(logN)やO(1)らへんに落とし込むのがもともと当たり前だし、役立った気はしない
強いていうなら実装から見積もりができるようになったから、計算量やばいコードの見分けがつきやすくなったぐらいだけど、そんなことが役に立つ機会ほとんどない
なぜかというとオンメモリにたくさんデータを入れることがないからだろうな。1台の計算機でがんばるよりも、どうやってスケーラブルにするかってのが重要だし

アクションゲームのフロントエンド側とかだったら、オンメモリでいろんな幾何学的処理するからもっと役に立ちそう

どの問題が重いって言われてるのか知らんけど灰や茶が重いとか言ってもアテにならんし、ABCは他の競プロコンテストと比較すると圧倒的に実装が軽いしどういうことだろうな?
0522デフォルトの名無しさん (ワッチョイ fbbd-D2aN)
垢版 |
2022/11/19(土) 23:23:39.51ID:Jvylc/AE0
>>520
514だけど、重いって言ってるのは実務でだよ

かなり細かい場合わけが必要だから時間がかかるっていう実装を頼まれて、3日とか想定してたのを30分くらいで終わらせた

スケーラブルにするのも大事だけど、細かい部分を見る目は大事なんじゃないかね?って思う時はある

今elasticsearch触ってるけど、細かいスコア計算の部分とかそういうのを把握するっていう意味で理数的な競プロの考え方はすごく役に立ってると感じる
0523デフォルトの名無しさん (ワッチョイ fbbd-D2aN)
垢版 |
2022/11/19(土) 23:24:31.32ID:Jvylc/AE0
>>521
やめろおおおおおおおおお

俺のやり方が間違ってたって思えれば時間間に合わなくてもあきえあめがつくのに。。
やっぱりそうか。。。
悔しい
0524デフォルトの名無しさん (ササクッテロラ Spdf-2tvE)
垢版 |
2022/11/19(土) 23:25:42.08ID:xSVToK+Ip
基本的にはオンラインパズルゲームでしかないから競プロが実生活に役立ったら美味しいくらいに捉えて楽しむのが賢明で、役に立つことを期待して取り組むもんでもないってずっと言われてると思う
まあABC-B、Cくらいの指示に従って愚直にコードを書く問題は業プロの基礎体力に直結する気がするからスラスラ解けるのと解けないのでは全然違う気もするけどね
0526デフォルトの名無しさん (ワッチョイ 12bd-KP+k)
垢版 |
2022/11/19(土) 23:30:38.86ID:BGPGelZJ0
>>524
業プロにワロタ
いやさ、今メンバーをプロジェクトにアサインする問題が会社にあって、

該当メンバーがコードの読み書きが全然できないって客先から怒られてたりするんだよね


だから、競技プログラミングのA問題を解けるかどうかで判定してみるのはどうだろうっていうことを提案しようと考えてた
解けるかどうかっていうよりもそれを解くときの姿勢とか、調べる気持ちとかがあるかどうかってそこで見極めることができる気がする

B問題でもいい気はするけどB問題以降はガチ勢っぽいイメージ俺は持ってるからメンバーのアサイン判定には不向きかなって
0527デフォルトの名無しさん (ワッチョイ 6fbd-AKU4)
垢版 |
2022/11/19(土) 23:31:26.81ID:72lFIpVP0
ABC-Cあたりがごく普通の業務で出て来る可能性があり、なおかつかなり個人差がある領域だと思ってるけど、そこが速いと捗る
その部分が進捗のボトルネックになってしまう人もいるので
0530デフォルトの名無しさん (ワッチョイ 12bd-KP+k)
垢版 |
2022/11/19(土) 23:37:35.70ID:BGPGelZJ0
思うんだけど、
競プロって計算量オーダー云々っていうよりも

データの構造とかハッシュテーブル的なものをちゃんと理解しているかどうかだと思う
そういうあたりを正確に理解してれば、計算量なんて悪いパターンになることを知ってれ場何とでも対策できる

プログラム書く上においていろいろな構造を正確に頭の中で描けるかっていうことを図るいみで競プロは非常に有効だと考えてる
0531デフォルトの名無しさん (ササクッテロラ Spdf-2tvE)
垢版 |
2022/11/19(土) 23:38:35.53ID:xSVToK+Ip
愚直に(全探索とかをして)コードを書いても制限を超過しないっていう点でABC-B(と一部のC)くらいまでは確実に業務に直結すると思うよ
たまにプログラミング関係なしで簡単な算数・数学っぽい問題も混じってるけど
0532デフォルトの名無しさん (ワッチョイ 12bd-KP+k)
垢版 |
2022/11/19(土) 23:39:20.45ID:BGPGelZJ0
>>529
俺自身が29歳までトラック運転手の高卒だし、学歴フィルターはできない
アサインチームがOJT目的であまりにもポンポン案件入れてしまうので、業務チームが火を噴いていることは事実
だから、A問題を解いてみてが一番いいと思う
0534デフォルトの名無しさん (ワッチョイ 6fbd-AKU4)
垢版 |
2022/11/19(土) 23:46:23.51ID:72lFIpVP0
頭の中で、配列、ハッシュテーブル、stack、queueのイメージぐらいできてもいいかもね
std::setは平衡二分探索木を忠実にイメージしようとか考えだすとめんどくさいけど
0535デフォルトの名無しさん (ワッチョイ b6bd-D2aN)
垢版 |
2022/11/19(土) 23:49:47.51ID:AVfRYoVA0
>>531
算数・数学も最低限の教養として必要だと思う

そもそもにして式を立てられないんだったら数字を使う業務にアサインできないと思うし、統計的な考え方ができるかできないかも大事だと思う
競プロで出てくる数学ってD問題までに限って言えば高くても高校レベルだから、漸化式を立てるとかそれくらいはやってほしいって思う
0536デフォルトの名無しさん (ワッチョイ b6bd-D2aN)
垢版 |
2022/11/19(土) 23:52:10.43ID:AVfRYoVA0
>>513
二次元累積和

覚えやす
0542デフォルトの名無しさん (ワッチョイ cee2-wz7Y)
垢版 |
2022/11/20(日) 02:43:28.01ID:iJJH9JfJ0
problems見たらEが緑下ってコンテストのレベル上がった気がする。灰色コーダーは普通に優秀。
0544デフォルトの名無しさん (ワッチョイ cee2-wz7Y)
垢版 |
2022/11/20(日) 02:57:39.92ID:iJJH9JfJ0
Cが灰色で慣れてればなんでもないけど、グラフの教科書通りリンク行列とか作ったりしちゃったらメモリが全然足りないとか
0552デフォルトの名無しさん (アウアウウー Sa3b-1oEr)
垢版 |
2022/11/20(日) 20:04:10.36ID:O5nn860Ia
初挑戦だけど参加者が思ったよりハイレベルでビビった
Dまで解いて半分よりちょっと上程度なのか
そりゃ上位人にはかなうはずもないけどまさか底辺までここまでやるとは
0556デフォルトの名無しさん (ワッチョイ 62bd-D2aN)
垢版 |
2022/11/20(日) 22:34:39.19ID:hdoMUuAt0
コンテスト中は一切の感想呟いちゃいけないのよね
0561デフォルトの名無しさん (ワッチョイ 12bd-KP+k)
垢版 |
2022/11/20(日) 23:18:17.14ID:wTw6Qb2d0
A問題、解き方はすぐにわかったけど、実装でかなり苦労したな
1時間以上かかった

B問題は問題読んでそっとじ

A問題、俺は端から一個飛ばして、数字毎に一個飛ばしっていうやり方をとってACしたけど
これが本当に一番最悪のケースっていうことって数学的に証明できるんだろうか
0569デフォルトの名無しさん (ワッチョイ ff07-1oEr)
垢版 |
2022/11/25(金) 18:53:15.81ID:65rNmeKo0
C++使いが問題作ってるから若干C++に有利だな
専用のライブラリが使えたりするし再帰呼出しとかのC++が苦手そうなやつはスタックオーバーフローしない回数になってるし
0572デフォルトの名無しさん (ワッチョイ e3a4-wz7Y)
垢版 |
2022/11/25(金) 20:17:30.79ID:Mr2dT9mK0
常に問題の制約が64bitが前提になってるのがまずけしからんわけだ
64bit整数が扱いやすいなんてC/C++、JavaやGo、みたいなコンパイル前提の言語ばっかじゃん
たまには150bitらへんを制約にするとか
正規表現使えば楽勝みたいな問題をもっと出すべき
0573デフォルトの名無しさん (ブーイモ MM3e-CdGE)
垢版 |
2022/11/25(金) 21:26:56.40ID:TF+64huAM
>>569
スタックオーバーフローしない回数なんじゃなくてatcoder上でオーバーフローしないってだけじゃないの

atcoderはスタックサイズ上限無制限にしてあるからmemory limit超えない限り落ちない
0574デフォルトの名無しさん (ワッチョイ 5701-30wt)
垢版 |
2022/11/25(金) 22:03:32.16ID:8L23NX370
ノートPC持ってる人多いのか?
仕事はノートPCだけど会社から貸与されてる仕事用のものだから私用に使えないし、
自分のPCは基本的に自宅でしか使わないからデスクトップで十分だしスペック的にもデスクトップがいい
わざわざPC2台持たないし
0576デフォルトの名無しさん (アウアウウー Sa5b-7S+y)
垢版 |
2022/11/26(土) 12:13:25.49ID:tpvuNJrza
ガイジガイジガイジガイジガイジ
ガイジガイジガイジガイジガイジ
ガイジガイジガイジガイジガイジ
ガイジガイジガイジガイジガイジ
ガイジガイジガイジガイジガイジ
0580デフォルトの名無しさん (ワッチョイ 1fbd-L9hK)
垢版 |
2022/11/26(土) 22:42:27.81ID:UyYZD8yR0
D問題、普通に数学解けないと解けない問題が出てきたな
AC出来たからいいけど
A~Cまでは普段と比べてめちゃくちゃ簡単だと感じた
E問題は問題の意味が分からず、残り20分でようやく意味が分かって時間的に足りないと思ってそっ閉じ
0584デフォルトの名無しさん (ワッチョイ bfe2-O5Hl)
垢版 |
2022/11/26(土) 22:57:30.63ID:zgsW6Ywu0
D、最適化ライブラリでどうしても10^-3までしかあわないまま80分とかしてダメ元で投げたら通った・・・
0586デフォルトの名無しさん (ワッチョイ 9f7c-I9bi)
垢版 |
2022/11/26(土) 23:03:02.04ID:gLSjA9OV0
d問題で最小値を求めるべき関数、ほんとだったら下に凸なことを証明しなきゃいけないんだろうけど、「導関数が0になるとこ一ヶ所しかないからここが答えやろw」って解答しちゃった
0588デフォルトの名無しさん (ワッチョイ bfe2-O5Hl)
垢版 |
2022/11/26(土) 23:20:38.01ID:zgsW6Ywu0
>>585
scipyのoptimise
0589デフォルトの名無しさん (ワッチョイ 9f02-zuBb)
垢版 |
2022/11/26(土) 23:29:09.61ID:d01dJOWN0
1年ぶり位に復帰したけどインフレやば過ぎワロタ
三分探索が茶とかもう無理ゲ
0591デフォルトの名無しさん (ワッチョイ bfe2-O5Hl)
垢版 |
2022/11/27(日) 00:11:00.75ID:BLocM/7p0
手計算したくないから、回答と少し違うwolfram先生の解析解の周辺の最小値でやったけど、最後のサンプルがどうやってもあわなくscipyに。実務家的wには脳死でoptimize一択。
0592デフォルトの名無しさん (ワッチョイ bfba-Tatu)
垢版 |
2022/11/27(日) 00:29:03.57ID:55T6iy040
Dで10^18制約で誤差10^-6無理じゃね?と思ったら絶対誤差または相対誤差って書いてあることに気付いた
ひょっとして今までの問題も全部そうだったのか
0593デフォルトの名無しさん (ワッチョイ 9fbd-J0r1)
垢版 |
2022/11/27(日) 00:30:45.88ID:GvaDwkJ10
Python しか触ってないからわからないんだけど
他のCとかだと誤差が大きくなって3分探索とか使わないといけなくなるもの?
0594デフォルトの名無しさん (ワッチョイ 9fbd-J0r1)
垢版 |
2022/11/27(日) 00:34:30.35ID:GvaDwkJ10
>>592
微分して0になる点の整数インデックスさえ求められれば
そこからプラマイ5くらいずらして最小値を求めてばいいと思うけど
俺はPythonでインデックスとインデックス+1の最小値で求めることできたけど
ってか代数的に解ける問題が出てくるんだなってびっくりした
0595デフォルトの名無しさん (ワッチョイ b7a4-O5Hl)
垢版 |
2022/11/27(日) 00:38:57.81ID:14KOziN70
せっかくデ/アのスキルを磨ける競プロをやってるんだから、代数解法よりも三分探索を使って解いてほしいところ
まあ競技的にはとにかく解ければ勝ちなんだけど
0596デフォルトの名無しさん (ワッチョイ 9fbd-J0r1)
垢版 |
2022/11/27(日) 00:42:37.70ID:GvaDwkJ10
>>595
計算量を考察する箇所でも代数的な考察するし

代数だけではどうしようもないということを頭でしっかり認識してからパズル的に解くのが醍醐味だと思うんだけど
0599デフォルトの名無しさん (ワッチョイ 9fbd-J0r1)
垢版 |
2022/11/27(日) 00:47:05.59ID:GvaDwkJ10
>>597
誤差の部分よくわからんのよね
どのくらいの誤差が起こり得るのかが
コンピュータの深い部分か何かしらの知識があればわかるんだろうけど

FFTで誤差が出ないから、とりあえず実用範囲で小数計算の誤差は考慮してないな
それだけPythonが数値計算で有能なのかも知れないが
0600デフォルトの名無しさん (ワッチョイ 9fbd-J0r1)
垢版 |
2022/11/27(日) 00:47:32.02ID:GvaDwkJ10
>>598
デ/アって何??
0601デフォルトの名無しさん (ワッチョイ b7a4-O5Hl)
垢版 |
2022/11/27(日) 00:51:50.68ID:14KOziN70
>>599
きみは何らかの代数ライブラリを使ったのかもしれないけど、おれが「代数解法」と呼んだのは公式解説にある「解法2 微分」のこと
「解法1 三分探索」でも「解法2 微分」にしても、どちらにしても最小値になる回数を見つけてからの計算方法はほぼ同じだから、同じ精度で答えが出力される
よって誤差は関係ない

>>600
データ構造とアルゴリズム
0602デフォルトの名無しさん (ワッチョイ 9fbd-J0r1)
垢版 |
2022/11/27(日) 00:53:59.03ID:GvaDwkJ10
>>601
俺は微分したけど、3分探索はわからないけどLogNとかになるのだとしたら微分したらO(1)だと思うからそっちの方が速そうだけどな


データ構造/アルゴリズム
→わからんかったよ。。
0604デフォルトの名無しさん (ワッチョイ 9fbd-J0r1)
垢版 |
2022/11/27(日) 00:56:10.24ID:GvaDwkJ10
>>603
解説聞いたらわかったけど、初見じゃわからんかったよ
0606デフォルトの名無しさん (ワッチョイ 9fbd-J0r1)
垢版 |
2022/11/27(日) 00:59:07.32ID:GvaDwkJ10
数学が下地にあるのは確かだけど、日本の学校教育では出てこないようなパズル問題が出てくるところが競プロの好きなところ
0607デフォルトの名無しさん (ワッチョイ 9fbd-J0r1)
垢版 |
2022/11/27(日) 01:00:50.63ID:GvaDwkJ10
>>605
常識だったのか。スラッシュあまり使わない俺はあまり馴染まないかも知れない(と言って1週間後使ってるかもしれない)
競プロ初心者高卒だから、そういう界隈の言葉どんどん教えてくれると嬉しい
0611デフォルトの名無しさん (ワッチョイ bfe2-O5Hl)
垢版 |
2022/11/27(日) 02:20:45.46ID:BLocM/7p0
ワテが3分探索を使わない理由は
・最適化の本で見たことがない
・多次元に拡張できない、教プロ特有な気がするので学習モチベがわかない

こんなところか・・・
0615デフォルトの名無しさん (ワッチョイ 1f9f-Gfcg)
垢版 |
2022/11/27(日) 13:33:50.96ID:BTSTHwm10
>>608
コンピュータサイエンス用語でもない競プロスラングなんだからわからんのが当然だとは思うけど、「競プロの界隈だと」と言ってるのに高卒だからと関係ないことを言い始めるあたりの理解力はちょっと怖い
0617デフォルトの名無しさん (ワッチョイ 9fbd-J0r1)
垢版 |
2022/11/27(日) 22:31:30.18ID:NlD2vvTh0
>>615
高卒の俺でもある程度頑張ってるよって言いたかっただけ

あと、高卒ってベースとなる知識が圧倒的に少ないと感じてるからスラングでもなんでも、そういう中に考え方が潜んでるからそれを学びたいっていう気持ちがあっただけだよ
0625デフォルトの名無しさん (アウアウウー Sa5b-DgGg)
垢版 |
2022/11/29(火) 11:56:47.92ID:Xod1Eynpa
>>621
下に凸ということがわかれば二分探索で解けることは明らかなんじゃね
接線の傾きが右上がりもしくは水平になる最小の値を調べればいい
つまり右下がりなら前半を捨てて右上がりなら後半を捨てるの繰り返し
初期範囲は0からAで行けるしその倍でも比較が一回増えるだけ
0629デフォルトの名無しさん (アウアウウー Sa5b-RMO3)
垢版 |
2022/11/29(火) 13:55:24.58ID:Ka2TzeUEa
自分は傾きでなくマイナス1とプラス1の値で比較したから合わなかったんだな
gの変化が1ずつだからってそれでは駄目なんやね
3分探索も知らなかったけど色々勉強になって面白かった
0632デフォルトの名無しさん (ワッチョイ b7a4-O5Hl)
垢版 |
2022/11/29(火) 17:19:52.47ID:QobrmxBH0
日本ローカルな有志コンならともかく、数少ないグローバルなAGCがわざわざXmasに重ねられてるのはちょっとどうかなという気はしちゃうな
AtCoder側の都合はしらんけど、欧米圏だと24日は仕事は早くあがって、クリスマスマーケットも終わって、25日はゆっくり過ごすだけの祝日と相場が決まってる
0646デフォルトの名無しさん (アウアウウー Sa5b-DgGg)
垢版 |
2022/11/30(水) 17:02:31.77ID:aIG6S061a
解説と同じアルゴリズムだと通るのに愚直に解くとWAになることがあって悩んだことがある
TLEならともかくWAになるはずなかったんだがなあ
なにせ1000000007で割った余りを書きましょうという問題で全部BigDecimalで計算して最後に一度だけ割る解法だったし
0653デフォルトの名無しさん (ワッチョイ f8a4-77kT)
垢版 |
2022/12/03(土) 22:40:01.18ID:Uhw018620
A:やるだけ
B:累積和をやりながら差をやるだけ
C:Sの先頭から見てTと違う文字が出てきたところが答えになるだけ。Sの末尾になんか$とかみたいな1文字を追加しておくと簡単
D:素因数分解して素数ごとに、Nが最低でいくつ以上になるかを二分探索によって求めるだけ
E:f(x)=1 + P/100 * f(x-2) + (100-P)/100 * f(x-1) みたいな計算をメモ化とかDPとかしてやるだけ
F:BFSして訪問するごとにどこからどこへ行けるのかUnionFind使ってマークし、コストをポテンシャルとして記録する。あとから違う値でポテンシャルを更新できる場合はUnionFindのその集合はinfになるとわかる。答えはUnionFindと、ポテンシャルの差を見るだけ
G:Fまで早解きすればパフォがカンストして2400になるから賞金どうでもいいなら解かなくていいので無視するだけ
Ex:無視するだけ
0660デフォルトの名無しさん (アウアウウー Sa3a-wvAz)
垢版 |
2022/12/04(日) 09:19:17.67ID:pM2FPSpOa
これってカンニングやり放題だと思うんだけど意味あるの?
昔は会場で受けてた?
0661デフォルトの名無しさん (アウアウウー Sa3a-wvAz)
垢版 |
2022/12/04(日) 09:30:54.97ID:pM2FPSpOa
転職の武器になるかな?って思って調べるけどよくわからない
ここのスレ見てても転職できたという報告は全然ないね
募集枠はあるけど採用されないように見えるね
0664デフォルトの名無しさん (アウアウウー Sa3a-wvAz)
垢版 |
2022/12/04(日) 12:28:16.09ID:pM2FPSpOa
そういう事ね、とりあえず遊びでやってみるか
0669デフォルトの名無しさん (アウアウウー Sa3a-wvAz)
垢版 |
2022/12/04(日) 17:53:44.19ID:pM2FPSpOa
昨日の問題EのcriticalHitがよくわからないんだけど
解説にatcoderのincludeファイルがあるんだけどなんだこれ?
PとQ求めたらこのファイル使うと勝手に計算してくれるの?
0672デフォルトの名無しさん (アウアウウー Sa3a-wvAz)
垢版 |
2022/12/04(日) 18:03:15.78ID:pM2FPSpOa
>>671
つまり、高速でPとQを解かせるのが本題で、
mod計算はライブラリがあるからそこで時間つかうなよ!って事かね?
使わないと困るケースがあるんだろうけど...理解せずに脳死で覚えた方が良いんかな?
0675デフォルトの名無しさん (ワッチョイ f8a4-77kT)
垢版 |
2022/12/04(日) 18:09:27.71ID:CGY/STbk0
そうだなあ
ACLで実装されてるのは有名アルゴリズムばかりで、ABCでもよく出題されるの多いからライブラリで実装されてるものは理解したほうがいい
ACLは使ってもいいし、使わなくてもいい

まあ、とりあえず問題が解ける程度には理解して使えるようになることをオススメしておくか
特にmodintは便利だと思う
ACLをローカルにインストールすれば、自分のパソコンからも使えるよ
0680デフォルトの名無しさん (ワッチョイ 9f01-4FAg)
垢版 |
2022/12/04(日) 20:00:57.71ID:9++0/IB+0
分数をmodで表現する方法が分からなくて解説見に来た人が何も分からないままだから、「modでの計算はたとえばACLを使うことで求めることができます」みたいな一文とともにACLドキュメントへのリンク欲しいね
そもそも新しく入ってきた人はACLの存在知らないだろうし
0681デフォルトの名無しさん (ワッチョイ 66e2-77kT)
垢版 |
2022/12/04(日) 20:09:31.79ID:EaAmvHmj0
小数点の既約分数表現だか、理解するモチベーションが全然わからない
0682デフォルトの名無しさん (ササクッテロ Sp88-UA8M)
垢版 |
2022/12/04(日) 20:18:03.95ID:YKYxvH3hp
分数のmod表現は最初は数字が非直観的で戸惑うかもしれないけど、やってることは全然難しくないからACL使用前提じゃなくて普通に理解すべき
逆元と繰り返し2乗法理解してれば一瞬で書けるし
0683デフォルトの名無しさん (ワッチョイ d9b1-WJTY)
垢版 |
2022/12/04(日) 20:40:00.50ID:c/97lm9K0
>>667
>>668

普通のコードです
std::stringでも同じ結果になったため、charにしてみました。
#include<iostream>
#include<string>
#include<string.h>

using namespace std;

int main()
{
char S[500009],T[500009]; // 変更前文字列、挿入後文字列
// 入力
cin >> S;
cin >> T;

// 変更後文字列の長さを求める
int len = strlen(T);
// 開始位置は先頭
int start = 0;
// 終了位置は文字列の最後
int end = len-1;

// 以下省略
return 0;

}
0684デフォルトの名無しさん (アウアウウー Sa3a-wvAz)
垢版 |
2022/12/04(日) 20:48:19.58ID:pM2FPSpOa
>>683
intで足りてる?
0685デフォルトの名無しさん (ワッチョイ d9b1-WJTY)
垢版 |
2022/12/04(日) 20:50:00.93ID:c/97lm9K0
>>684
intって32ビットですよね?
でしたら足りてます
0686デフォルトの名無しさん (アウアウウー Sa3a-wvAz)
垢版 |
2022/12/04(日) 20:53:07.80ID:pM2FPSpOa
足りてるなら言う事無いですね。
0688デフォルトの名無しさん (ワッチョイ d9b1-WJTY)
垢版 |
2022/12/04(日) 21:06:26.43ID:c/97lm9K0
>>686
ありがとうございます

>>687
サクラエディタで1万文字を2行分書いて、それをCtrl+Aでコピーして
VSCodeに右クリックでペーストしました
この作業で文字がカットされている可能性がありますね
ありがとうございます!!
0689デフォルトの名無しさん (アウアウウー Sa3a-wvAz)
垢版 |
2022/12/04(日) 21:07:30.39ID:pM2FPSpOa
入力文字列が怪しそう
0698デフォルトの名無しさん (ワッチョイ f8a4-77kT)
垢版 |
2022/12/05(月) 01:29:24.67ID:ypvg8sem0
配点からしてAがむずかしめなのは予想できたし、まあ

水色くらいの人たちならそんぐらい自己判断できるし、まあ水色以上Ratedで良いと思うけどね
それよりARCを3200くらいまでRatedにしてあげたら?って気がしちゃう
0702デフォルトの名無しさん (テテンテンテン MM34-wjaL)
垢版 |
2022/12/05(月) 11:48:54.61ID:9VPmC7c9M
異なる文字同士が隣接している部分の特徴量として使おうってのはまあすぐ思いつくしそれはそこまでの発想じゃないと思うが、ABCABC三回とかがコンテスト中だと意外とソラで気付けない
そうこうしてるうちに別の方針に飛んだりしてかなり時間食う
一方Bは下界と上界がすぐ見えるし、700点問題にしては木となもりの関係性と似ていることに思い至るまでにそんなに飛躍はないように思う
実装パートの方がつらい
その結果が正答数逆転だわ
0705デフォルトの名無しさん (ササクッテロ Sp88-UA8M)
垢版 |
2022/12/05(月) 13:44:54.25ID:6+3fZaFZp
愚直コードを書いてパソコンに実験させるのが良かったんだろうけど、これくらいの問題なら紙に書いて実験するので大丈夫だろうと高をくくって最小回数を勘違いしてたせいで一生WAが出て地獄だった
パソコンに実験させる習慣が未だにつかない
0706デフォルトの名無しさん (ワッチョイ f1bd-WJTY)
垢版 |
2022/12/05(月) 17:25:12.72ID:dZQIdR+h0
自分もどちらかというと移動中の微妙なスキマ時間に競プロの問題を考えることが多いから、実験はそんなに得意ではないかなあ
高難易度ほど予想解きスキルが必要そうだから、ARC/AGCで戦うのなら練習した方がいいかもね
0707デフォルトの名無しさん (ワッチョイ 66e2-77kT)
垢版 |
2022/12/05(月) 19:41:46.19ID:MF+Ck4c20
AGC、診断人氏が0完とか、もう一般的にかなり優秀な人ですら出れるレベルじゃないのかw
0716デフォルトの名無しさん (ワッチョイ f1bd-WJTY)
垢版 |
2022/12/07(水) 22:50:56.68ID:K0BDAES80
0完で水パフォってところから、AGCのrated制限ってかなり絶妙に設定されてると思ったね
年6開催のころに仮に同じ難易度、all ratedだったら、参加し続けることで一年すべて0完でも緑ぐらいには行きそう
0720デフォルトの名無しさん (テテンテンテン MM34-wjaL)
垢版 |
2022/12/07(水) 23:34:14.34ID:+RxBvimqM
想定解を知ったあとだとMoでACできる遷移はすぐ作れる気がするが、それって本質的にMoのおかげで解けたことにはならないんだよな
てかその遷移に思い至るんならMo使わんやろっていう
0722デフォルトの名無しさん (ワッチョイ d910-RX5i)
垢版 |
2022/12/08(木) 00:19:44.81ID:qo7J5oAL0
昔直大が998244353なら使えるアルゴリズムが1000000007で使えないことがあるのでメタ読み対策で998244353使う的なこと言ってた覚えあるけど具体的に何があるの?
998244353使ってる問題解いてて気になった
0723デフォルトの名無しさん (ワッチョイ d910-RX5i)
垢版 |
2022/12/08(木) 00:20:24.69ID:qo7J5oAL0
>>950

!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

テンプレからコマンド消えてるのでテンプレに追加してください
0725デフォルトの名無しさん (ワッチョイ f1bd-WJTY)
垢版 |
2022/12/08(木) 00:34:54.52ID:QbzOT+5k0
>>722
畳み込み演算を高速化するFFTの亜種で、数論変換というのがある
普通のFFTは複素数を使うけど、数論変換はずっとmod pで計算するから精度上の問題が生じないのがメリット
p-1 = 2^m * dみたいな形で書いたときにmが大きいpほど扱いやすく、998244353は大きくて、1000000007は小さいから、そこで数論変換を使うかどうかがバレやすい的な話
0728デフォルトの名無しさん (テテンテンテン MM34-wjaL)
垢版 |
2022/12/08(木) 10:57:49.64ID:DNmDkQyIM
解既知区間を左右に1伸長したときにまた高速で解を求められれば一クエリでも多クエリでも対応できるから、そこに絞ってまず思考してみるというのも戦術としてはあるだろ
帰納的に考える方が多くの場合少ない思考リソースで問題解けたりするし
0730デフォルトの名無しさん (テテンテンテン MM34-wjaL)
垢版 |
2022/12/08(木) 13:06:21.88ID:bAy1n42uM
その1クエリを解くにあたり、Moで多クエリでも高速で処理することを見据えて、1クエリの解を伸長で構成することを試してみるって話
一方、セグ木で解くことを見据えるなら、モノイド性をどこかで見出して区間を併合しながら1クエリの解を構成できないか考えてみるというアプローチになる
メタ的には、多クエリで高速で解ける以上は、1クエリの解き方も限定されてくるだろうって考え方だな
別に数学的知見じゃなくて、ただの問題解く手順のお気持ちみたいなもんだから、わからないんならわからんでいいよ
0731デフォルトの名無しさん (テテンテンテン MM34-wjaL)
垢版 |
2022/12/08(木) 13:14:19.81ID:bAy1n42uM
前回のAも、「多クエリを高速で処理できるんだから簡単な区間の特徴で1クエリ分解けるだろう(そもそもAGC-Aだし)」で想定解に至った人も割といるんじゃないか思っているが、発想的にはそれと似たようなものだと思うわ
0733デフォルトの名無しさん (ワッチョイ f1bd-WJTY)
垢版 |
2022/12/08(木) 14:28:51.79ID:QbzOT+5k0
自分がMoを考えたと言ったのは、1クエリ解くにしてもDPみたいに漸化式作れたらやりやすそうだからと思ったからかな
もちろん最初のクエリの答えは自明な区間から出発するよ
0737デフォルトの名無しさん (ワッチョイ d910-fj/B)
垢版 |
2022/12/08(木) 17:27:26.68ID:qo7J5oAL0
twitterから拾ってきたやつだけど
・英語版の問題文を与える
・数式等をTeXで書く(A_i, 10^2など)
・入力と出力の例を与える
・AtCoderの問題であることを教える
・Pythonで書かせる
必要があるっぽいから普通に解いたほうがいい気がするな
0747デフォルトの名無しさん (ワッチョイ a701-KKgq)
垢版 |
2022/12/10(土) 16:56:35.59ID:+Gv2eYfg0
ChatGPTをAtCoderのコンテストで使用することが認められるならコンテスト出ないって人を見かけたけど、いまはまだ茶色程度の実力だけど、
仮に暖色程度の実力を備えた競プロAIが登場したとして、AtCoder公式から使用を認められたら、どう反応する人が多いか気になる
0749デフォルトの名無しさん (スプッッ Sd7f-5DNi)
垢版 |
2022/12/10(土) 20:44:33.79ID:TTumudvvd
コンテストになれば普段より集中して問題に取り組めるので参加する意味はあります
また参加回数が少ないとレーティングに補正がかかって低くなる仕組みもあります
ABだけでは茶色にはなれません
0750デフォルトの名無しさん (ワッチョイ 87a4-6Z9O)
垢版 |
2022/12/10(土) 20:45:06.16ID:9Qn6ryF90
>>748
英検とかと違って無料で参加できる実戦だから、練習になるし意味あるよ
強いひとはAtCoder以外にもいろんなコンテストに毎週たくさん参加してたりするよ

ABだけで茶色は無理かな
茶色にいくならCまで余裕もって解いてくださいな
0751デフォルトの名無しさん (アウアウウー Sa6b-TN1X)
垢版 |
2022/12/10(土) 20:49:39.55ID:uF1Xgf00a
>>747
https://www.businessinsider.jp/post-263042

この前こんな記事読んだんだけど、やっぱりChatGPTは「考えて答えている」んじゃなくて「それっぽい文字列を吐いているだけ」みたいだから、これからよほどのパラダイムシフトがない限り暖色程度の実力を備えた競プロAIは無理じゃないかな
まあそのパラダイムシフトに立ち会ってみたい気もするけど

>>748
本番の時間制限あるなかで考えるのも楽しいし、やってみればいいと思うよ
0756デフォルトの名無しさん (ワッチョイ bfe2-6Z9O)
垢版 |
2022/12/10(土) 22:51:50.49ID:O4kKtbHo0
D難しくなりすぎ・・・・。もらう方でやってバク取れず。2重dpでうまくいかない事に気づくまで40分。
0758デフォルトの名無しさん (スププ Sdff-Opz5)
垢版 |
2022/12/10(土) 23:04:25.58ID:Ns16Znepd
D解けた人の境界見たら、1245位だったのでかなり難解だったんですね。
ダメ元でサンプル通ったから提出したら当然WAでしたが解説見てもさっぱりでした。
少しずつアルゴリズムというものを勉強したいと思います。
0759デフォルトの名無しさん (ワッチョイ 4799-70Cd)
垢版 |
2022/12/10(土) 23:04:45.70ID:WdAZ/8IS0
editor使わず糞アットコの糞サイトbuiltin editorだけで書いてみた
やっぱり全然だめだな(´・ω・`)
0761デフォルトの名無しさん (ワッチョイ bfe2-6Z9O)
垢版 |
2022/12/11(日) 00:16:52.91ID:sLVycVhX0
同じ問題のレートが1年で50下がってるんだから、Dは茶色下くらいを目指そう
0762デフォルトの名無しさん (ワッチョイ 5fbd-FFNn)
垢版 |
2022/12/11(日) 01:07:10.13ID:Jt/PvfWs0
よかった
俺の調子が悪かったわけじゃないのか

三重ループまでなんとなくわかってたけど実装が複雑になりそうでできなかった
0764デフォルトの名無しさん (ワッチョイ a701-u86g)
垢版 |
2022/12/11(日) 02:54:41.11ID:7rOr8/1H0
愛知ループは三重の三倍難しいと言われてるからな。。
0768デフォルトの名無しさん (ワッチョイ 7fe6-KKgq)
垢版 |
2022/12/11(日) 18:45:09.52ID:7I6zjj+w0
>>766
デバッグしたい時などにあれこれ配列の中身除くのにvector配列の方が扱いやすいなと思って使ってました
解説でもDPでvector使ってることもあればarray配列使ってたりと別れるので好みとは思うのですが
何かarray型を選ぶ利点があるのか素朴な疑問でした

>>arrayじゃダメなときは当然そっち使うにしても
array使ってる例が多い気がしたのでvectorからarrayに変更して試してたのですが
vectorに慣れすぎていて逆に使いづらいと思ってvectorに戻しました
ダメな時に結局vectorにするのでそれなら最初からvectorで統一しようかなと
まだ経験少ないので試行錯誤してみます
0770デフォルトの名無しさん (アウアウアー Sa4f-PRdN)
垢版 |
2022/12/11(日) 21:02:26.53ID:T9/ITlNya
初期値をINFで埋めるとかしたいときは vector でコンストラクタ使うかな それ以外は生配列
array は使う機会ない
0772デフォルトの名無しさん (ワッチョイ 7fe6-KKgq)
垢版 |
2022/12/11(日) 21:59:28.13ID:7I6zjj+w0
>>769
多次元、速い、省メモリ
試行錯誤する時に意識して使い比べてみます

>>770
int a[100] 例
生配列とarray型を混同してましたが生配列の方です
確かにわざわざarray型を宣言して初期化することは無いですね

ありがとうございました
0773デフォルトの名無しさん (ワッチョイ bf7a-WVhJ)
垢版 |
2022/12/11(日) 22:56:42.06ID:wyaxD1Cj0
2次元までの配列ならvector 使うけど3次元以上になると生配列使う
宣言や初期化で文字数が増えるのが嫌
0776デフォルトの名無しさん (ワッチョイ bf7a-WVhJ)
垢版 |
2022/12/11(日) 23:44:16.93ID:wyaxD1Cj0
マラソンだと上位人はよくarray使ってる印象
0777デフォルトの名無しさん (アウアウアー Sa4f-PRdN)
垢版 |
2022/12/12(月) 00:55:20.18ID:L4LAFoUJa
マラソンは定数倍高速化した分だけループ回数増えてスコア伸びるからじゃね
アルゴなら5msのACも1900msのACも変わらんし、AtCoderでC++使っててarrayならギリギリ通るみたいなのはそもそも他の何かが間違ってると思った方がよさそう
0779デフォルトの名無しさん (ササクッテロ Sp1b-7eHa)
垢版 |
2022/12/12(月) 08:27:45.85ID:tiuAOnkep
ミラー・ラビンとかポラード・ローを使った高速な素因数分解アルゴリズムって競プロでの使用頻度どれくらい?
昨日のこどふぉのCの問題設定が微妙でこの高速な素因数分解アルゴリズムじゃないと計算量的に怪しかった(実際は√nの素因数分解アルゴリズムを定数倍高速化するのでも通るっぽい)んだけど存在を忘れてたせいで解けなかった
0780デフォルトの名無しさん (ワッチョイ df10-NKnn)
垢版 |
2022/12/12(月) 09:29:21.46ID:Ei5MD97h0
自分も解けなかった
自分が解いてきた限りではミラーラビンやロー法じゃないと解けない問題は見たことない
なぜ10^6にしなかったのか謎
0784デフォルトの名無しさん (ササクッテロ Sp1b-7eHa)
垢版 |
2022/12/16(金) 16:05:11.86ID:2WRHo5T/p
蟻本4.4章の巡回スケジューリング問題(円環上での区間スケジューリング問題)のソートを除いたO(N)解法って何?
円環を切って2つ繋げて区間にして考えるのかなって思ったけど上手くいかない気もするし元の問題が見つからないから確かめることも難しい
0785デフォルトの名無しさん (ワッチョイ a701-uLmq)
垢版 |
2022/12/16(金) 20:10:17.03ID:R8AxMjl90
各区間を頂点として、蟻本の解法の中で構築してるnextを辺としたグラフを考えると、なもりグラフになっててサイクルをちょうど一つだけ含む
答えはこのグラフ上のパスで表せる

サイクルに含まれない頂点を含む解を考えると、パスの始点と終点を一つ進めたものも有効な解であることが示せるので、
全ての頂点がサイクルに含まれるようなパスだけ考えればいい

あとはサイクルの上でしゃくとり法みたいなことやればできそう
で合ってるかな……?
0787デフォルトの名無しさん (ササクッテロ Sp1b-7eHa)
垢版 |
2022/12/16(金) 22:19:14.38ID:1iEDLF9Cp
>>785
確かにグラフ上で考えると求める区間の選び方はサイクルに含まれることが必要で、辺の数=頂点の数と全ての頂点の出次数1から全体としてはなもりグラフ的な感じにはなりそうだからだいたいその方針で良さそうっぽいな
ありがとう
0790デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
垢版 |
2022/12/17(土) 22:41:47.95ID:Ougsnu4Va
Dさぁ、過去問から漁れないと時間的に無理だろ
0791デフォルトの名無しさん (ワッチョイ e6e2-Tv+0)
垢版 |
2022/12/17(土) 22:48:54.79ID:8O7j2b6E0
D通ったけど難易度高すぎ。E,Fの位置にしとけと。
0792デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
垢版 |
2022/12/17(土) 22:49:30.45ID:Ougsnu4Va
つーか、Dって
連結がない頂点がある場合、答えは0じゃないよね?
追加したら二部グラフになりえると思うんだけど
このケース考えて完全に迷走した
0796デフォルトの名無しさん (ワッチョイ dabd-CLTW)
垢版 |
2022/12/17(土) 22:54:02.71ID:ZH4mYY1r0
D問題
やり方として
・まずは連結グラフに分解する
・連結グラフが3以上だった場合は無理判定をする

・そして各連結グラフ毎に
とりあえず各頂点に黒と白を割り振って、
このグラフそのものが2部グラフになっているかを判定する

2部グラフになっていた場合に、各連結グラフごとに自信が持ってる
反対の色の頂点数-頂点数をanswerに足していく

そして、各連結グラフについては

グラフ1の黒数×グラフ2の黒数
グラフ1の黒数×グラフ2の白数
グラフ1の白数×グラフ2の黒数
グラフ1の白数×グラフ2の白数

の4つを足す

っていう解法を思いついたんだけど、グラフ問題といたことなかったから、各頂点がどの気に属しているかっていう判定ができなかった

俺のやり方、・まずは連結グラフに分解する
さえクリアできテレバこのやり方であっていた?
0798デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
垢版 |
2022/12/17(土) 22:57:13.17ID:Ougsnu4Va
>>796
そう思ったけど、解説にはその点が触れられてない
0799デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
垢版 |
2022/12/17(土) 22:59:39.92ID:Ougsnu4Va
いや、それがあのBとWの入れ替え関数式か。
D解けた人良くここまで計算し切ったね
グラフの計算に二部グラフの計算加えて、
さらに計算式も考えるとかやりきれんよ。
0802デフォルトの名無しさん (ワッチョイ d7a4-pKhS)
垢版 |
2022/12/17(土) 23:13:31.41ID:8NnsdriJ0
おれはUnionFindつかってないよ
まあ使ったほうが見通しが良いなら使ってもいい

2部グラフとして考え、連結成分ごとに2色に塗り分けて、色ごとの頂点の数を数えて、組み合わせを計算して足し合わせた
これだけ
0803デフォルトの名無しさん (ワッチョイ e6e2-Tv+0)
垢版 |
2022/12/17(土) 23:23:39.77ID:8O7j2b6E0
青の人が3完だったらしーからD解けなくても全く問題ない気がする
0804デフォルトの名無しさん (ワッチョイ ea10-1XWL)
垢版 |
2022/12/17(土) 23:28:22.91ID:M78ib0lA0
グラフの分解は、
visited[v]: 頂点vを訪問したか
を用意して、for (int v=0; v<N; v++) で visited[v]がFalseなら、
そのvからbfsをして、visitedを更新しながら、色々やる
という方法でやってる
二部グラフ判定なら、visitedは頂点の色の配列で代用できる
0805デフォルトの名無しさん (アウアウウー Sa9f-GdW4)
垢版 |
2022/12/17(土) 23:31:28.58ID:XFakiAR1a
Nが最大で2*10^5だから、たぶん解法はO(N)だろうとあたりをつける

つまり、おそらく「頂点iから伸ばしてもいい辺の本数」を定数時間で求めさせるのが想定解だろうと予想できる

色々考えると「頂点iから伸ばしてもいい辺の本数」は

(頂点iと同じ連結成分に属している、頂点iと違う色の頂点の数) - (頂点iの次数) + (頂点iが属していない全連結成分の頂点数)

だと求まるから、この総和が答えって感じで解けた
0806デフォルトの名無しさん (ワッチョイ 3b01-44eU)
垢版 |
2022/12/17(土) 23:39:16.37ID:st/Rnmpd0
>>796
連結成分は3つ以上あってもいいよ
0808デフォルトの名無しさん (ワッチョイ dabd-CLTW)
垢版 |
2022/12/17(土) 23:44:00.79ID:ZH4mYY1r0
>>806
3つ以上あると駄目じゃない?

連結グラフA,B.Cがあったとして
AとBはつなぐことできてもCは繋がらないから全体として2部にならない

って言おうと思ったけど問題文に「追加して得られるグラフ」は
ってあるね
ここも組み合わせが必要になるのか

20万頂点全部が独立したグラフだったら(M=0と書いてるし)
20万×19万9999/2になりそうだな

その場合どうやって回避してるの?
0809デフォルトの名無しさん (ワッチョイ 3b01-44eU)
垢版 |
2022/12/17(土) 23:48:00.53ID:st/Rnmpd0
>>808
なんか勘違いがありそう
そもそも連結じゃなくても二部グラフと呼ぶよ
0810デフォルトの名無しさん (ワッチョイ 3b01-cTaC)
垢版 |
2022/12/17(土) 23:48:21.10ID:TrtUePRr0
みんな当たり前のように解いてて凄えわ
まずは3完出来るようになりたい
0811デフォルトの名無しさん (ワッチョイ d7a4-pKhS)
垢版 |
2022/12/18(日) 00:02:11.91ID:eWCJrp150
今回のはDにしては難しかったし、あんまE問題ぐらいの難度だと認識してよさそうではある
2部グラフの特徴を考えつつ、場合の数を立式して計算しないといけないから、
自分で解いてても、「Dでこんなややこしいことしないといけないの? 方針ミスったか?」って不安になりながら解いてた
0812デフォルトの名無しさん (ワッチョイ 7ee6-e5AJ)
垢版 |
2022/12/18(日) 00:10:19.26ID:FIRAaHDO0
Cがたまに解ける程度の参加数回の灰色です
全探索とbit全探索はたくさんやったので次に何をやったら良いか
最初に覚えるアルゴリズムのおすすめを1つか2つくらい教えてください

ちなみにDPは10問くらいやってみたのですが理解が進まず一旦保留してます
DPの初見問題だと何を当てはめれば良いのか分からずコピペ出来るようなものしか正解出来ません
0814デフォルトの名無しさん (ワッチョイ dabd-CLTW)
垢版 |
2022/12/18(日) 00:18:22.74ID:5nfx19Yz0
>>809
各独立した連結グラフがあったとして、解き方としてはそれぞれの色のパターン4色かけ合わせた解き方をするじゃない?


その組み合わせ数が、例えば全部20万個の点が全てどれとも連結していなくて独立だった場合、
20万から2つの組み合わせを全て調べるっていうようになると組み合わせ爆発が起きるんじゃないかって思ったんだけど
0818デフォルトの名無しさん (ワッチョイ 5334-ZR1D)
垢版 |
2022/12/18(日) 00:37:00.80ID:HDBBZBFh0
>>815
いや、そんなことはないかもです
Union-Findとか累積和はダイクストラよりも分かりやすいと思うので自分のやりやすい順序で埋めてくといいかなと思います!
0819デフォルトの名無しさん (ワッチョイ dabd-CLTW)
垢版 |
2022/12/18(日) 00:37:33.08ID:5nfx19Yz0
>>816

んんんん??
だって連結グラフA,B,Cがあったとして、それぞれの黒点白点を4通りかけ合わせるわけじゃん

結局、ab,bc,caのように 20万C2の組み合わせについて調べないといけないことにならない??
0820デフォルトの名無しさん (アウアウクー MMf3-HAQX)
垢版 |
2022/12/18(日) 01:02:37.00ID:Un2uABCHM
>>819
vector<pair<long long, long long>> v;
に各連結成分の頂点数 {黒, 白} が入ってると思ってくれ

long long ans=0, sum=0;
for (auto [a,b] : v) {
ans += a*b // 同じ連結成分で違う色の2頂点の組の数
ans += (a+b)*sum; // 違う連結成分なら同色の2頂点も可
sum += a+b; // 見終わったやつは足す
}

あとは既に張られてる辺 M 本引けばいい
0822デフォルトの名無しさん (ワッチョイ eabd-tVF/)
垢版 |
2022/12/18(日) 01:23:59.15ID:VXpf7ZWU0
>>820
待ってね
Cプラプラ読んだことないから少し理解に時間がかかりそう
読んでみる
0823デフォルトの名無しさん (ワッチョイ eabd-tVF/)
垢版 |
2022/12/18(日) 01:29:09.60ID:VXpf7ZWU0
>>820
なるほど!!
これすごい


そうか、黒、白で分ける必要がなかったんだね
0824デフォルトの名無しさん (ワッチョイ eabd-tVF/)
垢版 |
2022/12/18(日) 01:37:39.53ID:VXpf7ZWU0
そうか。。普通に感動した
競プロの人たちすごいな


愚直にやるやり方しか思いつかなかった5chやっててよかったって今初めて思ったくらい感動しました
ありがとう
0825デフォルトの名無しさん (ワッチョイ eabd-tVF/)
垢版 |
2022/12/18(日) 01:45:40.04ID:VXpf7ZWU0
>>820

ans+=a*b

ここだけわからない

正方形だったらそれぞれの頂点2だから、その計算だと4になるけど、
繋がっていない頂点数はその計算だと求められなくない?
0826デフォルトの名無しさん (アウアウクー MMf3-HAQX)
垢版 |
2022/12/18(日) 02:04:39.56ID:Un2uABCHM
>>825
「繋がっていない頂点」が何を指してるのか分からない
もう少し厳密に書いてほしい

入力が
4 4
1 2
2 3
3 4
4 1
だとして、連結成分は1つだけで白2黒2
>>820のループは1回だけ回って ans は 4
既に張られてる辺数4を引いて答えは0です
0828デフォルトの名無しさん (ササクッテロ Spb3-GZpS)
垢版 |
2022/12/18(日) 02:13:42.38ID:8rlMlDEcp
>>824
愚直にコードを書いて解けるのはABC-BかCまでで、それ以上の問題は愚直に実装すると問題の制限を超過するからどう工夫するかが問われて応用的になると思っていいよ
ここからアルゴリズムやらデータ構造やらが活躍するんだけど、業務とかで役立つ機会は少ないし(寧ろABC-C以下みたいに愚直に書く機会の方が多い)から役に立たない云々言われることがあるって感じだと思ってる
0830デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
垢版 |
2022/12/18(日) 09:11:43.17ID:oY6X+UMna
>>825
822と計算式違うよ
0だったsumを更新してるだけだよ
0831デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
垢版 |
2022/12/18(日) 09:16:03.59ID:oY6X+UMna
>>825
あ、ごめんその前の計算式か
まずは実際にありえる辺の総数を求めて、
最後に繋がってる本数を引くって事

例題の場合
白2,黒3だから2*3がありえる辺の総数になって、
そこから引かれている4本を引くと答えの2本が出る
重複なしとか前提があるから出来る方法だけど

そう言う私もD解けなかったですけどねw
0833デフォルトの名無しさん (ワッチョイ 2abd-tVF/)
垢版 |
2022/12/18(日) 15:01:37.69ID:MTKzjrMB0
C問題って間違えようがないと思うんだけど、
どういうところで間違えるんだろう
0835デフォルトの名無しさん (ワッチョイ e6e2-Tv+0)
垢版 |
2022/12/18(日) 15:27:06.21ID:jOkKJleE0
なんとなく多重ループ正規表現でやってTLEしても気にしないくらいの寛容性が必要
0839デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
垢版 |
2022/12/19(月) 15:28:31.49ID:mlNqZ/yUa
この競技のレートって絶対評価?相対評価?
レート自体は相対評価に見えるのに、レートに対する評価は絶対評価に見えるのおかしくない?

曲がりなりにもロジックの天才達が作ったシステムなのにこんな欠陥ある?
0840デフォルトの名無しさん (ワッチョイ e6e2-Tv+0)
垢版 |
2022/12/19(月) 15:33:52.49ID:umNN1xHI0
それは思う。正規分布的なレートの平均が200以下で、プログラマ一般では灰色上でかなり優秀ハズなのに茶色が雑魚という事になっておる。茶色でも一通りのアルゴリズムは使えるハズ。
0841デフォルトの名無しさん (ワッチョイ d7a4-pKhS)
垢版 |
2022/12/19(月) 15:42:55.81ID:j+/VmCNx0
社長曰くこんな感じだから、安心していいでしょ
https://twitter.com/chokudai/status/1474258242452987907

AtCoderがそのまま役立つ業務ってだいぶ少なくて、
【評価高】は赤まで、
数理最適化・研究開発
【評価中】は青~水まで、(黄もまれに?)
バックエンドエンジニア・機械学習エンジニア
【評価低~評価無】は水~茶色まで、
その他のITエンジニア

くらいがプラス評価になります。関連度が高ければ高いほど高いレートが評価されやすくなり、逆に低いと低いレートですぐカンストしちゃう、って感じ。

評価低に関しては「コードが書けることが保証されてる」くらいのアピールにしかならないです。
https://twitter.com/5chan_nel (5ch newer account)
0844デフォルトの名無しさん (ワッチョイ e6e2-Tv+0)
垢版 |
2022/12/19(月) 17:19:19.70ID:umNN1xHI0
ABCのFまでで機械学習のスクラッチに関係ありそうな問題を見たことない。なんせ連続量の最適化がほぼ出ない。数理最適化詳しくないけど在庫やポートフォリオの最適化など近いのはヒューリスティックで普通の方は見当違いでは。
0845デフォルトの名無しさん (アウアウクー MMf3-HAQX)
垢版 |
2022/12/19(月) 22:55:51.16ID:R3+0mHMkM
競プロの問題がそのまま何かの業務に役立つと思ってんのかね
もっと根っこのほうの潜在的な適正を測るのにこそ真価を発揮する競技だろ 実際レートが威力を発揮するのは中途より新卒
0846デフォルトの名無しさん (オッペケ Srb3-fGXT)
垢版 |
2022/12/19(月) 23:00:19.44ID:TVP15GFUr
AtCoder Companions 使ってみたけど便利だな。
0848デフォルトの名無しさん (ワッチョイ eabd-tVF/)
垢版 |
2022/12/20(火) 02:42:22.83ID:8HBS9cc/0
ふと思ったんだけど、全域木の全ての2点間の距離の平均ってどうやって求めたらいい?
全域木が直線だったらめちゃくちゃ簡単だと思うけど、複雑に分岐してたら20万ノードくらいあったら無理かしら?
0849デフォルトの名無しさん (ワッチョイ 0f12-Ys1q)
垢版 |
2022/12/20(火) 03:06:34.58ID:qq1PDL7x0
全域ってのがよく分からんが、木なら難しくない
総和が分かれば平均は分かるから総和の話をするとして、各辺についてその辺が距離に寄与する分を足せば良い
これはこの辺を消した時にできる2つの木の頂点数の積だから、木DPを1回すれば求まる
O(|V|)
0850デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
垢版 |
2022/12/20(火) 08:11:20.58ID:njbGKqT7a
>>841
いや、それを憲法のようにずっと変えないのはおかしくない?って言ってるんだが
全体的な底上げがされてるならその限りではないでしょ
2年前の青と今の青って解ける問題が違うよねって話。
0852デフォルトの名無しさん (ワッチョイ dabd-tVF/)
垢版 |
2022/12/20(火) 12:00:03.38ID:WLUxt4qk0
>>848
回答サンクス
木だけど、重み付きなんだよね

計算式がかなり複雑になると思うんだ
0853デフォルトの名無しさん (ワッチョイ ea10-1XWL)
垢版 |
2022/12/20(火) 12:42:02.98ID:GISGVI8J0
重み付きでも難しくないよ まず適当に頂点を選んで、根にする
根からdfsをして、各頂点を根とする部分木のサイズを計算する(nums[v]: vを根とする部分木のサイズ とする)

辺(u,v,w) (頂点uとvを結ぶ、重みwの辺)
が2点間の距離の総和(=sum(dist(u,v)) (1≤u<v≤N))に寄与する量は、
uとvの内、根から遠い方がvなら、w * (N-nums[v]) * nums[v]
根から遠い方がuなら、w * (N-nums[u]) * nums[u] になる

典型だから、ABCに転がってないか探したけど見当たらないな(CFならありそう)
0855デフォルトの名無しさん (ワッチョイ ea10-1XWL)
垢版 |
2022/12/20(火) 13:39:41.85ID:GISGVI8J0
kotlin読めないけど、合ってると思う
min(subtreeSize[edge.source], subtreeSize[edge.target])のところが場合分け減らせてて良いね
0856デフォルトの名無しさん (ワッチョイ e6e2-Tv+0)
垢版 |
2022/12/20(火) 15:11:54.66ID:Nn7CI7yh0
>>850
atcoderの立場として発言してるだけかと。
アルゴリズムの研究者が水色とかあるっぽいし、競プロにフィットしなければ緑以下が普通だろうけど、時間で競ってパズル色も強すぎる競技と、アルゴリズム力は結構離れてると思う。
0862デフォルトの名無しさん (ワッチョイ dabd-CLTW)
垢版 |
2022/12/20(火) 23:20:27.24ID:rS70Lc8l0
>>853
なるほどおおおお
ただ、理解できそうで理解できない
確かにその式だと、平方完成したときに距離がn/2で最大になることがわかりそう。
ただ、なぜx*(N-x)になるのかがいまだに理解できていない。。

確かに遠い方を選べばx = Nにはならないから、0にはならない、これはわかるが。。
例えば直線だった時に最初の根で中点を選んでしまったとき、
根だから当然部分木のサイズはNになり、N回の寄与しかできない
中点だからもっと大きい数寄与できるはずでは。。
混乱してきた。。
0866デフォルトの名無しさん (ワッチョイ dabd-CLTW)
垢版 |
2022/12/20(火) 23:43:39.65ID:rS70Lc8l0
一人で連投すまない
なるほど!!めっちゃ理解した
木構造であっても直線であっても、そのノードが双方向から挟まれてるとしてどの位置にいるかっていうことが一定になるんだね

いや凄いな、典型っていうけどこういうの当たり前に理解してる人たちなのか。。
感動した
0871デフォルトの名無しさん (ワッチョイ ea10-1XWL)
垢版 |
2022/12/21(水) 04:04:43.89ID:ZV6Qma6k0
中央値は結構難しいような
中央値だから二分探索を使うというのは良いと思っていて、でも二分探索の判定部分で、
長さx以上のパスの個数 を計算する必要があって、これを計算するのは難しい気がする
0873デフォルトの名無しさん (ワッチョイ ea10-1XWL)
垢版 |
2022/12/21(水) 05:22:01.10ID:ZV6Qma6k0
自分はそもそも重心分解を知らなかった 正しいか分からないけど、
重心cからbfsをして、各頂点v(1≤v≤N)までの距離d[v]を求めて、各d[v]を座標圧縮してBITに記録する
各d[v]について、d[u]≥x-d[v](1≤u≤N)となるuの数がBITで計算できる (x-d[v]もd[v]とまとめて座標圧縮する)
このままだと重心から見て、同じ部分木に属するパスを含んでしまうから、
重心から見て、vと同じ部分木に属する頂点uについてのみ、d[u]を座標圧縮してBITに記録して、
d[u]≥x-d[v]となるuの数を引く、とかで合ってるかな?
0875デフォルトの名無しさん (ワッチョイ 3b01-Qhcs)
垢版 |
2022/12/21(水) 13:26:19.80ID:M6bQfxl+0
重心からの距離をソートして頭と尻からそれぞれ見ていけばデータ構造使わなくてもカウントはできる
(結局ソートでlogつくが)

二分探索と分割統治の分を合わせてlog3つになるのかな
0876デフォルトの名無しさん (ワッチョイ ea10-1XWL)
垢版 |
2022/12/21(水) 13:55:04.06ID:ZV6Qma6k0
確かに 座標圧縮もBITもいらないか
O(N * (log^2)N * log(Nmax(w))) か (重すぎる)
0879デフォルトの名無しさん (ワッチョイ dabd-CLTW)
垢版 |
2022/12/21(水) 17:48:02.52ID:ftIf9M8u0
重心分解と座標圧縮について調べてみた

重心分解の条件が部分木が全てN/2以下になっているっていうことは、直線の場合が最大でっていう理解であってるよね?(直感的には明らかだけどなぜn/2以下ならといえるのか厳密な定義があれば教えてほしい)


後、画像圧縮も調べてみたけど、これってどういうときに使うものなんだろう
0881デフォルトの名無しさん (ワッチョイ eabd-tVF/)
垢版 |
2022/12/22(木) 00:44:54.15ID:zgSSk2yY0
競プロ力って言うか、実務とかのプログラミング力ってどうすれば鍛えられるかな
持ってる知識は同じだとして
基礎体力が強い方が勝つんだろうけど、これってワーキングメモリの保持力だったりするんだろうか
0882デフォルトの名無しさん (ワッチョイ d7a4-pKhS)
垢版 |
2022/12/22(木) 01:03:51.33ID:ac9+4gRj0
実務とかのプログラミング力、っていわれても環境によって求められるものが違いすぎてなんともだけど、きみがいうプログラミング力ってなんなん?
個人的に「プログラミング力がある」って感じるひとは、それに比例して知識量もあるし、知識が同じなら差がつくとはどうしても思えない

なかには知識は全く同じはずなのにプログラミングすげえ!みたいな天才マンがいるの?
そんな人に出会ったことないし想像できない
というか仮にいたとしても技巧的なコードばかり書いててメンテできなそう
0886デフォルトの名無しさん (アウアウウー Sa9f-8Cre)
垢版 |
2022/12/22(木) 05:40:46.21ID:0WpPKX01a
例えば高専で、JavaScript, Python をやっていても、
なんだ、Ruby on Rails, Docker, AWS Solution Architect もやっていないのかと、
ウェブ系企業では全く相手にされない

そういう香具師でも、英語さえ出来れば、GAFAM では採用される。
まあ、競技プログラミングもそこそこ出来るし、まあ雇っても良いかという感じ

印象としては、Linux のシステム構築運用できない香具師が、GAFAMに受かる感じ
0887デフォルトの名無しさん (ワッチョイ 0f12-Ys1q)
垢版 |
2022/12/22(木) 06:18:15.61ID:zRh15pQp0
英語力はchokudaiが既に反例だから違うだろ
英語力がある方が有能だけど
実務とかのプログラミング力はどれだけ色々なことに手を出してきたかだと思うな、凄い奴は経験してる分野が多岐に渡ってて、何聞いてもそれなりに理解してる答えが返ってくる
0888デフォルトの名無しさん (テテンテンテン MMe6-d6mb)
垢版 |
2022/12/22(木) 08:53:39.96ID:gibqUWi2M
別にGAFAM受かっているから優秀とは思わないけど、DockerやAWSみたいな個別的な技術の知識より学術的な情報科学に強い人材の方を重視しているから、一見モダンな知識がないように見えるだけなのでは?
そんなの入社後必要に迫られて勉強すればすぐ身につくようなものじゃないか
0889デフォルトの名無しさん (テテンテンテン MMe6-d6mb)
垢版 |
2022/12/22(木) 09:04:09.07ID:gibqUWi2M
CodeForcesの問題文は謎の登場人物、ストーリーが面倒くさいだけで、別に競プロの問題を抽出して理解するのにそんなに英語力いらない気がするな
英語圏の中学生向けの小説の方が難しいと思うわ
0890デフォルトの名無しさん (ワッチョイ 73bd-ZR1D)
垢版 |
2022/12/22(木) 09:48:19.57ID:lVkIDQyd0
>>879
重心探索のアルゴリズムで重心が定まったとき、重心とされた頂点の親の方の連結成分の成分数がn/2以下と言えるのか?という疑問かな?
であれば、重心を根とした部分木の頂点数はn/2より大きいから、親の方の連結成分=重心を根とした部分木の頂点数はn/2以下になるって感じかな?(全然違う疑問だったら言ってくれ)

あと、画像圧縮と座標圧縮は別物だね
座標圧縮の方が簡単で競プロで頻出
0891デフォルトの名無しさん (ワッチョイ 3b01-GZpS)
垢版 |
2022/12/22(木) 09:54:55.85ID:Xj8jM7zP0
座標圧縮って競プロだと当然のように使われるけど実際に業務とかでも活用されてるのかな(まあ大した実装量じゃないからわざわざ名前をつけてないだけなのかもしれないけど)
0896デフォルトの名無しさん (ワッチョイ 17bd-K3OV)
垢版 |
2022/12/24(土) 10:36:20.69ID:cLKr3UoH0
クリスマスイブだけど今日も競プロ参戦するぜ
0897デフォルトの名無しさん (アウアウウー Sa71-Baow)
垢版 |
2022/12/24(土) 12:37:53.51ID:kMNz+jCza
プログラムで活躍としては
センスのみ<知識のみ<<<知識+センス
なんだよ
これで勘違いが起きることが多い

知識のみしかもってないと一見最上なんだけど、実は何も産み出さない

知識のみでも誰かがセンスを持ってると一気に有益なものが産み出される
つまりピースを埋められる存在になれるかどうかで活躍は変わってくる
0900デフォルトの名無しさん (ワッチョイ 2b01-JTql)
垢版 |
2022/12/24(土) 22:46:01.54ID:xqB/wOMj0
E解けないからFから解いたんだけどFもFで計算量的に大丈夫なのか?って疑ってた最初の方に思いついた解法(ユーザー解説の奴)が他の解法で悩んだ挙句普通に通ったからあまりスッキリしない
0901デフォルトの名無しさん (アウアウウー Sa71-Baow)
垢版 |
2022/12/24(土) 22:55:16.29ID:EtphqWYEa
D計算時間を解決できなかった
配列とコンテナで管理するのが速いのかー。
アイデアはあったけどどれが最適かわかんなかった
0902デフォルトの名無しさん (ワッチョイ 3be2-8R1x)
垢版 |
2022/12/24(土) 23:18:12.92ID:FlOHVYkZ0
Eのdp複雑すぎて草
0910デフォルトの名無しさん (ワッチョイ 3be2-8R1x)
垢版 |
2022/12/25(日) 13:12:05.09ID:RXfOQg060
昔青だった人が水色なんだからビギナーコンテストはmax水色~緑下で十分すぎる
0911デフォルトの名無しさん (アウアウウー Sa71-Baow)
垢版 |
2022/12/25(日) 14:00:20.35ID:Rt4BkDBba
AGCって1200無くても受けて良いの?
暇だし受けてみようかな
0913デフォルトの名無しさん (スッップ Sd57-2Cf3)
垢版 |
2022/12/25(日) 15:41:34.02ID:dPtGXdEed
ABC上位中国勢ばかりやんけ
少し前より青→黄の難易度かなり上がってそう
0914デフォルトの名無しさん (アウアウウー Sa71-Baow)
垢版 |
2022/12/25(日) 19:32:07.15ID:90srlnYwa
>>912
あー、レートつかないのか。なら後日でも良いか
0915デフォルトの名無しさん (ワッチョイ 8d01-s0Sd)
垢版 |
2022/12/25(日) 19:34:29.29ID:pw/2PAh60
人類の5人に一人が中国人だから。
石を5個投げれば一つは中国人に当たる。
0916デフォルトの名無しさん (ワッチョイ 1b5f-2Cf3)
垢版 |
2022/12/25(日) 19:45:56.78ID:xnbiQd6b0
rated上位はマジで中国人がほとんど
0917デフォルトの名無しさん (ワッチョイ 5363-PQsC)
垢版 |
2022/12/25(日) 19:48:23.57ID:X45g+HJH0
理由はしらんけど、どうやら中国勢は現在のレートが実際の実力に追いついてないひとが多すぎるから
だから中国人がたくさん参加するとパフォがちょっと渋くなるかもしれんなあ
0920デフォルトの名無しさん (ワッチョイ 5363-PQsC)
垢版 |
2022/12/25(日) 19:56:16.55ID:X45g+HJH0
>>918
塾はあるらしい
情報オリンピックで活躍できたら、好きな大学に入れるから高校生ががんばるらしい

参考書については、おれたしか2008年くらいにICPC対策の英語の参考書みたいなの買ったことあるんだけど、たしかそのオリジナルが中国語だったはず(俺が買ったのは英語に翻訳されたバージョン)
まあ今ならきっとかなりたくさんあるでしょ
0921デフォルトの名無しさん (ワッチョイ 8d01-s0Sd)
垢版 |
2022/12/25(日) 20:13:44.45ID:pw/2PAh60
なんだ塾があるのか。
勉強したらできて当たり前だな。
中国人はしょせん中国人にすぎないな。

↑って、ネトウヨが言い出しそう。
0923デフォルトの名無しさん (ワッチョイ 8d01-s0Sd)
垢版 |
2022/12/25(日) 20:40:15.68ID:pw/2PAh60
ネトウヨって結局、清和会のために統一教会を支持してる奴らだろ?
国益だの愛国だの言ってるけど、その国というのは韓国のことだろう。
0924デフォルトの名無しさん (ワッチョイ 3be2-8R1x)
垢版 |
2022/12/25(日) 21:12:16.73ID:RXfOQg060
ITは超左だからそういうのはないんじゃ
0926デフォルトの名無しさん (ワッチョイ 8d01-s0Sd)
垢版 |
2022/12/25(日) 22:17:25.74ID:pw/2PAh60
>>925
いまは社会科で習わないのか?
ネトウヨは自民党清和会、つまり韓国朴正煕派閥。
パヨクは社会党、つまり朝鮮総連派閥。
0928デフォルトの名無しさん (ワッチョイ 8d01-s0Sd)
垢版 |
2022/12/25(日) 22:43:35.02ID:pw/2PAh60
>>927
金大中暗殺未遂事件とかも習わないのか?
0929デフォルトの名無しさん (ワッチョイ 8d01-s0Sd)
垢版 |
2022/12/25(日) 23:25:15.62ID:pw/2PAh60
>>927
元々ネトウヨを作ったのが韓国人だろ。
いいように操られやがって。
0931デフォルトの名無しさん (ワッチョイ 8d01-s0Sd)
垢版 |
2022/12/25(日) 23:32:02.62ID:pw/2PAh60
>>930
なんか出せよ。
0932デフォルトの名無しさん (ワッチョイ 8d01-s0Sd)
垢版 |
2022/12/25(日) 23:45:09.06ID:pw/2PAh60
統一教会は日本で、ゆとりある教育を提唱しているが、韓国では全く逆のことを言ってるからな。
騙されるなよ。
0933デフォルトの名無しさん (ワッチョイ 8d01-s0Sd)
垢版 |
2022/12/25(日) 23:46:50.19ID:pw/2PAh60
三角関数は高度な数学じゃないぞ。
全員が知っていなければならない基本的な算数だからな。
統一教会派の国会議員に騙されるなよ。
0955デフォルトの名無しさん (ワッチョイ 477c-It8h)
垢版 |
2022/12/26(月) 18:49:12.07ID:KxFT/wbk0
>>954
詳しい経緯は話してないけど、少し前のツイートで「ICPCのメンバーとは決別した」って言ってたでしょ
今日も練習すっぽかしたって自分で言ってるしチーム内でうまく言ってないんじゃないの
0960デフォルトの名無しさん (テテンテンテン MM97-EBNJ)
垢版 |
2022/12/26(月) 19:25:08.31ID:TDmnxh2KM
さっき考えついた問題

はじめ、頂点1つの根付き木(当然その頂点が根)がある。これからN-1の頂点をこのグラフに以下の手順で一つずつ追加する:

・P/Qの確率で新たに加える頂点を根とした新たな根付き木を追加する。辺は加えない。
・1-P/Qの確率で、既にグラフに存在している頂点の一つを一様ランダムに選び、その頂点の子として新たに頂点を加える。

なお、帰納的にこのグラフは根付き木の森になる。このとき、以下の期待値を求めよ。

・根付き木の頂点数の平均値
・根付き木の頂点数の最大値
・根付き木の高さの平均値
・根付き木の高さの最大値

それぞれどの程度の制約でできるか。
0964デフォルトの名無しさん (ワッチョイ adbd-MkkF)
垢版 |
2022/12/26(月) 21:33:49.83ID:0EESOEy50
>>960
これ、できた森ごとに平均とったり最大取ったりするって話だよね?
例えば、頂点数が3の木が2つ、頂点数が2の木が1つの森ができたという状況なら、平均は8/3、最大は3みたいな
一番上はO(N)だけど、他はすぐにはよさげな方法が思いつかないね
0965デフォルトの名無しさん (ワッチョイ adbd-MkkF)
垢版 |
2022/12/26(月) 21:35:18.96ID:0EESOEy50
例えば二個目だけど、f(n,m,k)をN=n、最大頂点数m、根付き木数kである確率として、f(n,m,k) = Σ_{i<n/m} Σ_{j<n} 何かの係数 * f(n-im,j,k-i)みたいな風なDPだったりするかね?
0967デフォルトの名無しさん (ワッチョイ 9d10-s0Sd)
垢版 |
2022/12/26(月) 22:32:21.55ID:89yBpVXU0
1つ目の問題、操作後の木の数の期待値が1+((N-1)P/Q)個で頂点数がN個だから木の頂点数の平均はNQ/((N-1)P+Q)じゃね?って思ったけどもしかして俺トンチンカンな事言ってる?
0969デフォルトの名無しさん (ワッチョイ adbd-MkkF)
垢版 |
2022/12/26(月) 22:49:50.80ID:0EESOEy50
>>967
一般にE[1/X] != 1/E[X]なので、それは成立しないかも?
あ、でも、自分のO(N)解ってp = P/Qとして、
Σ_i p^i (1-p)^(N-1-i) comb(N-1, i)/(i+1)を計算するってやつで、積分使えそうな形だからO(1)でもできそうだね
0971デフォルトの名無しさん (ワッチョイ adbd-MkkF)
垢版 |
2022/12/26(月) 23:05:37.69ID:0EESOEy50
てか、積分がどうのみたいな話もいらなくて、
N Σ_i p^i (1-p)^(N-1-i) comb(N-1, i)/(i+1)
= p^(i+1) (1-p)^(N-1-i) comb(N, i+1) / p
= (1-(1-p)^N)/p
かね
なんかすごく有名な話から自明に導かれる気がするけど思いだせない
0977デフォルトの名無しさん (テテンテンテン MM97-EBNJ)
垢版 |
2022/12/26(月) 23:34:21.03ID:0neW5JWbM
>>964
>これ、できた森ごとに平均とったり最大取ったりするって話だよね?
>例えば、頂点数が3の木が2つ、頂点数が2の木が1つの森ができたという状況なら、平均は8/3、最大は3みたいな

その認識であってる
0979デフォルトの名無しさん (ワッチョイ 2b01-JTql)
垢版 |
2022/12/27(火) 00:59:43.64ID:q4+xdjXF0
自分もこの前問題思いついた(既出かもしれない)んだけど、
N個の区間が与えられて、Q個の区間変更クエリに対して毎回区間スケジューリング問題を考える(重ならない区間の数の最大値を答える)って感じの問題なんだけど、これってN、Q≦2×10^5でも出来るかな?

区間に重みが無い場合は差分考えればいけそうな感じもするけど重みがつくと流石に厳しい?
0981デフォルトの名無しさん (ワッチョイ c310-It8h)
垢版 |
2022/12/27(火) 07:21:55.50ID:4MTJolmy0
どういう更新をするのか分からないけど、重み無しは解けない?
左からの区間スケジューリングと右からの区間スケジューリングを前計算しておけばいけると思う
重み有りの区間スケジューリングは自分は初めて聞いた 更新無しだとセグ木+DPとか?
重み有りでも左と右から前計算しておけば解けそうだけどなあ
0982デフォルトの名無しさん (ワッチョイ c310-It8h)
垢版 |
2022/12/27(火) 07:30:35.83ID:4MTJolmy0
あーでも、更新クエリで区間が全然違う場所に移動することを考えると、前計算の意味ないか
嘘解法だった
0983デフォルトの名無しさん (ワッチョイ 2b01-JTql)
垢版 |
2022/12/27(火) 07:53:19.24ID:q4+xdjXF0
重みありの区間スケジューリングは端点で座標圧縮してイベントソートした上でDPすれば解ける(蟻本のintervalsっていう問題のk=1の場合でも紹介されている)
一応クエリはオフラインでも可能なものを考えてたんだけどどうだろう
0990デフォルトの名無しさん (テテンテンテン MM97-EBNJ)
垢版 |
2022/12/28(水) 10:16:36.58ID:Pwm0wo/5M
知らない人向けに説明すると、この「くんer」というのはプログラマー板の方で特定の競プロerにずっと粘着し誹謗中傷を繰り返していたやつで、IDなしスレだったのをいいことに自演連投していた疑惑が濃厚
0991デフォルトの名無しさん (ワッチョイ aff8-s0Sd)
垢版 |
2022/12/28(水) 10:28:57.44ID:7xHkkVHZ0
くんerは結構いるっぽいぞ
twitterですら3‐4人見たことあるし
何が楽しいんかね
0995デフォルトの名無しさん (ワッチョイ 07b9-+Dix)
垢版 |
2022/12/28(水) 11:55:15.82ID:a6/n2za+0
そんなこといっても話題にしちゃうやつがいるから、別板の競プロスレでは困ってた
でもここならワッチョイのおかけでそれほど騒がれないだろうから比較的大丈夫かと
0997デフォルトの名無しさん (ワッチョイ 17e6-dxp0)
垢版 |
2022/12/28(水) 22:32:17.07ID:NhN6GB+q0
atcoderのABCのBやC問題までの話ですが
提出で他者のコードと違いが無いのにほぼ毎回5ms前後差が付くのは誤差なんでしょうか?

例えば最速の1msのコードをコピペして提出しても差が出ます
特にテストケースの1つ目が極端に遅くて例えば10msで
それ以降は全て1msか2msなのに1つ目が10msなので結果が10msになってしまいます
気にするレベルでは無いと思いますが素朴な疑問です
0998デフォルトの名無しさん (ワッチョイ adbd-MkkF)
垢版 |
2022/12/28(水) 22:51:38.98ID:wMJvQkVC0
競プロの実行時間にはある程度誤差がつくよ
だから時間制限ギリギリのコードが誤差で落ちないように、TLEが出ても内部的には3回ジャッジし直してる
あと最初のケースだけ遅いというのもよくある(立ち上げ時のオーバーヘッド?)
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 87日 9時間 22分 12秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況