九州大学競技プログラミング部

▼九州大学 競技プログラミング部は ICPC・Atcoder をはじめとした各種プログラミングコンテストに取り組む大学公認サークルです。▼連絡先:icpccc@gmail.com

この広告は、90日以上更新していないブログに表示しています。

【2025年度新歓】九州大学新入生の皆さんへ

九州大学新入生の皆さん,合格おめでとうございます!
私たち九州大学 競技プログラミング(旧称:ICPCチャレンジ部)はAtcoderICPCを始めとした競技プログラミングコンテストに取り組む大学公認サークルです!!
プログラミング力,アルゴリズム力の向上を目的に週1~2回程度参加しており,他サークルとの兼部も十分に可能です!

新歓ガイダンスについて

競技プログラミング部の活動についての説明を行います.

日時

1日目:4月15日(火)18:30 〜 @センター2号館2104
2日目:4月17日(木)18:30〜 @センター2号館2204

オンライン,オフライン参加も可能です!(カメラ,マイクオフでももちろん可!)
オンライン参加はGoogleMeetで行う予定です。以下のリンクからご参加ください。
https://meet.google.com/zbz-zquh-bid

遅刻参加も歓迎です!!
オフライン参加であっても,現地でオンライン用の配信を見ていただく形になりますので,参加者はスマホやパソコン,タブレット等を持参することを強くお勧めします!

その他情報発信について

Twitterブログなどで情報発信を行っています!
不明点,気になる点はDMなどで気軽に問い合わせいただけると嬉しいです!!

新歓アンケートについて

入部を希望される方は以下のアンケートにお答えください!(4月26日まで. それ以降は、メールもしくはDMをください.)
https://docs.google.com/forms/d/e/1FAIpQLSeWCkB9XJVXZ-oxEnnFdTK8frpE6AK_wA3A-4hOE9bJ74FDLQ/viewform?usp=dialog

ポスター

九州大学 競技プログラミング部とは

九州大学 競技プログラミング部は プログラミングコンテスト に取り組んでいる大学公認サークルです。この記事では弊サークルについて簡単に紹介していきたいと思います。

ICPC とは

ICPC (国際大学対抗プログラミングコンテスト) は、同じ大学の 3 人でチームを組み、制限時間内にできるだけ多くの問題を解くプログラムを作成することを競うコンテストです。

弊サークルは 2005 年から 15 年連続で国内予選を突破し、九州大学代表チームとしてアジア地区予選に参加しています。

活動について

毎週 1 〜 2 回センターゾーンやウエスト 2 号館などで活動しています。
普段の活動では、AtCoder というプログラミングコンテストサイトの問題を解いて解説したり、ICPC に向けて部内でチームを組んで練習したり、プログラミングコンテストチャレンジブックという本を部員に貸し出して一緒に読んだりしています。

また、九州大学 プログラミングコンテストを 2014 年と 2018 年に開催しました。コンテストの問題作成や運営は全て部員で行なっています。

補足

毎年 4 月頃から新入部員を対象としたプログラミング講習会を開催しています。プログラミング初心者も大歓迎です!

弊サークルでは新入生だけでなく、学部 2 年生以上の部員も常に募集しています。*1 大学のプログラミングやアルゴリズムの講義などで興味を持ったという方や、AtCoder などのオンラインのコンテストに参加したことがあるという方はぜひ一度活動にお越しください!

連絡先:icpccc@gmail.com

*1 :ICPC には修士 1 年 (早生まれの場合は修士 2 年) まで出場することができます。

九州大学プログラミングコンテスト(QUPC2024)開催のお知らせ

概要

4/6(日)に、九州大学 プログラミングコンテスト(QUPC2024*1)を開催します。
QUPCとは九州大学競技プログラミングサークル『九州大学 競技プログラミング部』が開催するプログラミングコンテストで、2018年以来の開催となります。

コンテストはYukicoder様のシステムをお借りして行います。

腕に覚えのある方、奮ってご参加ください!!

日時

2025年4月6日 15:30~18:00 (150分)

なお、今年はオンライン参加のみとなります。オンサイト参加を楽しみにされていた方、申し訳ないです。次回以降にご期待ください!

コンテストページ

https://yukicoder.me/contests/538

連絡先

icpccc@gmail.com もしくは部のX(旧Twitter)までご連絡ください。

*1 :本当は2024年度中に開催したかった点、2025年度も開催したい点を踏まえて、2025年度ですがQUPC2024と名付けております。

AHC038に参加しました(autumn09)

はじめに

はじめまして。autumn09といいます。 僕は1年半前くらいに競技プログラミングを初め、いつもはABC(Atcoder Beginer Contest)に参加しています。

今回はAHC(Atcoder Heuristic Contest)に初めて参加しました。 今更ながらですが*1、AHCの感想・自分の解法を紹介したいと思います。 最初の方はAHCの説明と僕の所感なので、解法だけ読みたい人は 問題概略まで読み飛ばしてください。

AHCとは

僕たちがいつも参加しているICPCやABCは、与えられた問題に対して最適解を求めるものです。 最適解を求めるプログラムでなければ、それがどれほど最適解に近くても、不正解(WA)とされてしまいます。

一方で、今回僕が参加したAHCは、「最適解を出すのが難しい問題に対し、出来るだけ良い解を作成するコンテスト」です(Atcoder公式HPより)。 まあ、語弊を恐れずに言うと、ミニゲームのようなものに対して、プログラムを組んで良いスコアを目指す、といったところでしょうか。

具体的にどのような問題を解くか、というところは毎回変わります。 今回のお題は、「たこやきをできるだけ少ない手で別の場所に移す」というものでした(詳しくは問題概略)。

AHCの楽しさ・魅力

初めて参加してみましたが、とても楽しかったです!! 今回感じた、AHCの楽しさ・魅力を語っていこうと思います。

楽しさその1:ビジュアライザを見る楽しみ

AHCでは、自分の組んだプログラムの出力を可視化できるもの(ビジュアライザ)が公式から与えられます。

これは今回のコンテストの、僕が途中提出したプログラムのビジュアライザです。

ビジュアライザ
自分が作ったものがちゃんと動作しているのを見るとすごく楽しいです。

楽しさその2:自由な発想で、スコアを改善させていく楽しみ

普通の競プロでは、問題を解くことのできるプログラムの種類(解法の種類)はさほど多くありません。 そして、多くの問題は典型手法に落とし込んで解決するので、(一部の天才以外は)知らないと解けない、ということもあります。

一方でAHCは自由度が高く、さまざまな発想・手法を幅広く試すことができます。 そして、AHCの典型手法というのもあるようですが、それを知らなければまったく手も足も出ない、ということはありません。 実際、僕はAHCの典型手法(山登り法、ビームサーチなど)について知らずに参加しましたが*2、アイデアと考察で善戦することができました。

当然、選んだ手法によって良いスコアだったり悪いスコアだったりします。 そのため、「どうしてこの解法だとスコアが良い/悪いのか」ということを考察する必要があります。 多くの人はビジュアライザを見ながら考えているようです。 これがまた楽しくて、休日が溶けていきました。

問題概略

  • ×ばつNの盤面があり、その中にM個のたこやきが置いてある。
  • そのたこやきを、ロボットアームを使って目的のマスに置きたい。
  • ロボットアームをうまく設計してうまく操作することで、できるだけ少ない操作回数でたこやきを移動させよ

上のビジュアライザでいうと、丸いのがたこやきで、赤くなっているマスがたこやきを置きたい目的のマスです。 そして、動き回っているのがロボットです。 ロボットは木構造をなしていて、その葉に当たる部分でたこやきを掴むことができます。 葉になっていない部分では掴むことができません。 以下、ロボットの葉に当たる部分を「手」と呼ぶことにします。

結果

約1000人中、154位(青performance)で入緑しました!!

[フレーム]atcoder.jp

解法の紹介(時系列順)

最初から完璧なプログラムを書ける人はおらず、多くの人は改善を重ねながら良いプログラムを作っていると思います。 僕もその1人で、改良・機能の追加・仕様変更を繰り返して徐々に順位を上げていきました。 時系列に沿って、僕がどういうプログラムを作り、それをどのように改良していったのか説明します。

今回のAHCはスコアが低いほど評価が高い(たこやきを少ない操作で移すことが目的であるため)です。僕のスコアの推移は下の表のようになります。

提出 スコア 備考
1 1806429 提出その1
2 65926 提出その2
3 39698
4 36518
5 12221 提出その3
6 11631
7 11616
8 12191
9 10761 提出その4
10 9324
11 9121
12 9095
13 8563
14 8305
15 8216 提出その5

提出その1(1806429点)

最初は何から手をつけていいか全くわからなかったので、1回目の提出はとりあえず動くプログラムを作ろうというモチベーションで書きました。

まず、今回のAHCでポイントとなるのは、

  1. ロボットの設計
  2. 根(ロボットの手足が生えている中心の部分)の動きをどうするか
  3. ロボットの関節の曲げ方

だと考えました。

1つ目については、どんなロボットが強いかという見当がつかなかったので、この段階ではテキトーに設計しています。

2つ目については、盤面を網羅できるようにジグザグに動くようにしました。

3つ目については、ロボットの関節の曲げ方を全探索して、最もたこやきを掴んだり離したりできるような曲げ方を実際に行う、という動かし方にしました。 単純な行動指針でしたが、実はこれはかなり有効でした。 最終提出においても、基本的にはこの方針のもと動いています。

ロボットの関節は、頂点数Vに対してV-1個あります。 それぞれの関節の曲げ方は、右に曲げる、左に曲げる、そのまま、の3種類です。 したがって、愚直に全ての曲げ方を試すと計算量はO(3^V)になります。 しかし、Vは最大15あるので、この実装では計算量が大きすぎて3秒という実行時間に間に合わせることができません。

ここで、ある頂点から生えている2つの頂点は互いに独立に動かすことができます。 この頂点の部分木を考えると、一方の部分木の動かし方がどうであれ、もう一方の部分木はそれに影響されません。 このことから、全探索は、根から生えているそれぞれの部分木ごとに行えばいいことがわかります*3。 したがって、計算量は、根から生えている頂点の部分木の頂点数の最大値を V_{max} として、 O(3^{V_{max}}) となります。 よって、 V_{max}を大きくしすぎなければ、高速に動きます。

提出その1

ちなみに、ロボットが回転しているのは、掴む・離すたこやきの個数が同じような関節の曲げ方が複数ある場合、右回転を優先して取るようになっているからです。

提出その2(65926点)

1回目の提出のビジュアライザを見ると、根の動きにかなり無駄があることがわかります。 根が動いた先にない場合でもジグザグを続けてしまっています。 これを改善すべく、よりよい根の動かし方を模索したのが提出その2です。

根がどう動いてくれれば良いかというと、たこやきを持っていない手とたこやきのある位置が、たこやきを持っている手とたこやきを置く位置が、近くになってくれれば良いです。 なので、根に、次の式で表される力が働くとして、その力の方向に根が動くようにしました。

\displaystyle F=\sum_{r,r'} \frac{f(r,r')}{dis(r,r')}\vec{n} \\

ただし,

r: ロボットの手 \\ r': 盤面上の1点\\ f(r,r')= \begin{cases} 1 \space(rがたこやきを持っていなくて、r'にたこやきがある) \\ 1 \space(rがたこやきを持っていて、r'にたこやきを置ける) \\ 0 \space(otherwise) \end{cases} \\ dis(r,r'): rとr'の距離 \\ \vec{n}: rからr'に向かう向きの単位ベクトル

です。

要は、たこやきを持っている手とたこやきを置く位置が、たこやきを持っていない手とたこやきが、近づくように根に力をかけているということです。 もう少し厳密に力(やモーメント)を計算すべきところですが、実装が複雑になるのと、計算量の観点から、このような形にしました。

ですが、案外うまく動き、スコアがだいたい30分の1くらいになりました。

提出その2

提出その3(12221点)

この提出では、提出その1やその2で後回しにしていた、ロボットの設計を見直しました。 とはいっても自分で設計したわけではなく、ロボットを何個もランダムに生成して、その中で性能が良いものを抽出しました。そして、そのロボットをソースコードに埋め込んで提出しました。

詳しくは提出その4で説明しますが、提出その2くらいから、ターン数がだいぶ運によって左右されています。 なので、実行時間のある限り、ロボットの動き方を複数作り、その中でもっともターン数の短いものをprintするようにしました。

スコアは数倍下がり、提出時点では青パフォ(100位から200位)でした。

提出その3

提出その4(10761点)

提出その3のビジュアライザの最後あたりを見ると、たこやきを掴んだり離したりするのにだいぶ時間がかかってしまっています。 また、テストケースによっては、根にかかる力がつりあってしまって根が動けず、永遠に終わらないようなものありました。

このように、最後あたりになってくると、力のかかり方が微妙になって性能が落ちてしまいます。 そこで、提出その4では、終盤の根・関節の動かし方を、確実にたこやきが掴める・置けるようなものに変更しました。 この動かし方のモード切替は、置かれていないたこやきの個数がある閾値m_{th}以下になったときに行われるようにしています。

ビジュアライザを見ると、ある時点からロボットの動きが明らかに変わっているのがわかると思います。

提出その4

提出その5(最終提出, 8216点)

提出その5では、仕様を追加することはほぼありません*4でした。 そのかわり、パラメータを調節しました。 調整したパラメータは以下の通りです。

  • 提出その4の、ロボットの動かし方を変えるしきい値m_{th}
  • 何回も動き方を作るが、その時間配分(打ち切る時間t_{limit})

注意が必要なのは、最適なパラメータの値はNとVによって多少変わってしまうということです。 なので、最適なパラメータのNとVに関する依存性を調査して、パラメータをNとVの式で表すことを目指しました。

1つ目に関しては、もっともターン数が小さくなるm_{th}が、次のような式で表されることを見つけました。

\displaystyle m_{th}=\frac{10 N}{V}

驚くほどきれいな形になったので、発見したときはとても嬉しかったです。

2つ目に関して、これはどういうパラメータかというと、プログラム内ではロボットの動きを複数作ってその中で最も良いものを提出しているのですが、その時間配分に関するパラメータです。

提出その4の改善で多少ましになりましたが、ロボットが嵌ってしまって永遠に終わらない、ということが、まだ起こっていました。 そのとき、適切に打ち切って別の動き方を考えないと、スコアは大幅に下がってしまいます。 そのためのパラメータがt_{limit}です。 ある動き方を作っている時間がt_{limit}を超えると、強制的に打ち切って次の動き方を考えるようにしています。

t_{limit}に関しても、NやVに関する依存性を調べました。 式はあまりきれいな形にはなりませんでしたが、スコアは改善されました。

提出その5

最終的な点数は8216点で、最終的な順位は154位でした。

実装の詳細

どのように実装したか軽く書こうと思います。 僕はプログラム設計に関して深い知識があるわけではないので、詳しい人からするとあまり良くない部分があるかもしれません。 ですが、どなたかの参考になれば幸いです。

基本

オブジェクト指向的なノリで、Pythonのclassを利用しました。 Pythonistaの上位陣のコードを眺めると、classを使わず全て関数だけで作っている人がいましたが、僕はclassを使った方が書きやすいと感じています。

今回は、

  • 盤面:Gridクラス
  • ロボット全体:Robotクラス
  • ロボットを構成する頂点:Verticeクラス

というクラスを作りました。

クラスからオブジェクトを実際に作り、出力する答えの候補となる動作を作る関数をSolve関数にまとめました。 そして、if __name__=="__main__"節でSolve関数を何回も呼び出すことで答えの候補を複数作り、最もターン数の小さいものをprintしています。

クラスの役割分担

上の3つのクラスに、次のような役割を振りました。

Gridクラス

  • 盤面の管理、あるマスにたこ焼きが置いてあるか、もしくはそのマスがたこ焼きを置く位置か

Robotクラス

  • 根の位置・それを動かす関数
  • 提出その1で実装した、腕の回転を全探索して、その結果を返す関数
  • 提出その2で実装した、根が受ける力を計算する関数
  • 提出その4で実装した、たこ焼きを確実に掴む・置くための最適な根の位置・回転のさせ方を全探索する関数
  • 計算した最適な動作を実行する関数

Verticeクラス

  • その頂点を、親の頂点を軸にして回転させる関数
  • たこ焼きを掴んだり置いたりできるか調べる関数
  • たこ焼きを掴んだり置いたりする関数

Gridと他のクラスはともかく、RobotクラスとVerticeクラスをどう役割分担させるか、結構悩んだ記憶があります。

Solve関数

Solve関数は、答えの候補となるものを作る関数にしました。

for文を回して1ターンごとに動きをRobotクラスの関数で計算して、それをまたRobotクラスの動きを担当する関数に渡すことでRobotを実際に動作させています。

そして、盤面上に何個たこ焼きが残っているかという情報を管理して、しきい値 m_{th}以下になったら、ロボットの動かし方を変更するようにしています。

また、TLEにならないように時間を管理して、Solve関数の呼び出しから t_{limit}が経つと強制終了するようにしました。

if __name__=="__main__節

提出その3やその4で説明したように、Solve関数を1回呼ぶだけだと、運によって結果が大きく変わってしまいます。 そのため、複数回答えの候補を作ってその中で最も良いものを提出しているのですが、それをまとめているのがこの節です。

問題の標準入力を受け取って、TLEにならないように時間管理しながらSolve関数を複数回呼び出して、最も良いものを標準出力しています。

反省

初参加ということで、たくさん反省がありますが、とりわけ感じたのが、

自分の書いたソースコードが読みづらい

ということでした。

普通の競プロのコンテストでは、長いコードを書くことが少なく、そして一旦正解してしまえばそのコードを見返す必要はありません。 一方で、AHCでは、自分の書いたプログラムに手を加えなければいけません。 自分が書いたプログラムであっても、時間が経てば詳細は忘れてしまうものです。 そのため、自分が書いたプログラムを読み返して理解しなければなりません。

ですが、僕が今回書いたプログラムは汚くて読みづらく、理解するのに時間がかかりました。 これからは、未来の自分が読みやすいような、保守性の高いプログラムを書きたいと思います。

また、次のAHCでは、様々な数理最適化の手法や、ビームサーチや焼きなましといったAHCの典型手法も使ってみたいです。 機械学習(特に強化学習)的なこともできるという噂を耳にしたので、ゆくゆくはそういうこともやってみたいと思います。

最後に

初参加でしたが、とても楽しかったです。 AHCは月1で開催されているので、また参加したいと思います。 ここまで読んでいただき、ありがとうございました。

*1 :もう1か月近く経とうとしています

*2 :これから勉強していきたいです

*3 :もう少し頑張ればもっと計算量を減らせそうですが、実装の簡潔さを取りました

*4 :実は、提出その4で追加した機能を若干改良しています

ICPC国内予選2024参加記(Yotugi視点)

こんにちは、Yotugiです。ICPC2024国内予選に九州大学からチームquery conquerorで出場し、全体順位79位で予選通過しました。
完全に乗り遅れましたが、模擬国内と国内予選の参加記です。最後まで読んでくれると嬉しいです。(以下常体)

チーム紹介

去年自分はheap_qというチームで参加したが、今年は新しいチームで参加した。
チームメンバーは以下の三人。
・RiRinbaru
AtCoder青色、ARC> ABC の天才タイプ、考察担当。
・downer
AtCoder水色、ABC ≒ ARC のバランス型、実装がチームで一番強い。
・Yotugi(自分)
AtCoder青色、ABC> ARC でad-hocな問題が苦手、チーム唯一去年の横浜を経験している。あと自分だけ使用言語がPython

チーム名のquery conquerorは、九州大学の略称であるquを入れたいという話になり、quが部分文字列に含まれる単語を探した結果、この名前になった。

練習

GW明けにチームを結成、そこから週一のペースで練習会をした。練習会では、国内予選と模擬国内の過去問を年度ごとに解いた。練習会では毎回いい成績をとっていて、同校制限があっても通過できそうかなという感じだった。

模擬国内

遅め三完で70位という結果だった。国内予選通過圏外で、かなり冷えた結果になってしまった。

問題ごとの振り返り(ネタバレ有りのため注意、一週間以上前なので記憶が捏造されているかも)

A問題
こどふぉっていて、30分遅れてのスタートだった。かなり焦った。
Aは自分が実装して、残り二人が問題文を印刷してくれた。
AC(6:37)

B問題
downerが解いてくれた。
AC(20:12)

C問題
三次元空間にn個の点があり、長方形をいくつ作れるかという問題。
三点を全探索するO(n^3) の解法しか思いつかず、C++を使用しているdownerに実装してもらった。結局C++でもTLEしてしまい、通らなかった。
ここでD問題が解けていたので、C問題を飛ばすという作戦を取り、結果的にこの作戦が大失敗してしまう事になった。

D問題
自分が実装した。
求めるものは各教科の過去問を持っている確率の総和で、教科ごとに独立のため、各教科について確率を計算する。ここで、各教科について、それぞれの人がその教科を持っている確率についても独立に考えてしまい、解法が間違っていた。
あまり難しくないDPだったので実装はすぐに終わったのだが、嘘を実装していたのでサンプルケースが合わない。その間にE問題が解けたらしいので、downerがEを実装し、自分とRiRinbaruでDを見直していた。この時C問題は完全に忘れ去られいた。(自分が忘れてただけかも)

E問題
自分は問題を読んでいなかったが、DPで解けるらしい。実装が重くて無理という話になり、さすがに放置していたC問題を解こうという話になった。
C問題に戻ってからわずか数分でdownerがO(n^2)の解法を思いつき、自分が実装した。
C問題AC(1:43:47)

F問題
RiRinbaruが解けたという事で実装をしてもらったが、詰まっていた。
この時点で残り一時間弱になっていて、とりあえずD問題をどうにかしようという話になった。
実は教科ごとに独立じゃないのでは?という話になり、bitDPを考えるも計算量が間に合わなそうで、いろいろ考えたが結局解けなかった。

模擬国内振り返り

簡単に解けたはずのC問題を放置してしまったのは完全に戦略ミスだった。本番は解かなきゃいけない枠の問題は飛ばさずに解き切ろうという話をした。

国内予選前日

チームで最後の練習会をした。高難易度問題を倒せて、とても良い雰囲気だった。
寝る前に重実装の練習をしたのだが、無限にバグを発生させてとても悲しい気持ちになってしまった。眠れなかったので、心を落ち着かせるために安達としまむらを鑑賞した。やはり百合は素晴らしいと思った。

国内予選当日

結局よく眠れて、昼過ぎに起床した。
16時すぎに教室につき、downerと雑談していた。教室にホワイトボードが無くて困っていたら、監督の先生が用意してくれた。このホワイトボードがなければ通過は怪しかったかもしれないので、先生に感謝。

国内予選本番

A問題
開始と同時に問題文を印刷して、その傍らで自分がA問題を実装した。
AC(3:28)

B問題
downerが実装した。この間に自分とRiRinbaruでC問題を解く予定だったが、問題用紙が逆順に印刷されていて、なかなかC問題がプリントアウトされずに内心かなり焦った。
プリンターを応援していたらBが通っていた。
AC(12:21)

C問題
算数を頑張ればO(1)で解けそうな見た目だったが、六角形グリッドのBFSをやるという方針になり、自分が実装した。座標と距離の情報を配列ではなくdefaultdictで持つと、メモリが足りず処理が落ちてしまった。結局二次元配列で書きなおしたのだが、そこで微妙に時間をロスしてしまった。
AC(30:05)

D問題
C問題の実装中に解けていたみたいなので、downerに実装してもらった。
自分も問題を斜め読みしたが、周期性を利用する問題で実装がとても重そうな感じだった。
実装に苦戦している様子だったが、ここでD問題を諦めると模擬国内と同じ失敗をしてしまいそうだったので頑張って実装してもらった。
AC(1:12:49)

E問題
RiRinbaruが解いてくれて、自分が実装した。この時点でEを通しているチームは少なかったので、なんとかこの問題は解き切ろうという話になった。
実装がかなり沼って一時間以上かかってしまい、なんとか書ききって提出したがWAだった。残り20分弱のところで解法が嘘だったことにRiRinbaruが気づいてくれて、すぐに正しい解法も考えてくれた。この時Fも解けていたのだが、実装が間に合わなさそうという事でEを解ききる作戦になった。ここでかなり筋が悪い実装をしてしまい、また沼ってしまった。残り一分くらいでそれっぽいコードを書き上げたが、提出が間に合わなかった。

予選後

この時点で通過はかなり絶望的だと思い、E問題を通せなくてとても申し訳ない気持ちになっていたが、学内一位だったので同校制限がかからず、崖っぷちで通過できていた。本当に良かった。
日曜日に打ち上げでしゃぶしゃぶに行った。食べる順番の最適化に失敗し、後半はかなりお肉を食べるのが苦しくなってしまったが、とても楽しかった。
しゃぶしゃぶの料金は先輩が支払ってくれました。ありがとうございます。

最後に

チームを組んでくれたdowner君とRiRinbaru君、監督を引き受けてくれた先生に本当に感謝です。
横浜では、去年のheap_qを超えたいなと思っています。
では、横浜で会いましょう!

部名変更のお知らせ

こんにちは!

突然ですが,弊部はこの度部名を変更することとなりました.新しい名称は


です!
新しい名称は,部のイメージをより明確にし,活動内容をより広く知っていただくためのものです.

変更の背景

弊部の現在の活動はICPCへの参加だけでなく,主にAtCoderの問題を用いた練習会やその他コンテストへの参加などを行っております.
そのため,旧名「九州大学 ICPCチャレンジ部」は我々の現在の活動を十分に表現できていないと考えています.
九州大学 競技プログラミング部」は現在の活動をより正確に表現しているため,新しい名称として採用いたしました.

変更内容

九州大学の公認の部活動としての登録名称「九州大学 ICPCチャレンジ部」は現状では変更はなく,外部への宣伝時の呼称が変わります.
そのため,大学のwebサイト等では変わらず旧名称が使われることとなります.
Xやはてなブログなどの各種アカウントの登録名は順次変更していく予定です.

最後に

呼称を変更しましたが,活動内容は変わりません.

今後ともよろしくお願いいたします.

九州大学 競技プログラミング

Tweets by icpccc

【2024年度新歓】九州大学新入生の皆さんへ

九州大学新入生の皆さん,合格おめでとうございます!
私たち九州大学 ICPCチャレンジ部Atcoderを始めとした競技プログラミングコンテストに取り組む大学公認サークルです!!
プログラミング力,アルゴリズム力の向上を目的に週1~2回程度参加しており,他サークルとの兼部も十分に可能です!

新歓ガイダンスについて

ICPCチャレンジ部の活動についての説明を行います.
4月16日(火)にセンター2号館の2211教室,4月18日(木)にセンター2号館の2212教室でどちらも18:30から行います!!
オンライン,オフライン参加も可能です!(カメラ,マイクオフでももちろん可!)
遅刻参加も歓迎です!!

オンライン参加はこちらからどうぞ!!
https://meet.google.com/irj-ibya-uwz

オフライン参加であっても,現地でオンライン用の配信を見ていただく形になりますので,参加者はスマホやパソコン,タブレット等を持参することを強くお勧めします!

その他情報発信について

Twitterブログなどで情報発信を行っています!
不明点,気になる点はDMなどで気軽に問い合わせいただけると嬉しいです!!

新歓アンケートについて

入部を希望される方は以下のアンケートにお答えください!(4月26日まで.以降入部されたい方は直接DMをください🙇.)
https://docs.google.com/forms/d/e/1FAIpQLScw-rbIJv4oBkszhcJoa_nusEfOJ_mavpzEK-lAWvhjG7tAqg/viewform?usp=sf_link

新歓ポスター

Tweets by icpccc twitter.com

引用をストックしました

引用するにはまずログインしてください

引用をストックできませんでした。再度お試しください

限定公開記事のため引用できません。

読者です 読者をやめる 読者になる 読者になる

AltStyle によって変換されたページ (->オリジナル) /