メモ

yukicoderでゆるふわgolf

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

yukicoder No.73 helloworld

問題はこちら No.73 helloworld - yukicoderhelloworldに登場しない文字はどうでもいいので除いておく 文字の並びはそれぞれ固めておくのが良い h..e..l..o..w..o..r..l..d.. と並べた時、helloworldの作り方を考える l,o以外は、その文字数だけ選び方がある…

yukicoder No.72 そろばん Med

問題はこちら No.72 そろばん Med - yukicoder前の問題と同じなので基本的な考え方は省略先にnの剰余をとっておけば、平方しても8Byteの範囲で収まるが n≡m mod pでもfloor(n*n/4)≡floor(m*m/4) mod pとは限らない しかし n≡m mod 2pならfloor(n*n/4)≡floor(…

yukicoder No.71 そろばん

問題はこちら No.71 そろばん - yukicoderN個のうちk個を上の珠として扱うと 上の珠の状態はk+1通り 下の珠の状態は(N-k)+1通りなので 扱える最大の値は(k+1)(N-k+1)-1となる ところでこれは、和が一定の2数の積を最大化する問題なので、2数が近くなるように…

yukicoder No.70 睡眠の重要性!

問題はこちら No.70 睡眠の重要性! - yukicoder0≦a,b<pのとき、a-bをpで割ったあまりは(a-b+p)%pで計算できる h時m分を、1日が始まってから(h*60+m)分が経過していると見れば h1時m1分からh2時m2分までの時間は(h2*60+m2-(h1*60+m1)+1440)%1440で求める事…

yukicoder No.69 文字を自由に並び替え

問題はこちら No.69 文字を自由に並び替え - yukicoderBにある文字がAにも使われているか順番に調べる int main(){ char a[11]={},b[11]={}; int i,j,n; scanf("%s%s",a,b); n=strlen(a); for(i=0;i

yukicoder No.67 よくある棒を切る問題 (1)

問題はこちら No.67 よくある棒を切る問題 (1) - yukicoder「ある長さxの棒をK本つくれるか?」という問題には ΣLi/x がK以上か否かを見ることで簡単に答えることができる これを用いて2分探索をする int main(){ int a[200010],i,t,n; long k,s; double u=1…

yukicoder No.65 回数の期待値の練習

問題はこちら No.65 回数の期待値の練習 - yukicoder問題文中の漸化式にしたがってそのまま実装 int main(){ double e[30]={}; int k; scanf("%d",&k); while(k--)e[k]=(e[k+1]+e[k+2]+e[k+3]+e[k+4]+e[k+5]+e[k+6])/6+1; printf("%f",e[0]); return 0; } 要…

yukicoder No.63 ポッキーゲーム

問題はこちら No.63 ポッキーゲーム - yukicoder1回につき2Kずつ食べていくので、食べる回数は Lが2Kの倍数の時L/2K-1 Lが2Kの倍数出ない時floor(L/2K) となる これは「L/2Kの切り上げ-1」なのでfloor((L-1)/2K)とまとめられる 食べる量はこれのK倍 int main…

yukicoder No.58 イカサマなサイコロ

問題はこちら No.58 イカサマなサイコロ - yukicoderDPすれば正確な値が求められるけど、誤差が緩いのでモンテカルロ int main(){ int n,k,i,j,t,s; scanf("%d%d",&n,&k); s=0; for(i=0;i<1e6;i++){ t=0; for(j=0;j<k;j++)t+=rand()%3+4; for(;j<n;j++)t+=rand()%6+1; for(j=0;j<n;j++)t-=rand()%6+1; if(t>0)s++; } printf("%f",s/1e6); return 0; }</k;j++)t+=rand()%3+4;>…