メモ

yukicoderでゆるふわgolf

2016-10-01から1ヶ月間の記事一覧

yukicoder No.436 ccw

問題はこちら No.436 ccw - yukicoderやるだけ cが2個以上かつwが1個以上あることがccwが存在するための必要十分条件なので、cを1個以下にするかwをすべて消すか。 つまり「cの個数-1」「wの個数」のminが答え #define min(p,q)(p

yukicoder No.78 クジ付きアイスバー

問題はこちら No.78 クジ付きアイスバー - yukicoder制約が大きいので愚直にシミュレーションすると通らない……はずなのだけど、Cは速いからギリギリ通っちゃうんだなこれが char box[60]; int n,k,cost,stock,p; int main(){ scanf("%d%d%s",&n,&k,box); whi…

yukicoder No.181 A↑↑N mod M

問題はこちら No.181 A↑↑N mod M - yukicoderよく考えればそんなに難しくなくない…?と最初は思ったけれど、考えれば考えるほど泥沼になるタイプの問題だったm=1のとき、及び、n≦2のときは明らか。そうでないとする。 a↑↑nを返す関数をtetra(a,n)、a↑↑n mod …

yukicoder No.291 黒い文字列

問題はこちら No.291 黒い文字列 - yukicoderDPの状態遷移を考えるのに2時間くらいかかってしまった……dp[i][a][b][c][d]=(i文字目まで見て、Kがa個、内KUがb個、内KURがc個、内KUROがd個あるときのKUROIの内数) として配るDPを考える K,U,R,O,Iの各文字がき…

yukicoder No.372 It's automatic

問題はこちら No.372 It's automatic - yukicoderdp[i][j]を「i文字目までを使って作れる数の内、mod Mでjであり、先頭が0(0のみを含む)でなく、空文字列でもないものの個数」として配るDPを考える (i+1)文字目の数をcとすると、dp[i+1]は次のように作られる…

yukicoder No.432 占い(Easy)

問題はこちら No.432 占い(Easy) - yukicoder問題文のとおりに操作をすれば良い char s[1010]; int main(){ int i; gets(s); for(;gets(s);){ while(strlen(s)>1){ for(i=0;i<strlen(s)-1;i++){ s[i]+=s[i+1]-'0'; if(s[i]>'9')s[i]-=9; } s[i]='\0'; } puts(s); } return 0; } まず何の工夫もなく縮めて c</strlen(s)-1;i++){>…

yukicoder No.435 占い(Extra)

問題はこちら No.435 占い(Extra) - yukicoderyukicoder No.434 占い - メモと全く同じ x,a,b,m,n,i,t,ans,c,c3; inv9[]={0,1,5,0,7,2,0,4,8}; f3(n){int i=0;for(;n&&n%3==0;n/=3)i++;return i;} g3(n){for(;n&&n%3==0;n/=3);return n;} main(){ for(gets(&…

yukicoder No.434 占い

問題はこちら No.434 占い - yukicoder手順3の「できた数が2桁なら十の位と一の位を足す」という操作は9での剰余を求めることとほぼ等しいことに注意すれば、途中で行われる操作が加算のみであることから、これは最後にまとめてすれば良い。 よって(Σs[i]*(…

yukicoder No.431 死亡フラグ

問題はこちら No.431 死亡フラグ - yukicoderやるだけ 生存するのは、死亡フラグの合計が2未満or生存フラグが1 int main(){ int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d); puts(a+b+c<2|d?"SURVIVED":"DEAD"); return 0; } 少し読み替えて、フラグの合計が2…

yukicoder No.425 ジャンケンの必勝法

問題はこちら No.425 ジャンケンの必勝法 - yukicoder1回目: 勝ち→1/3 負け→1/3 あいこ→1/3なので「前回があいこで、今回必勝法を使う確率がpのときに勝つ確率」をf(p)とすると、求めるべきは当然 1/3+1/3*f(p) となる。前回があいこで、今回必勝法を使う確…

yukicoder No.420 mod2漸化式

問題はこちら No.420 mod2漸化式 - yukicoder/2と%2が並んでいるところを見るといかにも2進法っぽい。 ということで、2進法化した数をfに放り込んだところを想像すると、結局fはbitpop数を数える関数であることが分かる ・個数 0bit目から30bit目までのどのb…

yukicoder No.428 小数から逃げる夢

問題はこちら No.428 小数から逃げる夢 - yukicoderCではたとえ整数でも190桁の数をそのまま扱うことはできないので工夫が必要 幸いNが小さいので、多倍長の乗算のためのなにがしかを持ち出さなくても1桁ごとに筆算していけば良い int main(){ char ans[999…

yukicoder No.427 テレビ

問題はこちら No.427 テレビ - yukicoder H:Wは3:4か4:3なので、大小関係をチェックするだけでよい x;main(y){x=scanf("%d%d",&x,&y)>puts(x

yukicoder No.423 ハムスター語初級(数詞)

問題はこちら No.423 ハムスター語初級(数詞) - yukicoder入力の末尾に"ham"をつけるだけ……ではない 入力が0のとき、かつその時に限り、入力をそのまま出力することになる char s[99]; main(){ gets(s); printf(strcmp(s,"ham")?"%sham":"%s",s); return 0…