メモ

yukicoderでゆるふわgolf

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

yukicoder No.294 SuperFizzBuzz

問題はこちら No.294 SuperFizzBuzz - yukicoder整数が3の倍数である必要十分条件は、各位の和が3の倍数であること。 5の倍数である必要十分条件は、一の位が0or5であること。 これより、問題は「各位の数字が'3'or'5'で、1の位が5であり、'5'の個数が3の倍…

yukicoder No.293 4>7の世界

問題はこちら No.293 4>7の世界 - yukicoder上位から見ていって、一致しなくなったところを比べれば良い int main(){ int p=1000000000,x,y,a,b; scanf("%d%d",&a,&b); do{ x=a/p%10; y=b/p%10; //これでx,yにはa,bの上から何桁目かが入る p/=10; }while(x==…

yukicoder No.292 芸名

問題はこちら No.292 芸名 - yukicoder読み込んだ文字列を1文字ずつ見ていって、tでもuでも無いところを出力していけば良い int main(){ char s[60]; int i,t,u; scanf("%s%d%d",s,&t,&u); for(i=0;s[i];i++)if(i!=t&&i!=u)putchar(s[i]); return 0; } 基本 …

yukicoder No.290 1010

問題はこちら No.290 1010 - yukicoder問題名がヒントになっているうまい問題 問題文は要するに「繰り返しが登場するか」ということ なのでもし同じ文字が2つ連続していればYES 同じ文字が連続しないなら、それは1010…か0101…という列になるので、N≧4なら「1…

yukicoder No.289 数字を全て足そう

問題はこちら No.289 数字を全て足そう - yukicoder読み込んだ文字が数字かどうか確かめて足す int main(){ char s[10010]; int i,m=0; gets(s); for(i=0;s[i];i++)if(s[i]>='0'&&s[i]<='9')m+=s[i]-'0'; printf("%d",m); return 0; } sは半角英数字からなる…

yukicoder No.287 場合の数

問題はこちら No.287 場合の数 - yukicoder意図としてはDPなのだろうけど、数学的考察により一発で求められる各変数をN-a,N-b,...と置き換えることにより、1つ目の条件式はa+...+h=2Nとしてよい 2つ目以降の条件を忘れて、a+...+h=2Nを満たすようなa~hの組…

yukicoder No.286 Modulo Discount Store

問題はこちら No.286 Modulo Discount Store - yukicoderyukicoder No.90 品物の並び替え - メモ これと同様にしてbitDP ほとんど同じなので通常解説は省略 int main(){ int d[99999]={},a[20],i,j,k,n,m; scanf("%d",&n); for(i=0;i<n;i++)scanf("%d",a+n); for(i=0;i<1<<n;i++){ //既に買った商品のbitが立っている for(j=0;j<n;j++){ //j番目の商品を新たに買う(jは0-based) if(i>>j&1)cont…</n;i++)scanf("%d",a+n);>

yukicoder No.285 消費税2

問題はこちら No.285 消費税2 - yukicoderd≦10^12なので、1.08を書けてもせいぜい15桁の精度があればよい double型は約15.9桁の精度があるので、多分そのまま計算しても多分大丈夫 int main(){ long d; scanf("%ld",&d); printf("%.2f",d*1.08); //出力形式…

yukicoder No.281 門松と魔法(1)

問題はこちら No.281 門松と魔法(1) - yukicoder3本の竹をa,b,cとする 門松列にするにはbを最大か最小にしなければならない #define max(p,q)(p>q?p:q) int main(){ int a,b,c,ta,tb,tc,d,s,t; scanf("%d%d%d%d",&d,&ta,&tb,&tc); ta>tc?ta^=tc^=ta^=tc:0; /…

yukicoder No.280 歯車の問題(1)

問題はこちら No.280 歯車の問題(1) - yukicoder歯数ZaとZbの歯車があり、前者が|θa|回転したとき後者は|θb|=|θa|*Za/Zbだけ回転するとの事だったので、 Zbの歯車が更にZcの歯車と接している時、|θc|=|θb|*Zb/Zc=|θa|*Za/Zb*Zb/Zc=|θa|*Za/Zc ここから帰納的…

yukicoder No.279 木の数え上げ

問題はこちら No.279 木の数え上げ - yukicoder「tの個数」「rの個数」「(eの個数)/2」の中で一番小さいものが答え #define min(a,b)(a

yukicoder No.278 連続する整数の和(2)

問題はこちら No.278 連続する整数の和(2) - yukicoder前回の問題yukicoder No.276 連続する整数の和(1) - メモの考察から、σ1を約数関数として Nが偶数の時σ1(N/2)、奇数の時σ1(N)となることが分かるのでこれを求める int main(){ long s=0,i,n,m; scanf("%…

yukicoder No.276 連続する整数の和(1)

問題はこちら No.276 連続する整数の和(1) - yukicoderaから始まる連続するN個の自然数の和はaN+N(N-1)/2となる。 aは任意なのでGCD(N,N(N-1)/2)が求める答えになる(十分性は明らか。必要性はa=0,1から)ところで Nが奇数の時(N-1)は2で割り切れるのでN(N-1…

yukicoder No.275 中央値を求めよ

問題はこちら No.275 中央値を求めよ - yukicoderソートして中央値を求めるだけ 要素の個数が偶数の時にちょっと注意が必要 int c(int*a,int*b){return*a-*b;} int main(){ int a[1010]; int n,i; scanf("%d",&n); for(i=0;i