Codeforces Round #377 (Div. 2) 参加記

はい。 oxx--- (0/0) 1133(-76) http://codeforces.com/contest/732
はい。Aのみ1完でした。Bはコーナーケースで落とし。Cはサンプルは通っても適当すぎたので当然に落とし。

A. Buy a Shovel

ざっくりと大意

・kの値を繰り返し使って?(1回ならk * 1、2回ならk * 2、...)末尾1桁が0かrと同じ値になるのは何回目のときか。

Python2

k,r=map(int,raw_input().split())
for i in range(1,200):
    tmp=i*k
    if tmp%10==0 or tmp%10==r:
        print i
        break

なぜかrange(1,200)にしてるけど10回目には必ず下1桁0になる気がする。と思ってテストケースを見に行ったけど10回までの間にrと同じになるらしい。一致したら出力でbreakしてるから良いのですけど何を根拠に200にしたんだろうか。。

B. Cormen — The Best Friend Of a Man

ざっくりと大意

・わんわんおを愛情を込めて飼うのにとある連続した2日間で必ずk回以上の散歩に行く。
・n日間の散歩の予定表の数列がa、i日目には\(a_i\)回行くスケジュールである。
・わんわんおがかわいいので連続した2日間でk回以上になるよう予定変更する。既にk回以上の日を減らすことはない。
・k回以上になるようにした場合の最小の増加回数が幾つか??

Python2

n,k=map(int,raw_input().split())
a=map(int,raw_input().split())
ans=chk=0
if n==1:
    print 0
    print a[0]
    exit()
for i in range(1,n):
    tmp=a[i]+a[i-1]
    if tmp<k:
        ans+=(k-tmp)
        a[i]+=(k-tmp)
print ans
print ' '.join(map(str,a))

本番では落とされたし、落ちた理由がわかってなかった。事後で書き直してACに。n=1で散歩計画が1日しかない場合は必要回数と予定回数にかかわらず変更しないのが正解になります。

C. Sanatorium

ざっくりと大意

・静養先での3食の食事の予定回数がb,d,sで与えられる。食事抜きにならないように最小で予定回数を増やす??
・各食事前に撤退することで3食全てが必要になるわけではない??
・サンプル1の流れは朝昼晩, 朝昼晩, 朝で撤退するイメージ。2回目の晩御飯に追加が必要。3日目は朝食べて撤退で他は追加の必要なし。
・あとで

Codeforces Round #376 (Div.2) 参加記

はい。 oox--x 1209(+27)
http://codeforces.com/contest/731
Aは図とサンプル、Noteで余裕。Bは問題解読でかなり苦戦。Cも解読で苦戦、直前に解読できたけどAC出来る内容じゃなかった。Fも解読出来たしサンプルなんとかなったので出したけども当然にWA。

A. Night at the Museum

ざっくりと大意

・a-zがリング状になっているのを頭出し?する移動距離がいくつか。

Python2

s=0
ans=chk=0
n=raw_input()
for i in n:
    tmp=ord(i)-97
    tmp2=abs(s-tmp)
    if tmp2>13:
        tmp2=abs(26-tmp2)
    ans+=tmp2
    s=tmp
print ans

13離れるのが右回り、左回りの分岐になると思う。相対で距離を見てるのでスタートを97にすれば1文字ずつord()-97する必要はなかったかもしれない(未検証)。

B. Coupons and Discounts

ざっくりと大意

・長さnの数列a、n回の練習会で各回の参加者が\(a_i\)である。
・参加者たちにピザを提供するのにかならずクーポンでお得になるように買いたい。
・クーポン条件はtwo pizzasを1日で購入か、one pizzaを2日続けて購入が条件。
・サンプル1で言うと1日目から (1) (1,2) (1) (1,2)のようにピザが購入されている。1,2日目の1番のピザで2日連続購入クーポン、2日目の2番と3日目1番で2日連続購入クーポン、4日目は1,2番のピザ2枚を1日で購入クーポンでYESになる。

Python2

n=int(raw_input())
l=map(int,raw_input().split())
ans=chk=0
for i in range(n):
    l[i]=l[i]%2
    if i<n-1 and l[i+1]>0 and l[i]>0:
        l[i+1]-=1
        l[i]-=1
print 'YES' if sum(l)==0 else 'NO'

1日で2枚か、2日連続で1枚をシミュレートした。

C. Socks

ざっくりと大意

・靴下はn本(ペア1足ではなく1本)あり、色はk色ある。
・靴下は数列cの順番で並んでいる。
・何番目の靴下を使うかのm件のクエリが与えられる、クエリの内容は左右、l rがそれぞれ何番目の靴下を使うか。
・クエリで与えられる予定と靴下の並んでいる順番のまま履くが左右で色違いは嫌なので塗り替えて揃える。
・最小の塗替え回数は何回か。
・サンプル1は1日目が1,2番目の靴下で色が(1,2)なのを1を塗り替えて(2,2)にする。2日目は色が(2,3)なのを3番目を塗り替えて(2,2)にしているイメージ。
・但し、サンプル1の場合で言えば1,2日目ともに2番目の靴下を塗り替えても回数は2で同じではある。

ACはできず。。

F. Video Cards

ざっくりと大意

ビデオカードの出力を約数、倍数の関係?(但し1以外)になるような値に調節する。
・サンプル1は3を基準にして、2番目のは使わずに3 + 0 + 15 + 9 = 27が最良になる。 ・サンプル2は2を基準にして、全部使って8 + 2 + 2 + 6 = 18が最良になる。

Technocup 2017 - Elimination Round 1 参加記

はい。 ox---- (0/0) 1182(-16)
http://codeforces.com/contest/727
Aのみ1完でした。。Bは問題文解読に失敗。Cは面白そうだったけどflushする問題はよくわからなかったのでスルーしました。

A. Transformation: from A to B

ざっくりと大意

・aから始めて2倍にするか、10倍にして更に1を足すかの操作を繰り返してbに出来るか。

続きを読む

Codeforces Round #373 (Div.2) 参加記

はい。 oox-- (0/0) 1198(+144) http://codeforces.com/contest/719
はい。あんま考えないで適当にやったらA問題で1Hack食らった。。結構悔しい。B問題も無駄に再提出。D問題で想定解やテストケースに穴が合ったようで問題は無効に。レーティングはDiv.1ではunrated、Div.2ではratedに。影響範囲の人数の違いでそうしたらしい。

A. Vitya in the Countryside

ざっくりと大意

・明日の月は今日と比べて大きくなるならUP、小さくなるならDOWN、わからないなら-1を出力。

続きを読む

Codeforces Round #372 (Div.2) 参加記

はい。 ox--- (0/0) 1054(-7)
http://codeforces.com/contest/716
B問題はちょっと解読ミスのようなで、、C問題以降は捨ててた。。

A. Crazy Computer

ざっくりと大意

・ZSはn文字を\(t_i\)秒のときに1文字ずつ入力する。
・Crazy Computerなので入力がc秒をこえて間隔が空くと全て失われる。 ・サンプル1は1秒のときに1文字目入力、このとき1文字保存されている。3秒のときに2文字目入力、間隔は2秒だったので合わせて2文字保存されている。8秒のときに3文字目入力、間隔は5秒だったので合わせて3文字が保存されている。14秒のときに4文字目入力、間隔は6秒で過去入力文は全ては消えて1文字が保存されている。19秒のときに5文字目入力、間隔が5秒だったので合わせて2文字が保存されている。20秒のときに6文字目入力、間隔が1秒だったので合わせて3文字が保存されている。

続きを読む