メモ

yukicoderでゆるふわgolf

2016-05-18から1日間の記事一覧

yukicoder No.228 ゆきこちゃんの 15 パズル

問題はこちら No.228 ゆきこちゃんの 15 パズル - yukicoder今現在yukicoderの「解説」からリンクされてるやつは嘘解法なので注意入れ替えを行うと動けなくなるので、入れ替えをするならそのパネルは移動後に正しい位置に移らならなければならない。 そうい…

yukicoder No.227 簡単ポーカー

問題はこちら No.227 簡単ポーカー - yukicoderまず各カードが何枚あるか調べ、2枚組み・3枚組みが何組あるか調べる int main(){ int i,d=0,t=0,a[14]={}; for(i=0;i<5;i++){ scanf("%d",&p); a[p]++; } //カードiがa[i]枚ある for(i=1;i<=13;i++){ if(a[i]=…

yukicoder No.224 文字列変更(easy)

問題はこちら No.224 文字列変更(easy) - yukicoder読み込んで前から見比べていって違うものの個数をカウントするだけ (求める値はSとTのハミング距離というやつになる) int main(){ char s[1010],t[1010]; int i,n=0; scanf("%*d\n"); gets(&s);gets(&t);…

yukicoder No.222 引き算と足し算

問題はこちら No.222 引き算と足し算 - yukicoder読み込んだ演算子で場合分けするだけ int main(){ int x,y; char op; scanf("%d%c%d",&x,&op,&y); printf("%d",op=='+'?x-y:x+y); return 0; } '+'は43、'-'は45なのでop-44で±1が作れるを利用すると a,b; ma…

yukicoder No.221 犯罪都市

問題はこちら No.221 犯罪都市 - yukicoder条件付き確率の問題 1万人あたりN人がマフィアなので、「構成員」と判定される人数は1万人あたり (10000-N)*0.01+N*0.99 人となる 実際には構成員でない人は(10000-N)*0.01 人なので、誤認逮捕率は ((10000-N)*0.01…

yukicoder No.220 世界のなんとか2

問題はこちら No.220 世界のなんとか2 - yukicoderよく考察すると難しい計算はしなくて良い事がわかる10^Pは該当しないので、必要なら上位にleading zeroをつけることで「ちょうどP桁の数のうち条件を満たすものは何個あるか?(ただし0を除く)」という問題…

yukicoder No.219 巨大数の概算

問題はこちら No.219 巨大数の概算 - yukicoderx^yは10^(y*log10(x))であることを利用すれば Z=floor(y*log10(x)) X.Y...=10^frac(y*log10(x)) となる(frac(x):=x-floor(x))問題公開当初は正確に求める必要があり、9.9999...×10^Zや1.0000... ×10^Zみたい…

yukicoder No.218 経験値1.5倍

問題はこちら No.218 経験値1.5倍 - yukicoder必要な素材の個数はそれぞれceil(a/b)、ceil(a/c)で計算できる。 ceil(a/b)≦ceil(a/c)*2/3 かどうかを確かめれば良い int main(){ int a,b,c; scanf("%d%d%d",&a,&b,&c); b=(a-1+b)/b; c=(a-1+c)/c; puts(c>b*2/…

yukicoder No.216 FAC

問題はこちら No.216 FAC - yukicoderK君を0番の人だと思えば、各番号の人の得点を求めて、0番の人の点より大きな点の人がいるかを調べれば良い int main(){ int a[101]={},b[101]={},i,n,k,s=0; scanf("%d",&n); for(i=0;i<n;i++)scanf("%d",a+i); for(i=0;i<n;i++){ scanf("%d",&k); b[k]+=a[i]; } for(i=1;i<=100;i++)if(b[i]>b[0])s++; puts(s?"NO":"YES"); re</n;i++)scanf("%d",a+i);>…

yukicoder No.212 素数サイコロと合成数サイコロ (2)

問題はこちら No.212 素数サイコロと合成数サイコロ (2) - yukicoder数学 確率変数X,Yが独立ならE[XY]=E[X][Y]、ということを使う (線形性E[X+Y]=E[X]+E[Y]は任意の確率変数X,Yで成立するが、E[XY]=E[X]E[Y]の成立にはX,Yの間に無相関性(独立性より弱い)…

yukicoder No.211 素数サイコロと合成数サイコロ (1)

問題はこちら No.211 素数サイコロと合成数サイコロ (1) - yukicoder2重ループで全探索するだけ int main(){ int a[]={2,3,5,7,11,13},b[]={4,6,8,9,10,12},i,j,n=0,k; scanf("%d",&k); for(i=0;i<6;i++)for(j=0;j<6;j++)if(k==a[i]*b[j])n++; printf("%.12f…

yukicoder No.208 王将

問題はこちら No.208 王将 - yukicoder障害物がないならば、必要な移動距離はmax(x,y) x

yukicoder No.207 世界のなんとか

問題はこちら No.207 世界のなんとか - yukicoder調べるべき数は高々100個なので全て毎回チェックすれば良い int main(){ int a,b,i,t,f; scanf("%d%d",&a,&b); for(i=a;i<=b;i++){ f=0; if(i%3==0)f=1; //3の倍数かチェック for(t=i;t;t/=10)if(t%10==3)f=1…

yukicoder No.204 ゴールデン・ウィーク(2)

問題はこちら No.204 ゴールデン・ウィーク(2) - yukicoder問題文の解釈が難しかった 「連続した最大D日間の平日を休日とする権利が与えられます(分割してはいけません)」 というのは「Dが4のときxxoxoxx→OOoOoOxとすることは出来ない」というだけの意味では…

yukicoder No.203 ゴールデン・ウィーク(1)

問題はこちら No.203 ゴールデン・ウィーク(1) - yukicoder順番に調べていくだけ int main(){ char a[15]; int s=0,n=0,i; //sに現時点での最大連休数、nに現在の連休数を保存 gets(a);gets(a+7); //無理やり連結 for(i=0;i<14;i++){ if(a[i]=='o'){ n++; s=s

yukicoder No.201 yukicoderじゃんけん

問題はこちら No.201 yukicoderじゃんけん - yukicoder与えられた数は大きすぎるので文字列として処理する じゃんけんの手は関係ない int main() { char sa[101],pa[10001],sb[101],pb[10001]; int x; scanf("%s%s%*s%s%s",sa,pa,sb,pb); x=strlen(pa)-strle…

yukicoder No.198 キャンディー・ボックス2

問題はこちら No.198 キャンディー・ボックス2 - yukicoder手持ちのキャンディの数に制限がないとする このとき問題は「Σ|c[i]-m|を最小化するmを求めよ」と読み替えられるので、mはc[i]の中央値とすれば良い。 (証明) c[i]の中央値をmとする。任意のαに…

yukicoder No.197 手品

問題はこちら No.197 手品 - yukicoder場合分け ・コインの数が変わっていたら成功 ・そうでないとき N≧2なら任意の状態にできることが確かめられるので失敗(ooo,oox,oxo,xooを調べれば十分) N=1ならシミュレーションで確かめる N=0なら前後で変化していれ…