結局1問(A)しか解けなかった・・・。正直B,Cは部分点とりにいけば良かったと思っている。高校生が作った問題だとは思えないほどに難しいもの。id:JAPLJ君恐ろしい。
てか、Aの問題の意味を理解するのに2時間近く掛かったでござるの巻。
JAPLJ[B]も含めた結果:58位/69人(ひどい)
A: Anemone
与えられた関数のグラフでの交点?的なものの個数で探す。入力0がコーナーケース。
#include <iostream> using namespace std; int main(){ int n; cin >> n; int zero[32]; zero[1] = 2; for(int i=2;i<32;i++){ zero[i] = zero[i-1]*2-1; } for(int i=1;i<32;i++){ /* 成長度 0 */ if( zero[i] == n ){ cout << i << " " << "0.0" << endl; return 0; } /* 成長度 0<k<1 */ if( (1<<i) == n ){ cout << i << " " << "0.5" << endl; return 0; } /* 成長度 1 */ if( 1<<(i-1) == n ){ cout << i << " " << "1.0" << endl; return 0; } } /* 0の時例外処理 */ if(n==0)cout << "1 1.1" << endl; else cout << -1 << endl; }
B Banksia
トーナメント表。頭混乱したので飛ばした。
C Cosmos
分かりそうで分からない。バックトラック的解法しか思いつかない。部分点しかもらえなさそうな。
D Dianthus
タイトルがdiarrheaと似ていたから問題画像が視覚的に不気味だったので飛ばした。
E Edohigan
見るからに幾何っぽかったので飛ばした。
F: Flowers
時間かけても10点レベルの解法くらいしか思いつかなそうだったので飛ばし。