惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
S
Schneier on Security
The Hacker News
The Hacker News
P
Proofpoint News Feed
Spread Privacy
Spread Privacy
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
I
Intezer
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Schneier on Security
Schneier on Security
Security Latest
Security Latest
AWS News Blog
AWS News Blog
B
Blog RSS Feed
Microsoft Security Blog
Microsoft Security Blog
有赞技术团队
有赞技术团队
博客园 - 叶小钗
The Last Watchdog
The Last Watchdog
O
OpenAI News
月光博客
月光博客
Hacker News: Ask HN
Hacker News: Ask HN
阮一峰的网络日志
阮一峰的网络日志
S
Security @ Cisco Blogs
Google Online Security Blog
Google Online Security Blog
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Latest news
Latest news
P
Palo Alto Networks Blog
Last Week in AI
Last Week in AI
M
MIT News - Artificial intelligence
Google DeepMind News
Google DeepMind News
P
Proofpoint News Feed
C
CERT Recently Published Vulnerability Notes
Apple Machine Learning Research
Apple Machine Learning Research
U
Unit 42
PCI Perspectives
PCI Perspectives
博客园 - 聂微东
SecWiki News
SecWiki News
宝玉的分享
宝玉的分享
Forbes - Security
Forbes - Security
H
Heimdal Security Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Hugging Face - Blog
Hugging Face - Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Troy Hunt's Blog
博客园 - 三生石上(FineUI控件)
Application and Cybersecurity Blog
Application and Cybersecurity Blog
罗磊的独立博客
WordPress大学
WordPress大学
D
Darknet – Hacking Tools, Hacker News & Cyber Security

hayato

Chromium's DOM Deep Dive: Understanding Shadow DOM and Tree Structures - hayato Introducing the Task Scheduler in Chromium's Network Stack: A 0.3% Improvement in Loading Speed - hayato 出版のお知らせ 「普通の人が資産運用で99点をとる方法とその考え方」 - hayato Resource loading with Content Addressable Bundles - hayato 普通の人が資産運用で99点をとる方法とその考え方 - hayato Imperative Shadow DOM Distribution API - hayato Google にソフトウェアエンジニアとして入社して 10 年と 10 日がたちました - hayato Web のつくりかた: ソフトウェアエンジニアリングと雰囲気で理解する Web 標準とブラウザのつくりかた - hayato ブラウザのしくみ: データ構造とアルゴリズムと雰囲気で理解する DOM と Shadow DOM - hayato Rust が最強のプログラミング言語である証明 - hayato 六本木ではたらくソフトウェアエンジニアへのよくある質問とその答え (FAQ) (2015 - 2017) - hayato What's New in Shadow DOM v1 (by examples) - hayato Simple timer application for the pomodoro technique - hayato Google の面接試験で出る (はずがない)「海賊と金貨」問題を空気を読まないでプログラムで解いてみる - hayato hayato.io (4topcoder) - hayato SRM432 - hayato SRM405 - hayato SRM386 - hayato SRM385 - hayato SRM384 - ゲーム - hayato SRM369 - hayato SRM368 - hayato SRM366 - typo 2 連発 - hayato Python - generator で素数生成 - hayato New Launguage - 新言語追加の予定? - hayato lxml で HTML スクレーピング - hayato SRM358 - Today is a Bad Day (-50). - hayato SRM349 FizzBuzz 問題が簡単すぎるそんなあなたへ。「赤いマーブル問題」。 - hayato Suffix Array - hayato google-code-prettify を導入してみる - hayato Subset の生成 - hayato 2006 年のまとめ - SRM332 - hayato Google Code Jam 2006 - Championship Round - hayato Blogger Beta に移行 - hayato Google Code Jam 2006 - Round1 に挑戦 - Generics と AutoBoxing - hayato Google Code Jam 2006 - Qualification Round 通過 - hayato Google Code Jam 2006 - Qualification Round に挑戦 - hayato Google Code Jam 2006 - Practice1 - hayato Google Code Jam 2006 - 開催決定 - hayato Stay tuned... Global Google Code Jam 2006 - 秋に開催? - hayato SRM308 - Hard DP - hayato SRM304 - 条件付確率 - hayato JavaWorld に寄稿しました - hayato 2006 TopCoder Open Final Round - hayato IBM Rational Software Development Forum Tokyo で講演します - hayato SRM298 - ひとふで書き - hayato SRM293 - ビンゴ - hayato 2006 TopCoder Open - Odds 発表 - hayato 2006 TopCoder Open Qualification Round - hayato SRM291 - OutOfMemory - hayato デブサミ 2006 で講演します - hayato SRM287 - 気分は中学生?連立2元方程式 - hayato SRM281 - 2006 年はポイントゼロスタート - hayato SRM280 - Challenge 祭り - hayato SRM277 - 初賞金げっと - hayato マラソン・マッチ - hayato reStructuredText で blogger - hayato 2006 TopCoder Open - NSA がスポンサーに - hayato SRM276 - お買い物は楽しく DP で - hayato SRM273 - bit 演算は int で行われるのね - hayato SRM272 - Division1 - 4 度目の正直 - hayato JavaOne Tokyo で講演します - hayato SRM270 - Integer == Integer - hayato SRM268 - Division2 脱出 - hayato SRM266 - NASA, we have a problem... - hayato SRM265 - Division2 落ち... - hayato SRM262 - 初 Division1 は Typo に終わる - hayato SRM260 - TopCoder への挑戦のはじまり - hayato
2006 TopCoder Open - Round1 撃墜 - hayato
2006-03-04 · via hayato

2006 TopCoder Open - Round1 に挑戦. 750 名から 400 名へふるい落とされます.予選と違い,Round1 以降は,通常の SRM と同様の形式です.チャレンジ・フェーズもあります.

ラウンドへの登録時,アンケートがありました.「コンタクト先をスポンサーである NSA(National Security Agency)に教えてもいいかい?」 というものでした. TopCoder はいい就職・転職の機会の場になってますね.実際には,NSA は US 市民でないと勤務できないそうですが...

ラウンド本番中,ちょっとした運営側の不手際がありました. 350 点問題を開くと,実際には 500 点問題が, 500 点問題を開くと,実際には 350 点問題が表示されてしまっていたようです.

500 点問題.最初に Open した問題です.本番中はこれが 350 点問題だと思っていました..

整数 p, q (1 <= p <= 100, 1 <= q <= 100) が与えられます. このとき,以下の条件を満たす正の整数 a を (存在しない場合は-1 を)返しなさい という問題です.

  • a の各桁を左に回転シフトした結果を a~rotate~ とすると, a * p/q = a~rotate~
  • a < 2,000,000,000 (2 billion です.)

条件を満たす a が複数ある場合は,そのうちもっとも小さいものを返します.たとえば,p = 1, q = 4 ならば,答えは a = 102564 になります.

  • "102564" の左端の 1 を右にくっつけて, a~rotate~ = 25641
  • a * p / q = 102564 * 1/ 4 = 25641 = a~rotate~

ですね.

うーん方針が浮かびませんでした. とりあえず Example Case に通るようにしてから Submit しました.不完全だというのはわかっていましたが,もうあきらめて次の問題に移りました..

実は,こっちが,350 点問題でした.本番中は,500 点問題だと思って取り組んでいました.

ノードが n 個与えられます.各ノード間が通信可能かどうがが,マトリックス形式で与えられます.

ノードが 5 個の場合です.Y が通信可能.N は通信不可能です.

"NYYYY",
"YNNNN",
"YNNNY",
"YNNNY",
"YNYYN"

各ノードは同時に 1 つの他のノードと通信できるとします.2 つ以上とは通信できません.この場合,お互いに通信しているノードのペアを最大いくつ作成できるか?その通信しているノード数(ペア数 x 2 になります)を求めなさいという問題です.

本番中は,思いっきり問題を勘違いしてしまって,Bipertite Matching を使用して解いてしまいました.普通に DP で解くべき問題でした.こんな感じになります.

public class SeparateConnections {

  public int howMany(String[] mat) {
      int N = mat.length;
      int max = 0;
      boolean[] ok = new boolean[1<<N];
      ok[0] = true;
      for (int i = 0; i < (1<<N); i++) {
          if (!ok[i]) continue;
          max = Math.max(max, Integer.bitCount(i));
          for (int n1 = 0; n1 < N; n1++) {
              for (int n2 = n1+1; n2 < N; n2++) {
                  if ( mat[n1].charAt(n2) == 'Y'
                          && (i & (1 << n1)) == 0
                          && (i & (1 << n2)) == 0) {
                      ok[ i | (1 << n1) | (1 << n2)] = true;
                  }
              }
          }
      }
      return max;
  }
}

1000 点問題.ていうか無理.

結果

System Test の結果です. ( Room Statistics )

Room Statistics

スコア 0 です...敗退決定です. スコア 0 は,401 位でした. 1 点でもスコアがあったら,400 位以内に入っていたようです.

今日の教訓

  • あー勘違い.