Codeforces Alpha Round #20
はい。昨日が18で今日が20なのは間違いではなくて開催順です。はい。 なんか超お試しコンテストだったようで問題数少なく難易度も低い。
A. BerOS file system
implementation
ざっくり大意
・区切りの'/'がかぶってるのを除去して正常なディレクトリ区切りに
方針のようなもの
・'/'区切りで受け取って結合して
#!/usr/bin/env python # -*- coding: UTF-8 -*- import time import sys, io import re, math start = time.clock() n=raw_input().split('/') ans=[] for x in n: if len(x)>0: ans.append('/'+x) print ''.join(ans) if len(ans)>0 else '/'
まだ他の方の回答見てません。。。
B. Equation
math
ざっくりと大意
・a,b,cが与えられ2次方程式の解の個数と解を出力する。
・ただし、a,b,cのいずれも0である場合があるのでその場合は2時方程式ではなくなる。
・解が無限にあるものは-1、解がないものは0を出力する。
方針のようなもの
・解なしの例外になりやすいパターンや、0除算でのエラーに気をつける。
a,b,c=map(int, raw_input().split()) chk=b**2-4*a*c ans=[] if a==b==c==0: print -1 elif a==b==0 or chk<0: print 0 else: if a!=0: ans.append(((-1.0*b)+(chk**0.5))/(2*a)) ans.append(((-1.0*b)-(chk**0.5))/(2*a)) if ans[0]==ans[1]: ans.pop() elif b!=0: ans.append((-1.0*c)/b) ans.sort() print len(ans) for i in ans: print i
a==b==c==0 はxがどんな数でも右辺が0になり解が無限にあるので-1です。 a==b==0でc!=0ですとxがどんな数でも左辺と右辺が等しくならないので解なしで0です。
C. Dijkstra?
graphs,shortest paths
ざっくりと大意
・nは頂点の数、mは端っこの数。 ・なんか最短経路っぽい?
方針のようなもの
・問題名からするとダイクストラ法でってことですよね、多分。
まだ解いてません。。