↑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
探検
競技プログラミング総合スレ 64
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ラクッペペ MM7f-osoq)
2022/10/02(日) 17:43:58.66ID:FqAfPtIrM782デフォルトの名無しさん (ササクッテロ Sp1b-7eHa)
2022/12/13(火) 05:21:16.73ID:uiBmFvT2p こどふぉ来週の月曜日までほぼ毎日コンテストあるんだけど過密すぎるでしょ
783デフォルトの名無しさん (ワッチョイ 7f46-5DNi)
2022/12/13(火) 09:46:33.18ID:HgDhzteS0 コドゲやるぞやるぞ
784デフォルトの名無しさん (ササクッテロ Sp1b-7eHa)
2022/12/16(金) 16:05:11.86ID:2WRHo5T/p 蟻本4.4章の巡回スケジューリング問題(円環上での区間スケジューリング問題)のソートを除いたO(N)解法って何?
円環を切って2つ繋げて区間にして考えるのかなって思ったけど上手くいかない気もするし元の問題が見つからないから確かめることも難しい
円環を切って2つ繋げて区間にして考えるのかなって思ったけど上手くいかない気もするし元の問題が見つからないから確かめることも難しい
785デフォルトの名無しさん (ワッチョイ a701-uLmq)
2022/12/16(金) 20:10:17.03ID:R8AxMjl90 各区間を頂点として、蟻本の解法の中で構築してるnextを辺としたグラフを考えると、なもりグラフになっててサイクルをちょうど一つだけ含む
答えはこのグラフ上のパスで表せる
サイクルに含まれない頂点を含む解を考えると、パスの始点と終点を一つ進めたものも有効な解であることが示せるので、
全ての頂点がサイクルに含まれるようなパスだけ考えればいい
あとはサイクルの上でしゃくとり法みたいなことやればできそう
で合ってるかな……?
答えはこのグラフ上のパスで表せる
サイクルに含まれない頂点を含む解を考えると、パスの始点と終点を一つ進めたものも有効な解であることが示せるので、
全ての頂点がサイクルに含まれるようなパスだけ考えればいい
あとはサイクルの上でしゃくとり法みたいなことやればできそう
で合ってるかな……?
786デフォルトの名無しさん (ワッチョイ a701-uLmq)
2022/12/16(金) 21:07:39.53ID:R8AxMjl90 しゃくとり法しないでもサイクル上の適当な頂点から始めて極大な解を一つ取れば大丈夫か
787デフォルトの名無しさん (ササクッテロ Sp1b-7eHa)
2022/12/16(金) 22:19:14.38ID:1iEDLF9Cp >>785
確かにグラフ上で考えると求める区間の選び方はサイクルに含まれることが必要で、辺の数=頂点の数と全ての頂点の出次数1から全体としてはなもりグラフ的な感じにはなりそうだからだいたいその方針で良さそうっぽいな
ありがとう
確かにグラフ上で考えると求める区間の選び方はサイクルに含まれることが必要で、辺の数=頂点の数と全ての頂点の出次数1から全体としてはなもりグラフ的な感じにはなりそうだからだいたいその方針で良さそうっぽいな
ありがとう
788デフォルトの名無しさん (ワッチョイ c3b0-+kRg)
2022/12/17(土) 21:30:59.31ID:1O9afRlw0 全完出ました
789デフォルトの名無しさん (ワッチョイ c3b0-+kRg)
2022/12/17(土) 21:44:36.74ID:1O9afRlw0 2位と3位が2秒差
790デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
2022/12/17(土) 22:41:47.95ID:Ougsnu4Va Dさぁ、過去問から漁れないと時間的に無理だろ
791デフォルトの名無しさん (ワッチョイ e6e2-Tv+0)
2022/12/17(土) 22:48:54.79ID:8O7j2b6E0 D通ったけど難易度高すぎ。E,Fの位置にしとけと。
792デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
2022/12/17(土) 22:49:30.45ID:Ougsnu4Va つーか、Dって
連結がない頂点がある場合、答えは0じゃないよね?
追加したら二部グラフになりえると思うんだけど
このケース考えて完全に迷走した
連結がない頂点がある場合、答えは0じゃないよね?
追加したら二部グラフになりえると思うんだけど
このケース考えて完全に迷走した
793デフォルトの名無しさん (ササクッテロ Spb3-GZpS)
2022/12/17(土) 22:51:41.65ID:I7m2bma6p E全域木になるの言われたらそうなんだけど見えなかったし精進が足りて無いのかな
Dは数ヶ月前だったらEに置いてあった気もするしインフレしすぎ
Dは数ヶ月前だったらEに置いてあった気もするしインフレしすぎ
794デフォルトの名無しさん (ワッチョイ d7a4-pKhS)
2022/12/17(土) 22:53:14.13ID:8NnsdriJ0795デフォルトの名無しさん (ワッチョイ d7a4-pKhS)
2022/12/17(土) 22:53:56.18ID:8NnsdriJ0 あ、N*2ではないわ・・・、すまん
796デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/17(土) 22:54:02.71ID:ZH4mYY1r0 D問題
やり方として
・まずは連結グラフに分解する
・連結グラフが3以上だった場合は無理判定をする
・そして各連結グラフ毎に
とりあえず各頂点に黒と白を割り振って、
このグラフそのものが2部グラフになっているかを判定する
2部グラフになっていた場合に、各連結グラフごとに自信が持ってる
反対の色の頂点数-頂点数をanswerに足していく
そして、各連結グラフについては
グラフ1の黒数×グラフ2の黒数
グラフ1の黒数×グラフ2の白数
グラフ1の白数×グラフ2の黒数
グラフ1の白数×グラフ2の白数
の4つを足す
っていう解法を思いついたんだけど、グラフ問題といたことなかったから、各頂点がどの気に属しているかっていう判定ができなかった
俺のやり方、・まずは連結グラフに分解する
さえクリアできテレバこのやり方であっていた?
やり方として
・まずは連結グラフに分解する
・連結グラフが3以上だった場合は無理判定をする
・そして各連結グラフ毎に
とりあえず各頂点に黒と白を割り振って、
このグラフそのものが2部グラフになっているかを判定する
2部グラフになっていた場合に、各連結グラフごとに自信が持ってる
反対の色の頂点数-頂点数をanswerに足していく
そして、各連結グラフについては
グラフ1の黒数×グラフ2の黒数
グラフ1の黒数×グラフ2の白数
グラフ1の白数×グラフ2の黒数
グラフ1の白数×グラフ2の白数
の4つを足す
っていう解法を思いついたんだけど、グラフ問題といたことなかったから、各頂点がどの気に属しているかっていう判定ができなかった
俺のやり方、・まずは連結グラフに分解する
さえクリアできテレバこのやり方であっていた?
797デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/17(土) 22:55:32.46ID:ZH4mYY1r0 cまでは10分ちょっとでクリアできるようになったけど、
dがここ一か月難しい気がする
酒のみすぎかしら
dがここ一か月難しい気がする
酒のみすぎかしら
798デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
2022/12/17(土) 22:57:13.17ID:Ougsnu4Va >>796
そう思ったけど、解説にはその点が触れられてない
そう思ったけど、解説にはその点が触れられてない
799デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
2022/12/17(土) 22:59:39.92ID:Ougsnu4Va いや、それがあのBとWの入れ替え関数式か。
D解けた人良くここまで計算し切ったね
グラフの計算に二部グラフの計算加えて、
さらに計算式も考えるとかやりきれんよ。
D解けた人良くここまで計算し切ったね
グラフの計算に二部グラフの計算加えて、
さらに計算式も考えるとかやりきれんよ。
800デフォルトの名無しさん (ササクッテロ Spb3-GZpS)
2022/12/17(土) 23:02:27.38ID:I7m2bma6p 自分は余事象じゃなくて普通に足し合わせたけど、二頂点が異なる連結成分にある場合は後から色を合わせられるから全通りOKっていうのを最初は見逃してた
801デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/17(土) 23:05:00.09ID:ZH4mYY1r0 グラフの分解ってどうやるのがいいの?
普通はdfsでグラフは見ていくんだろうけど、
for分で回すのも違うと思うし、unionFindとかで調べることになるの?
普通はdfsでグラフは見ていくんだろうけど、
for分で回すのも違うと思うし、unionFindとかで調べることになるの?
802デフォルトの名無しさん (ワッチョイ d7a4-pKhS)
2022/12/17(土) 23:13:31.41ID:8NnsdriJ0 おれはUnionFindつかってないよ
まあ使ったほうが見通しが良いなら使ってもいい
2部グラフとして考え、連結成分ごとに2色に塗り分けて、色ごとの頂点の数を数えて、組み合わせを計算して足し合わせた
これだけ
まあ使ったほうが見通しが良いなら使ってもいい
2部グラフとして考え、連結成分ごとに2色に塗り分けて、色ごとの頂点の数を数えて、組み合わせを計算して足し合わせた
これだけ
803デフォルトの名無しさん (ワッチョイ e6e2-Tv+0)
2022/12/17(土) 23:23:39.77ID:8O7j2b6E0 青の人が3完だったらしーからD解けなくても全く問題ない気がする
804デフォルトの名無しさん (ワッチョイ 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は頂点の色の配列で代用できる
visited[v]: 頂点vを訪問したか
を用意して、for (int v=0; v<N; v++) で visited[v]がFalseなら、
そのvからbfsをして、visitedを更新しながら、色々やる
という方法でやってる
二部グラフ判定なら、visitedは頂点の色の配列で代用できる
805デフォルトの名無しさん (アウアウウー Sa9f-GdW4)
2022/12/17(土) 23:31:28.58ID:XFakiAR1a Nが最大で2*10^5だから、たぶん解法はO(N)だろうとあたりをつける
つまり、おそらく「頂点iから伸ばしてもいい辺の本数」を定数時間で求めさせるのが想定解だろうと予想できる
色々考えると「頂点iから伸ばしてもいい辺の本数」は
(頂点iと同じ連結成分に属している、頂点iと違う色の頂点の数) - (頂点iの次数) + (頂点iが属していない全連結成分の頂点数)
だと求まるから、この総和が答えって感じで解けた
つまり、おそらく「頂点iから伸ばしてもいい辺の本数」を定数時間で求めさせるのが想定解だろうと予想できる
色々考えると「頂点iから伸ばしてもいい辺の本数」は
(頂点iと同じ連結成分に属している、頂点iと違う色の頂点の数) - (頂点iの次数) + (頂点iが属していない全連結成分の頂点数)
だと求まるから、この総和が答えって感じで解けた
806デフォルトの名無しさん (ワッチョイ 3b01-44eU)
2022/12/17(土) 23:39:16.37ID:st/Rnmpd0 >>796
連結成分は3つ以上あってもいいよ
連結成分は3つ以上あってもいいよ
807デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/17(土) 23:39:58.72ID:ZH4mYY1r0 >>804
なるほど!サンクス
なるほど!サンクス
808デフォルトの名無しさん (ワッチョイ 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になりそうだな
その場合どうやって回避してるの?
3つ以上あると駄目じゃない?
連結グラフA,B.Cがあったとして
AとBはつなぐことできてもCは繋がらないから全体として2部にならない
って言おうと思ったけど問題文に「追加して得られるグラフ」は
ってあるね
ここも組み合わせが必要になるのか
20万頂点全部が独立したグラフだったら(M=0と書いてるし)
20万×19万9999/2になりそうだな
その場合どうやって回避してるの?
809デフォルトの名無しさん (ワッチョイ 3b01-44eU)
2022/12/17(土) 23:48:00.53ID:st/Rnmpd0810デフォルトの名無しさん (ワッチョイ 3b01-cTaC)
2022/12/17(土) 23:48:21.10ID:TrtUePRr0 みんな当たり前のように解いてて凄えわ
まずは3完出来るようになりたい
まずは3完出来るようになりたい
811デフォルトの名無しさん (ワッチョイ d7a4-pKhS)
2022/12/18(日) 00:02:11.91ID:eWCJrp150 今回のはDにしては難しかったし、あんまE問題ぐらいの難度だと認識してよさそうではある
2部グラフの特徴を考えつつ、場合の数を立式して計算しないといけないから、
自分で解いてても、「Dでこんなややこしいことしないといけないの? 方針ミスったか?」って不安になりながら解いてた
2部グラフの特徴を考えつつ、場合の数を立式して計算しないといけないから、
自分で解いてても、「Dでこんなややこしいことしないといけないの? 方針ミスったか?」って不安になりながら解いてた
812デフォルトの名無しさん (ワッチョイ 7ee6-e5AJ)
2022/12/18(日) 00:10:19.26ID:FIRAaHDO0 Cがたまに解ける程度の参加数回の灰色です
全探索とbit全探索はたくさんやったので次に何をやったら良いか
最初に覚えるアルゴリズムのおすすめを1つか2つくらい教えてください
ちなみにDPは10問くらいやってみたのですが理解が進まず一旦保留してます
DPの初見問題だと何を当てはめれば良いのか分からずコピペ出来るようなものしか正解出来ません
全探索とbit全探索はたくさんやったので次に何をやったら良いか
最初に覚えるアルゴリズムのおすすめを1つか2つくらい教えてください
ちなみにDPは10問くらいやってみたのですが理解が進まず一旦保留してます
DPの初見問題だと何を当てはめれば良いのか分からずコピペ出来るようなものしか正解出来ません
813デフォルトの名無しさん (ワッチョイ 5334-ZR1D)
2022/12/18(日) 00:14:22.07ID:HDBBZBFh0 >>812
累積和と二分探索勧めたいです
https://qiita.com/e869120/items/eb50fdaece12be418faa#%E5%8B%95%E7%9A%84%E8%A8%88%E7%94%BB%E6%B3%95%E5%8C%BA%E9%96%93-dp
こういうの見ながらやると学びやすいかも
累積和と二分探索勧めたいです
https://qiita.com/e869120/items/eb50fdaece12be418faa#%E5%8B%95%E7%9A%84%E8%A8%88%E7%94%BB%E6%B3%95%E5%8C%BA%E9%96%93-dp
こういうの見ながらやると学びやすいかも
814デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/18(日) 00:18:22.74ID:5nfx19Yz0 >>809
各独立した連結グラフがあったとして、解き方としてはそれぞれの色のパターン4色かけ合わせた解き方をするじゃない?
その組み合わせ数が、例えば全部20万個の点が全てどれとも連結していなくて独立だった場合、
20万から2つの組み合わせを全て調べるっていうようになると組み合わせ爆発が起きるんじゃないかって思ったんだけど
各独立した連結グラフがあったとして、解き方としてはそれぞれの色のパターン4色かけ合わせた解き方をするじゃない?
その組み合わせ数が、例えば全部20万個の点が全てどれとも連結していなくて独立だった場合、
20万から2つの組み合わせを全て調べるっていうようになると組み合わせ爆発が起きるんじゃないかって思ったんだけど
815デフォルトの名無しさん (ワッチョイ 7ee6-e5AJ)
2022/12/18(日) 00:21:29.77ID:FIRAaHDO0816デフォルトの名無しさん (ワッチョイ d7a4-pKhS)
2022/12/18(日) 00:23:25.03ID:eWCJrp150817デフォルトの名無しさん (ワッチョイ d7a4-pKhS)
2022/12/18(日) 00:26:21.80ID:eWCJrp150818デフォルトの名無しさん (ワッチョイ 5334-ZR1D)
2022/12/18(日) 00:37:00.80ID:HDBBZBFh0819デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/18(日) 00:37:33.08ID:5nfx19Yz0 >>816
んんんん??
だって連結グラフA,B,Cがあったとして、それぞれの黒点白点を4通りかけ合わせるわけじゃん
結局、ab,bc,caのように 20万C2の組み合わせについて調べないといけないことにならない??
んんんん??
だって連結グラフA,B,Cがあったとして、それぞれの黒点白点を4通りかけ合わせるわけじゃん
結局、ab,bc,caのように 20万C2の組み合わせについて調べないといけないことにならない??
820デフォルトの名無しさん (アウアウクー 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 本引けばいい
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 本引けばいい
821デフォルトの名無しさん (ワッチョイ 7ee6-e5AJ)
2022/12/18(日) 01:10:08.07ID:FIRAaHDO0 >>818
ありがとうございます、上から順番にやってみつつ且つ自分のやりやすい順序で埋めてみます
ありがとうございます、上から順番にやってみつつ且つ自分のやりやすい順序で埋めてみます
822デフォルトの名無しさん (ワッチョイ eabd-tVF/)
2022/12/18(日) 01:23:59.15ID:VXpf7ZWU0823デフォルトの名無しさん (ワッチョイ eabd-tVF/)
2022/12/18(日) 01:29:09.60ID:VXpf7ZWU0824デフォルトの名無しさん (ワッチョイ eabd-tVF/)
2022/12/18(日) 01:37:39.53ID:VXpf7ZWU0 そうか。。普通に感動した
競プロの人たちすごいな
愚直にやるやり方しか思いつかなかった5chやっててよかったって今初めて思ったくらい感動しました
ありがとう
競プロの人たちすごいな
愚直にやるやり方しか思いつかなかった5chやっててよかったって今初めて思ったくらい感動しました
ありがとう
825デフォルトの名無しさん (ワッチョイ eabd-tVF/)
2022/12/18(日) 01:45:40.04ID:VXpf7ZWU0826デフォルトの名無しさん (アウアウクー MMf3-HAQX)
2022/12/18(日) 02:04:39.56ID:Un2uABCHM827デフォルトの名無しさん (ワッチョイ 8bb9-5evz)
2022/12/18(日) 02:13:34.94ID:W2G5o+in0 二部グラフか判定
連結成分のペアに対して要素の個数の積出す(累積和使う)
連結成分の内部でいい感じな計算
とかやったけど結構コード長くなってしまった
連結成分のペアに対して要素の個数の積出す(累積和使う)
連結成分の内部でいい感じな計算
とかやったけど結構コード長くなってしまった
828デフォルトの名無しさん (ササクッテロ Spb3-GZpS)
2022/12/18(日) 02:13:42.38ID:8rlMlDEcp >>824
愚直にコードを書いて解けるのはABC-BかCまでで、それ以上の問題は愚直に実装すると問題の制限を超過するからどう工夫するかが問われて応用的になると思っていいよ
ここからアルゴリズムやらデータ構造やらが活躍するんだけど、業務とかで役立つ機会は少ないし(寧ろABC-C以下みたいに愚直に書く機会の方が多い)から役に立たない云々言われることがあるって感じだと思ってる
愚直にコードを書いて解けるのはABC-BかCまでで、それ以上の問題は愚直に実装すると問題の制限を超過するからどう工夫するかが問われて応用的になると思っていいよ
ここからアルゴリズムやらデータ構造やらが活躍するんだけど、業務とかで役立つ機会は少ないし(寧ろABC-C以下みたいに愚直に書く機会の方が多い)から役に立たない云々言われることがあるって感じだと思ってる
829デフォルトの名無しさん (ワッチョイ 7eb2-CLTW)
2022/12/18(日) 02:33:16.14ID:9rjazUL60 俺も累積和取る感じでやったけど解説の方がスッキリしてるな
830デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
2022/12/18(日) 09:11:43.17ID:oY6X+UMna831デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
2022/12/18(日) 09:16:03.59ID:oY6X+UMna >>825
あ、ごめんその前の計算式か
まずは実際にありえる辺の総数を求めて、
最後に繋がってる本数を引くって事
例題の場合
白2,黒3だから2*3がありえる辺の総数になって、
そこから引かれている4本を引くと答えの2本が出る
重複なしとか前提があるから出来る方法だけど
そう言う私もD解けなかったですけどねw
あ、ごめんその前の計算式か
まずは実際にありえる辺の総数を求めて、
最後に繋がってる本数を引くって事
例題の場合
白2,黒3だから2*3がありえる辺の総数になって、
そこから引かれている4本を引くと答えの2本が出る
重複なしとか前提があるから出来る方法だけど
そう言う私もD解けなかったですけどねw
832デフォルトの名無しさん (ワッチョイ db2d-ZR1D)
2022/12/18(日) 14:06:43.40ID:ymgsFwaZ0 c問題で水色とか紫とかがTLE出しまくってるの見ると
何やってるんだと思うよね
何やってるんだと思うよね
833デフォルトの名無しさん (ワッチョイ 2abd-tVF/)
2022/12/18(日) 15:01:37.69ID:MTKzjrMB0 C問題って間違えようがないと思うんだけど、
どういうところで間違えるんだろう
どういうところで間違えるんだろう
834デフォルトの名無しさん (ワッチョイ b3ad-opAy)
2022/12/18(日) 15:25:33.21ID:V0HgyU5o0 Pythonなら答えの文字列を文字列のまま作るとかすればTLEじゃね
835デフォルトの名無しさん (ワッチョイ e6e2-Tv+0)
2022/12/18(日) 15:27:06.21ID:jOkKJleE0 なんとなく多重ループ正規表現でやってTLEしても気にしないくらいの寛容性が必要
836デフォルトの名無しさん (ワッチョイ b3ad-opAy)
2022/12/18(日) 15:29:13.85ID:V0HgyU5o0 PythonistはListで保持してjoinする癖を叩き込まないといかんのじゃ(´・ω・`)
837デフォルトの名無しさん (ササクッテロ Spb3-GZpS)
2022/12/18(日) 21:15:22.71ID:7ZxBUPRFp 紫ならそもそもこどふぉの話では
838デフォルトの名無しさん (アウアウウー Sa9f-YsT+)
2022/12/19(月) 12:13:17.90ID:j4becYJFa atcoder probrems をダークテーマにしてると青が紫になるからそれじゃね
839デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
2022/12/19(月) 15:28:31.49ID:mlNqZ/yUa この競技のレートって絶対評価?相対評価?
レート自体は相対評価に見えるのに、レートに対する評価は絶対評価に見えるのおかしくない?
曲がりなりにもロジックの天才達が作ったシステムなのにこんな欠陥ある?
レート自体は相対評価に見えるのに、レートに対する評価は絶対評価に見えるのおかしくない?
曲がりなりにもロジックの天才達が作ったシステムなのにこんな欠陥ある?
840デフォルトの名無しさん (ワッチョイ e6e2-Tv+0)
2022/12/19(月) 15:33:52.49ID:umNN1xHI0 それは思う。正規分布的なレートの平均が200以下で、プログラマ一般では灰色上でかなり優秀ハズなのに茶色が雑魚という事になっておる。茶色でも一通りのアルゴリズムは使えるハズ。
841デフォルトの名無しさん (ワッチョイ 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)
https://twitter.com/chokudai/status/1474258242452987907
AtCoderがそのまま役立つ業務ってだいぶ少なくて、
【評価高】は赤まで、
数理最適化・研究開発
【評価中】は青~水まで、(黄もまれに?)
バックエンドエンジニア・機械学習エンジニア
【評価低~評価無】は水~茶色まで、
その他のITエンジニア
くらいがプラス評価になります。関連度が高ければ高いほど高いレートが評価されやすくなり、逆に低いと低いレートですぐカンストしちゃう、って感じ。
評価低に関しては「コードが書けることが保証されてる」くらいのアピールにしかならないです。
https://twitter.com/5chan_nel (5ch newer account)
842デフォルトの名無しさん (ワッチョイ d7a4-pKhS)
2022/12/19(月) 15:46:23.61ID:j+/VmCNx0 青色からはバックエンドエンジニアや機械学習エンジニアの適正としても良い評価もらえるってことだ
843デフォルトの名無しさん (ブーイモ MM17-RXHk)
2022/12/19(月) 16:18:03.87ID:z2IUcPyNM あいつら別にロジックの天才ではないだろ
ガチャガチャパターンマッチしてるだけで嘘投げまくりだし
ガチャガチャパターンマッチしてるだけで嘘投げまくりだし
844デフォルトの名無しさん (ワッチョイ e6e2-Tv+0)
2022/12/19(月) 17:19:19.70ID:umNN1xHI0 ABCのFまでで機械学習のスクラッチに関係ありそうな問題を見たことない。なんせ連続量の最適化がほぼ出ない。数理最適化詳しくないけど在庫やポートフォリオの最適化など近いのはヒューリスティックで普通の方は見当違いでは。
845デフォルトの名無しさん (アウアウクー MMf3-HAQX)
2022/12/19(月) 22:55:51.16ID:R3+0mHMkM 競プロの問題がそのまま何かの業務に役立つと思ってんのかね
もっと根っこのほうの潜在的な適正を測るのにこそ真価を発揮する競技だろ 実際レートが威力を発揮するのは中途より新卒
もっと根っこのほうの潜在的な適正を測るのにこそ真価を発揮する競技だろ 実際レートが威力を発揮するのは中途より新卒
846デフォルトの名無しさん (オッペケ Srb3-fGXT)
2022/12/19(月) 23:00:19.44ID:TVP15GFUr AtCoder Companions 使ってみたけど便利だな。
847デフォルトの名無しさん (オッペケ Srb3-58G+)
2022/12/20(火) 00:58:20.98ID:rMM3/RNdr おさわりOK?
848デフォルトの名無しさん (ワッチョイ eabd-tVF/)
2022/12/20(火) 02:42:22.83ID:8HBS9cc/0 ふと思ったんだけど、全域木の全ての2点間の距離の平均ってどうやって求めたらいい?
全域木が直線だったらめちゃくちゃ簡単だと思うけど、複雑に分岐してたら20万ノードくらいあったら無理かしら?
全域木が直線だったらめちゃくちゃ簡単だと思うけど、複雑に分岐してたら20万ノードくらいあったら無理かしら?
849デフォルトの名無しさん (ワッチョイ 0f12-Ys1q)
2022/12/20(火) 03:06:34.58ID:qq1PDL7x0 全域ってのがよく分からんが、木なら難しくない
総和が分かれば平均は分かるから総和の話をするとして、各辺についてその辺が距離に寄与する分を足せば良い
これはこの辺を消した時にできる2つの木の頂点数の積だから、木DPを1回すれば求まる
O(|V|)
総和が分かれば平均は分かるから総和の話をするとして、各辺についてその辺が距離に寄与する分を足せば良い
これはこの辺を消した時にできる2つの木の頂点数の積だから、木DPを1回すれば求まる
O(|V|)
850デフォルトの名無しさん (アウアウウー Sa9f-yMMU)
2022/12/20(火) 08:11:20.58ID:njbGKqT7a851デフォルトの名無しさん (JP 0Hf6-3jwL)
2022/12/20(火) 09:41:10.31ID:jE72r9+/H レートに対する評価は絶対評価じゃない
解ける問題が多少変わろうが評価は大して変わらなかったってだけ
解ける問題が多少変わろうが評価は大して変わらなかったってだけ
852デフォルトの名無しさん (ワッチョイ dabd-tVF/)
2022/12/20(火) 12:00:03.38ID:WLUxt4qk0853デフォルトの名無しさん (ワッチョイ 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ならありそう)
根から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ならありそう)
854デフォルトの名無しさん (ワッチョイ 0f12-Ys1q)
2022/12/20(火) 13:25:55.01ID:qq1PDL7x0 とりあえずコード書いてみたわ、こんな感じで合ってるか?
https://ideone.com/oTWtMA
https://ideone.com/oTWtMA
855デフォルトの名無しさん (ワッチョイ ea10-1XWL)
2022/12/20(火) 13:39:41.85ID:GISGVI8J0 kotlin読めないけど、合ってると思う
min(subtreeSize[edge.source], subtreeSize[edge.target])のところが場合分け減らせてて良いね
min(subtreeSize[edge.source], subtreeSize[edge.target])のところが場合分け減らせてて良いね
856デフォルトの名無しさん (ワッチョイ e6e2-Tv+0)
2022/12/20(火) 15:11:54.66ID:Nn7CI7yh0 >>850
atcoderの立場として発言してるだけかと。
アルゴリズムの研究者が水色とかあるっぽいし、競プロにフィットしなければ緑以下が普通だろうけど、時間で競ってパズル色も強すぎる競技と、アルゴリズム力は結構離れてると思う。
atcoderの立場として発言してるだけかと。
アルゴリズムの研究者が水色とかあるっぽいし、競プロにフィットしなければ緑以下が普通だろうけど、時間で競ってパズル色も強すぎる競技と、アルゴリズム力は結構離れてると思う。
857デフォルトの名無しさん (ブーイモ MM17-RXHk)
2022/12/20(火) 16:32:33.88ID:Q5NLDt+vM >>850
手繋いで皆でゴールとか好きそう
手繋いで皆でゴールとか好きそう
858デフォルトの名無しさん (ワッチョイ 3bda-R40C)
2022/12/20(火) 18:29:54.55ID:1VRwiMhX0 はてなブックマークのテクノロジーに再帰は遅いって記事が載ってたわ。
859デフォルトの名無しさん (オッペケ Srb3-58G+)
2022/12/20(火) 20:11:04.77ID:Q316j5h0r そりゃそうだ
860デフォルトの名無しさん (ワッチョイ d7a4-pKhS)
2022/12/20(火) 20:47:10.47ID:U3UiJpDd0 遅いといっても定数倍が遅いだけだし
861デフォルトの名無しさん (ワッチョイ 8bb9-5evz)
2022/12/20(火) 21:04:04.81ID:j2ePFqjM0 なんで遅いの?
862デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/20(火) 23:20:27.24ID:rS70Lc8l0 >>853
なるほどおおおお
ただ、理解できそうで理解できない
確かにその式だと、平方完成したときに距離がn/2で最大になることがわかりそう。
ただ、なぜx*(N-x)になるのかがいまだに理解できていない。。
確かに遠い方を選べばx = Nにはならないから、0にはならない、これはわかるが。。
例えば直線だった時に最初の根で中点を選んでしまったとき、
根だから当然部分木のサイズはNになり、N回の寄与しかできない
中点だからもっと大きい数寄与できるはずでは。。
混乱してきた。。
なるほどおおおお
ただ、理解できそうで理解できない
確かにその式だと、平方完成したときに距離がn/2で最大になることがわかりそう。
ただ、なぜx*(N-x)になるのかがいまだに理解できていない。。
確かに遠い方を選べばx = Nにはならないから、0にはならない、これはわかるが。。
例えば直線だった時に最初の根で中点を選んでしまったとき、
根だから当然部分木のサイズはNになり、N回の寄与しかできない
中点だからもっと大きい数寄与できるはずでは。。
混乱してきた。。
863デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/20(火) 23:24:41.27ID:rS70Lc8l0 https://imgur.com/a/7XCo1vG
まずこれがn=5の場合に中点を選んだ時のツリー
まずこれがn=5の場合に中点を選んだ時のツリー
864デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/20(火) 23:29:16.90ID:rS70Lc8l0 https://imgur.com/a/urLR8OE
cdの辺(4)は遠い方だから、dの部分木サイズ2、
つまり2×3だから6
なるほど、、たしかに6回寄与してる。。。しかしなぜN-nなんだ。。
2項定理の基本がわかってないのかな
cdの辺(4)は遠い方だから、dの部分木サイズ2、
つまり2×3だから6
なるほど、、たしかに6回寄与してる。。。しかしなぜN-nなんだ。。
2項定理の基本がわかってないのかな
865デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/20(火) 23:37:55.90ID:rS70Lc8l0 まてよ、なるほど
自分自信を含んだ場合のそれより下の部分と上の部分が何通りあるか、それをどこまで伸ばせるかということか
なるほど、わかりそう
自分自信を含んだ場合のそれより下の部分と上の部分が何通りあるか、それをどこまで伸ばせるかということか
なるほど、わかりそう
866デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/20(火) 23:43:39.65ID:rS70Lc8l0 一人で連投すまない
なるほど!!めっちゃ理解した
木構造であっても直線であっても、そのノードが双方向から挟まれてるとしてどの位置にいるかっていうことが一定になるんだね
いや凄いな、典型っていうけどこういうの当たり前に理解してる人たちなのか。。
感動した
なるほど!!めっちゃ理解した
木構造であっても直線であっても、そのノードが双方向から挟まれてるとしてどの位置にいるかっていうことが一定になるんだね
いや凄いな、典型っていうけどこういうの当たり前に理解してる人たちなのか。。
感動した
867デフォルトの名無しさん (ワッチョイ 8bb9-5evz)
2022/12/21(水) 00:05:31.28ID:nWikoW340 理解したかおめでとう!
じゃあ次は全ペアのパスの長さの平均じゃなくて中央値を考えてみてね
じゃあ次は全ペアのパスの長さの平均じゃなくて中央値を考えてみてね
868デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/21(水) 00:08:11.19ID:ftIf9M8u0869デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/21(水) 00:20:21.60ID:ftIf9M8u0870デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/21(水) 00:24:15.31ID:ftIf9M8u0871デフォルトの名無しさん (ワッチョイ ea10-1XWL)
2022/12/21(水) 04:04:43.89ID:ZV6Qma6k0 中央値は結構難しいような
中央値だから二分探索を使うというのは良いと思っていて、でも二分探索の判定部分で、
長さx以上のパスの個数 を計算する必要があって、これを計算するのは難しい気がする
中央値だから二分探索を使うというのは良いと思っていて、でも二分探索の判定部分で、
長さx以上のパスの個数 を計算する必要があって、これを計算するのは難しい気がする
872デフォルトの名無しさん (ワッチョイ 0f12-Ys1q)
2022/12/21(水) 04:29:36.11ID:c5REgkR40 え、中央値解けるん?
考えたこと無かったわ、やってみるか
重み付きだよね?重み無ければ重心分解して畳込めば終わりだし
考えたこと無かったわ、やってみるか
重み付きだよね?重み無ければ重心分解して畳込めば終わりだし
873デフォルトの名無しさん (ワッチョイ 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の数を引く、とかで合ってるかな?
重心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の数を引く、とかで合ってるかな?
874デフォルトの名無しさん (ワッチョイ 0f12-Ys1q)
2022/12/21(水) 05:56:39.59ID:c5REgkR40875デフォルトの名無しさん (ワッチョイ 3b01-Qhcs)
2022/12/21(水) 13:26:19.80ID:M6bQfxl+0 重心からの距離をソートして頭と尻からそれぞれ見ていけばデータ構造使わなくてもカウントはできる
(結局ソートでlogつくが)
二分探索と分割統治の分を合わせてlog3つになるのかな
(結局ソートでlogつくが)
二分探索と分割統治の分を合わせてlog3つになるのかな
876デフォルトの名無しさん (ワッチョイ ea10-1XWL)
2022/12/21(水) 13:55:04.06ID:ZV6Qma6k0 確かに 座標圧縮もBITもいらないか
O(N * (log^2)N * log(Nmax(w))) か (重すぎる)
O(N * (log^2)N * log(Nmax(w))) か (重すぎる)
877デフォルトの名無しさん (ワッチョイ 0f12-Ys1q)
2022/12/21(水) 16:51:57.69ID:c5REgkR40 あー、なるほど理解した
確かに中央値求まるな……重すぎるけど
確かに中央値求まるな……重すぎるけど
878デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/21(水) 17:20:24.15ID:ftIf9M8u0 ちょっと待て待てなんかすごいことになってる
重心分解なんか聞いたことないぞ
重心分解なんか聞いたことないぞ
879デフォルトの名無しさん (ワッチョイ dabd-CLTW)
2022/12/21(水) 17:48:02.52ID:ftIf9M8u0 重心分解と座標圧縮について調べてみた
重心分解の条件が部分木が全てN/2以下になっているっていうことは、直線の場合が最大でっていう理解であってるよね?(直感的には明らかだけどなぜn/2以下ならといえるのか厳密な定義があれば教えてほしい)
後、画像圧縮も調べてみたけど、これってどういうときに使うものなんだろう
重心分解の条件が部分木が全てN/2以下になっているっていうことは、直線の場合が最大でっていう理解であってるよね?(直感的には明らかだけどなぜn/2以下ならといえるのか厳密な定義があれば教えてほしい)
後、画像圧縮も調べてみたけど、これってどういうときに使うものなんだろう
880デフォルトの名無しさん (ブーイモ MMe6-RXHk)
2022/12/22(木) 00:38:14.06ID:E11PDpB0M 毎回ソートする必要なくてlog1個落ちる?
881デフォルトの名無しさん (ワッチョイ eabd-tVF/)
2022/12/22(木) 00:44:54.15ID:zgSSk2yY0 競プロ力って言うか、実務とかのプログラミング力ってどうすれば鍛えられるかな
持ってる知識は同じだとして
基礎体力が強い方が勝つんだろうけど、これってワーキングメモリの保持力だったりするんだろうか
持ってる知識は同じだとして
基礎体力が強い方が勝つんだろうけど、これってワーキングメモリの保持力だったりするんだろうか
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- パワフル女性世界3位に高市首相 米誌フォーブス選出 [蚤の市★]
- テレ朝本社から社外スタッフの男性が転落し死亡 テレビ朝日がコメント [ひかり★]
- アイヌ民族の「戸籍簿」がヤフオクで落札 団体「人権無視」と憤り [蚤の市★]
- 【米FRB】0.25%利下げ決定 3会合連続、雇用下支え [蚤の市★]
- 「身を切る改革」どこへ? 維新「身内」への公金支出、地方でも続々 [蚤の市★]
- 訪米認証「ESTA」、SNS利用情報の提出義務化へ 日本人観光客も対象に [蚤の市★]
- スクリプトまじでやめてください
- 【画像】東京都民「助けて!満員電車もう無理いいぃぃいいぃぃぃいいいいいぃ😭」!!!! [732289945]
- 【誰食】おせち料理で確実にゴミ箱行きになる食材1位、「黒豆」 [748563222]
- 「おとうとのびょうきをなおして」7歳の兄がサンタに託した切実な願い
- 一般人「起きなきゃ…」 俺ら「寝ようかなzzz」
- AIに言われたからサブスマホ売ったよ
