メモ

yukicoderでゆるふわgolf

2016-04-08から1日間の記事一覧

yukicoder No.57 ミリオンダイス

問題はこちら No.57 ミリオンダイス - yukicoderサイコロ1個の期待値は3.5 よって「期待値の線形性」から3.5*Nが答え b;main(){b=!printf("%f",atoi(gets(&b))*3.5);} 45B

yukicoder No.56 消費税

問題はこちら No.56 消費税 - yukicoder 「税抜価格+税」で計算するだけ a;main(b){scanf("%d%d",&a,&b);a=!printf("%d",a+a*b/100);} 57B

yukicoder No.55 正方形を描くだけの簡単なお仕事です。

問題はこちら No.55 正方形を描くだけの簡単なお仕事です。 - yukicoderもし正方形になり得る3点なら その3点は直角二等辺三角形になっているはず なので、「その点の周りが直角で、それをなす辺の長さが等しい」というような点が3つの中にあるかどうか探す …

yukicoder No.53 悪の漸化式

問題はこちら No.53 悪の漸化式 - yukicoder三項間漸化式なので高校数学を思い出して一般項を求める特性方程式は 4λ^2=19λ-12 なので λ=3,3/4 一般項は a[n]=p*3^n+q*(3/4)^n の形になる n=0,1を代入してp=0,q=4 つまり一般項はa[n]=4*(3/4)^nこれはn→∞で0に…

yukicoder No.52 よくある文字列の問題

問題はこちら No.52 よくある文字列の問題 - yukicoder全探索 Cだと、重複を除いた要素数を数えたり、文字列の集合を作ったり、いちいち困難 char s[11],a[1030][11]; int c(char*a,char*b){return strcmp(a,b);} int main(){ int t,l,r,n,i; n=strlen(gets(…

yukicoder No.51 やる気の問題

問題はこちら No.51 やる気の問題 - yukicoder実際に毎日作業していくだけ D≦10^5なのでint型だと2乗するとオーバーフローする int main(){ a,b; scanf("%d%d",&a,&b); for(;b>1;b--)a-=a/b/b; printf("%d",a); return 0; } 処理系依存の未定義動作にまとめ…

yukicoder No.49 算数の宿題

問題はこちら No.49 算数の宿題 - yukicoder数→記号→数→記号→数→… と順番に読み込みつつ、前から計算していけば良い int main(){ int a,s,p; scanf("%d",&s); while(p=getchar()-10){ //改行が来るまで読み込み scanf("%d",&a); if(p=='+'-10)s*=a;else s+=a…

yukicoder No.48 ロボットの操縦

問題はこちら No.48 ロボットの操縦 - yukicoderまず、各方向の移動には、以前やったとおり、「距離÷1歩の長さ」の切り上げだけかかる 向きの変更には、Yが負なら必ず2回必要で、そうでないなら、まずY軸方向の移動を消化した後、X!=0なら横を向く必要がある…

yukicoder No.47 ポケットを叩くとビスケットが2倍

問題はこちら No.47 ポケットを叩くとビスケットが2倍 - yukicoderk回叩くと最大2^k枚になる 逆に任意のn≧1に対して、2^(k-1)<n≦2^k … (★)であるとき、ちょうどk回でn枚にできる なぜならポケットを叩くと、「ポケットに入れていた枚数だけ増える」ので k-…

yukicoder No.46 はじめのn歩

問題はこちら No.46 はじめのn歩 - yukicoderb/aの切り上げ int main(){ int a,b; scanf("%d%d",&a,&b); printf("%d",(b-1+a)/a); return 0; } 今回はa,b>0なので (b-1+a)/a=(b-1)/a+1 となる a; main(b){ scanf("%d%d",&a,&b); a=!printf("%d",--b/a+1); } …

yukicoder No.45 回転寿司

問題はこちら No.45 回転寿司 - yukicoder「今の皿をとった時の最高点」「取らなかった時の最高点」をそれぞれ保存する int main(){ int n,i,p=0,q=0,t; //pがとった時、qが取らなかった時 scanf("%d",&n); while(n--){ scanf("%d",&i); t=q+i; //今の皿をと…

yukicoder No.44 DPなすごろく

問題はこちら No.44 DPなすごろく - yukicoderあるマスへは、その1マス手前から来る方法と2マス手前から来る方法がある なのでフィボナッチ数列になるこれを int main(){ int a; long p=1,q=0,t; scanf("%d",&a); while(a--){ t=p+q; q=p; p=t; } printf("%l…

yukicoder No.43 野球の試合

問題はこちら No.43 野球の試合 - yukicoder自分のチームの未消化試合は全勝すれば良さそうに見えるが、 「1位が2チームいてもその次は2位」というルールのせいで 「あえて負けることで、他チーム同士が同順位となり順位が上がる」という現象が起こる 具体的…

yukicoder No.41 貯金箱の溜息(EASY)

問題はこちら No.41 貯金箱の溜息(EASY) - yukicoder111111円に満たない金額は1円玉で払うしか無いので、全体を111111で割ることで問題は次のように読み替えられる 「floor(M/111111)円以下を、1~9円玉を使って払う方法は何通りか」 ということでDP M≦10^…