競技プログラミング総合スレ 66

レス数: 479

概要: せっかくG解けたのに1分遅れになってしまった…
No.351
せっかくG解けたのに1分遅れになってしまった…
No.352
アンレでしょ、ね?ね?
No.353
ところでC正解者少なすぎ
No.354
10:10くらい?から今(10:50)までずっとatcoder開けませんが、同じ人いるかな
なんてツイートしてるひともいるね
No.355
このコードがaws環境でsegmentationfaultになる原因わかる人いる?
ちなみにatcoderではこのコードでACを取れたので致命的な間違いがあるわけでは無さそう
int main(){
ll n, q, dp[39][100009], A[100009];
cin >> n >> q;
rep(i, 1, n){
cin >> A[i];
dp[0][i] = A[i];
}
rep(i, 1, 29){
rep(j, 1, n){
dp[i][j] = dp[i-1][dp[i-1][j]];
}
}
rrep(i, q){
ll x, y;
cin >> x >> y;
ll cur = x;
Rep(j, 29, 0){
if((y & (1 << j)) != 0) cur = dp[j][cur];
}
cout << cur << endl;
}
}
No.356
どこかおかしい部分あるかな
No.357
スタックサイズ
No.358
>>355

マルチは市ね
No.359
Twitterのpaizaの広告とかに必ず現れる
「入力値をチェックしていない」
という返信をつける人は、具体的に何をチェックして、どう処理するの?
No.360
たとえば、
・Nは偶数
・AとBの合計はN未満
といった制約は、実際のプログラムならチェックして例外をスローする
しかし、
「nが整数値じゃない場合をチェックしていない」
みたいなよくわからない難癖をつける人もいる
整数値じゃなければint型にパースするときに、ほとんどの言語で例外になるからいいのでは
No.361
>>355

ll で dp[39][100009], A[100009];
何バイトあるん
No.362
今回は簡単めでしたね
G解けなかったけど
No.363
コンテスト初参加
C問題があまりにも酷いと思った
20分くらいかけて、priorityqueue<pair<double、int>> に値をプッシュする時にpairのsecondの方にマイナスを付ければ良いことに気がついたもののWA
何を試してもWAで、doubleの精度に問題があるんじゃないかと思って、ネット検索をしたら、long doubleという型があることを知り、試してみたら無事AC
C問題で時間とメンタルを削られてD問題は諦めた
初参加とはいえ茶パフォはあまりに脳障害すぎるだろ
No.364
今回のC問題でpriorityqueueを使ったんだけど、priorityqueue<pair<double、int>> に値をプッシュする時、pairのsecondの方に-をつけて取り出す順番を工夫するのって典型?
ちょっとした閃きだけど思いついた時は俺ちょっと頭いいんじゃねって思っちゃった
その後ものの見事に脳障害っぷりを晒してしまったけど
No.365
その発想は天才だよ、才能あるね
No.366
マジレスすると符号付けて逆順にすることで実装をシンプルにするのはかなりの典型です
No.367
むしろそのマイナスにするのが主題と言ってもいいくらい
No.368
C++ってFraction無いんだっけ?
まあ無くても自分で通分すれば済む話だが
No.369
なるほど、ただの典型だったか…
ただ、その典型を自分で思いついたのはちょっと嬉しい
No.370
先程 D問題をACしてきた
結構簡単だし、C問題を普通に解けていたら多分四完出来た
今回のC問題みたいに本質的じゃない部分(long doubleという型を知っているかどうかみたいな)を問うのは本当にやめた方が良いと思う 問題の質がシンプルに低い
No.371
小数の精度についての理解を問うなかなかの良問だと思ったけどね
No.372
浮動小数点数での出力を求められていない場合に浮動小数点数を使うのはアンチパターン
分数を管理する構造体を持ち出したり適切な比較関数を書いたりして対処するべき
No.373
前回のC問題はただめちゃくちゃ面倒なだけでアレだったけど今週のC問題は何も悪くないし非本質的でもないだろ
浮動小数点数は誤差に気をつけるべきなんて競プロでは身につけておくべき典型知識だし競プロ外でも浮動小数点数の仕組みは知っておくべきだしm
No.374
強いて言うならlong double型で無理矢理通すような解答を弾けるような設定にして比較関数やら有理数型を表す構造体やらの整数しか登場しなくて誤差の心配がない解答のみが通るようにしてほしかったがCでそれは酷かもしれない
No.375
long double使わなくても解けるし、それ知らないと解けないと言ってる人のレベルが低すぎるだけ
No.376
E問題の意味が分からないんだが。
俺の考えたアルゴリズムは、
Mが0,1,2になる数、
Eが0,1,2になる数、
Xが0,1,2になる数、
を全て数えて
各組み合わせ27通りについて、
mex×場合分けの数
っていうやり方をしたんだがサンプル3の問題からしてそもそも合わない
日本語下手で説明難しいからコードを見てほしい。
https://atcoder.jp/contests/abc308/submissions/43167367

このやり方がなぜいけないのかわからない
コンテスト中「E問題いけるやん!」と思ってただけに絶望だったわ、はぁ。。
No.377
関係ないけど、dictのkeyで回せば
if k not in dic["X"]:
continue
みたいなのいらなかったな
No.378
i<j<k
No.379
>>378

ないてもいい?
No.380
雑なやり方だけど、
「E」に来た時点で、それより前のMの各012の数と
それより後のXの「012」の数を保持しておけば簡単に解けたわけか
No.381
Cみたいなのが普通に小数にしてソートして解けないとか、現実的に不要な精度を求めてるからじゃ。工夫して分数を比較とか一般的なプログラミングではあり得ない。
No.382
一切の誤差が許容できないケースは業プロでもあり得ると思う
No.383
COBOL使われてそう
No.384
普通に業プロでも浮動小数点の誤差でやらかすのあるあるだけどな
とくに一致判定しだすと大抵はテストを通って後でトラブる
No.385
むしろ業プロはバグだらけで運用でカバーするのが当たり前だか?
バグなくなるまでQAとデバッグしてたらいつまでたっても終わらない
No.386
当たり前だが?
No.387
>>381

あり得ないのは誤差があることを知りながらdoubleを使うことだぞ
誤差が許容できないとわかってて整数で誤差のない計算ができることもわかってるんだから整数で計算するべき
わかってないお前が無能というだけ
No.388
しかし、スポーツとかゲームの勝率を管理するシステムがあったとして、
小数点以下6桁以上の精度のために内部的に分子分母を整数で別々に保存してるとは思えないのだがwww
No.389
思えよw
勝ち数と試合数を保存してるに決まってるだろw
No.390
逆に勝率だけ保存してその後の試合の結果どうすんの?w
過去の勝率からどうやって現在の勝率を計算するんだよw
No.391
それは当然してるけど、orderbyで引き出すときに、勝率をatcoder流でソートするとか多分ないw
ワテが知らないだけで分数流ベイズ統計学とかあるのかw
No.392
お前の我流が間違ってるだけだぞ
No.393
普通に業務でもあり得るんだよなぁ
No.394
>>390

n 試合後に
現在の勝率 R(n)「だけ」が判っている場合
n+1 試合後の勝率 R(n+1) は
n+1 試合目の勝ち負けが r (勝ちなら 1 負けなら 0) とすると
R(n+1) = (R(n) x n + r) / (n + 1)
で良いんじゃね
もちろん誤差は蓄積するよ
こんなこと一々描くのも恥ずかしいレベル
No.395
>>394

そのnは試合数じゃないのかw
こんなこといちいち書かせるなよw
No.396
もう少し比較条件が複雑化されて
operator<なりstd::sortに渡すラムダ式をちゃんと定義しないと駄目なら一転して教育的とかいいそう
No.397
ARCゼロ完 地頭悪すぎる ガチで死にたい
No.398
昨日はABC三完
今日はARCゼロ完
A問題は解けそうだったけど結局最後までAC出来ず
頭が悪すぎる
IQ1しか無いよ俺は
No.399
数理能力皆無の知的障害者です
No.400
・解説開くとTwitterに飛ぶやつあるが、アカウント持ってないから見れない。
・今日のARC出題者はPCT。何千人の大人が高校生の手の上で転がされていると思うと笑える。