これ電波の出力に勾配法使えるんじゃね 使う頂点集合 $Z$ を焼きなまし * $Z$ をターミナルとした最小(最小ではない)シュタイナー木 $T$ を構成 * $T$ に含まれる頂点の出力を決める * $C(v) := T$ の中で $v$ が最も近い頂点となる家の数 $(v \in T)$ * $C(v)$ が大きい方から $2|T| / 5$ 個までの頂点の集合を $V$ とする * 各家を $V$ の中で最も近い頂点に割り当てる * $P = 0$ の頂点を省いてシュタイナー木を求め直す * 使った辺を $B$ とする ## 貪欲 * K-means でクラスタの中心を決める * クラスタの数を決めるのがむずい? * 中心に一番近い放送局を使う * ↑はむずいので各家ごとに貪欲 * MST ## 使う放送局をSAで決めるのが一番丸い * 経路はMST * これ差分計算したいねえ * 辺を直接焼き鈍す? * なんてったって速い! * やってません * 家の割当は最短距離 * ここ重そう * 前計算 * 家が近いものはまとめる? * $P^2$ の方が数倍でかい こっちを優先して減らす ## 1位 1ケースあたり平均: 1,676,559 1e9: 1487571.21 1e8: 1487571.21 ## loop 0: 1612192.43 5: 1587046.37 10: 1571564.68 ## pt 300: 1612141.46 500: 1612480.72 700: 1611177.45 1000: 1609367.48 1624648.16 ## 2時間  ``` 1982 0 4519 0 3631 0 0 0 0 0 788 2775 1227 0 0 3993 0 0 0 2093 0 0 706 0 0 0 0 0 0 0 1071 0 0 0 0 0 0 0 0 2973 460 0 288 1436 0 0 1352 0 0 3064 0 0 0 4076 0 0 0 0 0 0 474 0 0 0 0 1670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1442 0 1465 0 969 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 ``` ``` 100: 177955795 200: 175337828 300: 170205441 400: 165243441 500: 166782171 600: 173792451 700: 172360120 800: 171686600 900: 171349108 1000: 170133146 1100: 173333567 1200: 171145522 1300: 172143940 1400: 168544350 1500: 168802758 1600: 166120551 1700: 168341943 1800: 165802609 1900: 166659573 2000: 164127739 2100: 166321105 2200: 169214925 2300: 162714147 2400: 160464553 2500: 162176335 2600: 163630878 2700: 159737989 2800: 157364740 2900: 158812942 3000: 158168185 3100: 155238170 3200: 162402439 3300: 160165621 3400: 161522192 3500: 153186274 3600: 153834931 3700: 153834931 3800: 151975590 3900: 156251453 4000: 157961407 4100: 155608945 4200: 154559150 4300: 159213676 4400: 160419693 4500: 162796918 4600: 163707053 4700: 152280362 4800: 153069874 4900: 157013607 5000: 152849978 5100: 148559900 5200: 148080558 5300: 146571687 5400: 146270932 5500: 148598249 5600: 147031723 5700: 148061632 5800: 147639372 5900: 147019715 6000: 146433369 6100: 147113568 6200: 146529306 6300: 147837949 6400: 145576589 6500: 145483317 6600: 144550457 6700: 144623106 6800: 145013333 6900: 146278871 7000: 145540854 7100: 145034580 7200: 144880783 7300: 145202611 7400: 144379993 7500: 145210341 7600: 144381016 7700: 142833139 7800: 143188766 7900: 142604021 8000: 141823642 8100: 141823642 8200: 141697197 8300: 141957176 8400: 141552041 8500: 141514820 8600: 141697197 8700: 141697197 8800: 141277676 8900: 141277676 update/loop: 1286/8912 mst 1661925 116534390 24540209 Score = 1661925 ```
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.