2013-01-16
■ 2013 JJMO 予選参加記
参加記かく。
~~~~~ 1/14(月) ~~~~~
9:50 家を出る。車で移動
所沢あたりで雪が降り始めた
!!激しい降雪につき練馬付近で緊急下車!!
高田馬場に移動。ここで早稲田大学へ歩いていこうという致命的なミスをする
途中で親切な人に東西線にのるといいですよ、とアドバイスを受けた->早稲田駅へ移動
このときすでに12:50...
ここでJMOする 雪が降り続くなか泣きそうになって走り回ってました
こうして13:30頃に会場入り。寒くてぬれてて最悪でした><
問題:
1. やるだけ。8/3
2. 素因数分解するとすぐに11,13,7,14,5,10,15,20が入ることが分かる。
後の二つは18,12 つまり5 7 10 11 12 13 14 15 18 20。
3. 全然分からず混乱。でも円周角の比を考えるだけだった。200/3°
4. 中央の5点を考えればよい。結局8通り調べるだけ。12通り
5. 裏返し相似。13:5
~~~~~ このとき残り1時間!!! ~~~~~
5完はヤバイ。このままでは確実に落ちる。
ここからスイッチが入る。
6. (100-a)(100-b)(100-c)の形にするとabc≡1(mod 100)を満たせばよいとわかる。
結果93*89*87=720099なので 269
7. おのおのの直線を見ていき、それを赤にする、という方針で解く。
選んだ2点が偶数辺分離れていたときは47通り。
奇数辺分だと48通り。ただし、2点間の最も離れている対角線は47通りではなく49通り。(正8角形などで考えるとわかる)
すなわち48*100*25+47*100*24+49*50=235250.
8~11. 解いてない
12. たぶん2個の場合に帰着されるだろーと思って4π-1とかいた。
~~~~~ 終了 ~~~~~
絶望(どう頑張っても7完... 落ちた...)
答え合わせphase
同級生がみんなすごくて焦る。
7もみんなと違うし悲しみ。
こうして新幹線で家に帰りました。
(地元と東京の天気swapしてほしかった。何で地元は雪降ってないんだ(憤怒))
(後日談)
7がプログラミングによって出た答えと一致した。12は開成の人以外もだいたいみんな4π-1と書いてて驚いた。
だから12は4π-1でなかったらボーダー自体が-1しそう。
ミスがなければ通ったかな? ボーダーは6であることを祈ってます。
(予選でミスのせいで落ちるのは悲しすぎるので...)
■ 2013 JJMO 予選 7
#include#include #include #include using namespace std; #define EPS 0.0000001 pair<double,double>ve[105][105]; bool han(pair<double,double> a,pair<double,double> b){ if(abs(a.first*b.first+a.second*b.second) return true; }else{ return false; } } int main(){ int ans=0; for(int i=0;i<100;i++){ for(int j=i+1;j<100;j++){ ve[i][j].first=cos(j*3.6*3.141592653589/180.0)-cos(i*3.6*3.141592653589/180.0); ve[i][j].second=sin(j*3.6*3.141592653589/180.0)-sin(i*3.6*3.141592653589/180.0); } } for(int i=0;i<100;i++){ for(int j=i+1;j<100;j++){ bool used[105]={}; used[i]=true; used[j]=true; for(int k=0;k<100;k++){ for(int g=k+1;g<100;g++){ if(!used[k] && !used[g]){ if(han(ve[i][j],ve[k][g])){ ans++; } } } } } } printf("%d%c",ans,10); }
出力 235250(自分の解答と一致した)
合っているといいな〜