↑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:FqAfPtIrM797デフォルトの名無しさん (ワッチョイ 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 競プロ力って言うか、実務とかのプログラミング力ってどうすれば鍛えられるかな
持ってる知識は同じだとして
基礎体力が強い方が勝つんだろうけど、これってワーキングメモリの保持力だったりするんだろうか
持ってる知識は同じだとして
基礎体力が強い方が勝つんだろうけど、これってワーキングメモリの保持力だったりするんだろうか
882デフォルトの名無しさん (ワッチョイ d7a4-pKhS)
2022/12/22(木) 01:03:51.33ID:ac9+4gRj0 実務とかのプログラミング力、っていわれても環境によって求められるものが違いすぎてなんともだけど、きみがいうプログラミング力ってなんなん?
個人的に「プログラミング力がある」って感じるひとは、それに比例して知識量もあるし、知識が同じなら差がつくとはどうしても思えない
なかには知識は全く同じはずなのにプログラミングすげえ!みたいな天才マンがいるの?
そんな人に出会ったことないし想像できない
というか仮にいたとしても技巧的なコードばかり書いててメンテできなそう
個人的に「プログラミング力がある」って感じるひとは、それに比例して知識量もあるし、知識が同じなら差がつくとはどうしても思えない
なかには知識は全く同じはずなのにプログラミングすげえ!みたいな天才マンがいるの?
そんな人に出会ったことないし想像できない
というか仮にいたとしても技巧的なコードばかり書いててメンテできなそう
883デフォルトの名無しさん (ワッチョイ db2d-ZR1D)
2022/12/22(木) 02:41:47.06ID:CW5T8PCf0 英語鍛えりゃいいんじゃね
今まで見てきた凄腕はみんな英語が達者で情報を日本語以外で取り入れまくってた
今まで見てきた凄腕はみんな英語が達者で情報を日本語以外で取り入れまくってた
884デフォルトの名無しさん (ササクッテロ Spb3-GZpS)
2022/12/22(木) 03:01:13.83ID:AAu4e6zFp 英語を鍛えれば有能になるんじゃなくて有能人材は元々英語くらいなら余裕だから因果関係が逆な気もする
885デフォルトの名無しさん (ササクッテロ Spb3-GZpS)
2022/12/22(木) 03:05:02.66ID:AAu4e6zFp 競プロでも強い人がこどふぉとかの英語問題文で困ってるの聞いたことないし
886デフォルトの名無しさん (アウアウウー Sa9f-8Cre)
2022/12/22(木) 05:40:46.21ID:0WpPKX01a 例えば高専で、JavaScript, Python をやっていても、
なんだ、Ruby on Rails, Docker, AWS Solution Architect もやっていないのかと、
ウェブ系企業では全く相手にされない
そういう香具師でも、英語さえ出来れば、GAFAM では採用される。
まあ、競技プログラミングもそこそこ出来るし、まあ雇っても良いかという感じ
印象としては、Linux のシステム構築運用できない香具師が、GAFAMに受かる感じ
なんだ、Ruby on Rails, Docker, AWS Solution Architect もやっていないのかと、
ウェブ系企業では全く相手にされない
そういう香具師でも、英語さえ出来れば、GAFAM では採用される。
まあ、競技プログラミングもそこそこ出来るし、まあ雇っても良いかという感じ
印象としては、Linux のシステム構築運用できない香具師が、GAFAMに受かる感じ
887デフォルトの名無しさん (ワッチョイ 0f12-Ys1q)
2022/12/22(木) 06:18:15.61ID:zRh15pQp0 英語力はchokudaiが既に反例だから違うだろ
英語力がある方が有能だけど
実務とかのプログラミング力はどれだけ色々なことに手を出してきたかだと思うな、凄い奴は経験してる分野が多岐に渡ってて、何聞いてもそれなりに理解してる答えが返ってくる
英語力がある方が有能だけど
実務とかのプログラミング力はどれだけ色々なことに手を出してきたかだと思うな、凄い奴は経験してる分野が多岐に渡ってて、何聞いてもそれなりに理解してる答えが返ってくる
888デフォルトの名無しさん (テテンテンテン MMe6-d6mb)
2022/12/22(木) 08:53:39.96ID:gibqUWi2M 別にGAFAM受かっているから優秀とは思わないけど、DockerやAWSみたいな個別的な技術の知識より学術的な情報科学に強い人材の方を重視しているから、一見モダンな知識がないように見えるだけなのでは?
そんなの入社後必要に迫られて勉強すればすぐ身につくようなものじゃないか
そんなの入社後必要に迫られて勉強すればすぐ身につくようなものじゃないか
889デフォルトの名無しさん (テテンテンテン MMe6-d6mb)
2022/12/22(木) 09:04:09.07ID:gibqUWi2M CodeForcesの問題文は謎の登場人物、ストーリーが面倒くさいだけで、別に競プロの問題を抽出して理解するのにそんなに英語力いらない気がするな
英語圏の中学生向けの小説の方が難しいと思うわ
英語圏の中学生向けの小説の方が難しいと思うわ
890デフォルトの名無しさん (ワッチョイ 73bd-ZR1D)
2022/12/22(木) 09:48:19.57ID:lVkIDQyd0 >>879
重心探索のアルゴリズムで重心が定まったとき、重心とされた頂点の親の方の連結成分の成分数がn/2以下と言えるのか?という疑問かな?
であれば、重心を根とした部分木の頂点数はn/2より大きいから、親の方の連結成分=重心を根とした部分木の頂点数はn/2以下になるって感じかな?(全然違う疑問だったら言ってくれ)
あと、画像圧縮と座標圧縮は別物だね
座標圧縮の方が簡単で競プロで頻出
重心探索のアルゴリズムで重心が定まったとき、重心とされた頂点の親の方の連結成分の成分数がn/2以下と言えるのか?という疑問かな?
であれば、重心を根とした部分木の頂点数はn/2より大きいから、親の方の連結成分=重心を根とした部分木の頂点数はn/2以下になるって感じかな?(全然違う疑問だったら言ってくれ)
あと、画像圧縮と座標圧縮は別物だね
座標圧縮の方が簡単で競プロで頻出
891デフォルトの名無しさん (ワッチョイ 3b01-GZpS)
2022/12/22(木) 09:54:55.85ID:Xj8jM7zP0 座標圧縮って競プロだと当然のように使われるけど実際に業務とかでも活用されてるのかな(まあ大した実装量じゃないからわざわざ名前をつけてないだけなのかもしれないけど)
892デフォルトの名無しさん (ワッチョイ 73bd-ZR1D)
2022/12/22(木) 09:55:19.15ID:lVkIDQyd0893デフォルトの名無しさん (ワッチョイ db2d-ZR1D)
2022/12/22(木) 11:36:03.34ID:CW5T8PCf0894デフォルトの名無しさん (ブーイモ MMe6-RXHk)
2022/12/22(木) 11:53:21.34ID:InE00bnxM 普通はハッシュマップかマップをまずは使いそう
895デフォルトの名無しさん (アウアウウー Sa9f-Qhcs)
2022/12/22(木) 13:07:07.73ID:b/+SXENfa 座標圧縮っぽいことは思い出してみると業務で使ったことあるけど座標圧縮だと意識してはいなかった気がする
896デフォルトの名無しさん (ワッチョイ 17bd-K3OV)
2022/12/24(土) 10:36:20.69ID:cLKr3UoH0 クリスマスイブだけど今日も競プロ参戦するぜ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★3 [Hitzeschleier★]
- 【将棋】福間香奈 女流六冠が会見 妊娠・出産でタイトル戦の事実上不戦敗 「妊娠したら、どちらか一方を諦めないといけない状況」★2 [冬月記者★]
- かつや、明日からカツ丼(竹)790円→590円、ロースカツ定食830円→630円、カツカレー(竹)990円→790円 画像あり [お断り★]
- タイがカンボジアを空爆、トランプ氏仲介の和平合意は“事実上崩壊”軍事衝突へ タイ首相「もはや対話の余地ない」 [お断り★]
- 【速報】 米国政府、中国が日本の自衛隊にレーダー照射を批判、同事案で中国を批判するのは初めて ★2 [お断り★]
- 空自機レーダー照射、音声データ公開 中国 ★5 [蚤の市★]
- 防衛省「了解は言っていない」 [966095474]
- 中国、日本人tiktokの収益剥奪開始wmwmwmwmwmwm [834922174]
- 【速報】共同通信スクープキタ━(゚∀゚)━!!「実際は日本の自衛隊機が中国機に対してレーダ照射ロックオンしていたことが発覚」 [339712612]
- マリン船長のラーメン、投げ売りされてしまう😭
- 茂木外務大臣、行事費の名目でディオール、エルメス、ブルガリへ支出 [256556981]
- 大阪万博の会場建設費、企業寄付42億円不足 黒字だった筈なのに1970年万博の基金の取り崩しへ [594040874]
