読者です 読者をやめる 読者になる 読者になる

君はまるで砂漠に咲く、一輪の花。

僕はその花に引き寄せられる蝶。

Codeforces Round #286 (Div. 2)

はい。
http://codeforces.com/contest/505

A. Mr. Kitayuta's Gift

ざっくりと大意

・一文字追加で回文にしたものか、出来なければNAを出力する。

方針のようなもの

・回文になるか試すというか文字列長が最大で10なら適当でもどうにでもなる気がする。

n=list(raw_input())
for i in xrange(len(n)+1):
    for j in xrange(97,123):
        k=n[:]
        k.insert(i,chr(j))
        chk=''.join(k)
        if chk==chk[::-1]:
            print chk
            exit()
print 'NA'

2重ループで先頭/中間/末尾の全位置にa-zの全文字種を全部全部試させた。

B. Mr. Kitayuta's Colorful Graph

ざっくりと大意

・Mr. Kitayutaはn個の頂点、m個の辺からなる無向グラフを買った、頂点は1からnである。
・各辺は色\(c_i\)を持ち、頂点\(a_i\)と\(b_i\)を繋ぐ。
・q個のクエリの\(u_i\)と\(v_i\)間を移動するのに同色の辺のみを使って移動出来るかのパターン数で0から合計を出力するのかな??

方針のようなもの

・全部移動して試す。

n,m=map(int,raw_input().split())
g=[[] for i in xrange(n)]
for i in xrange(m):
    a,b,c=map(int,raw_input().split())
    g[a-1].append((b-1,c))
    g[b-1].append((a-1,c))

def sh(x,y,z):
    qu=[]
    qu.append(x)
    at=[x]
    while len(qu):
        chk=qu.pop(0)
        if len(g[chk])>0:
            for i in g[chk]:
                if i[1]==z and i[0]==y:
                    return 1
                elif i[1]==z and i[0] not in at:
                    qu.append(i[0])
                    at.append(i[0])
    return 0


q=int(raw_input())
for i in xrange(q):
    u,v=map(int,raw_input().split())
    ans=0
    for r in range(1,m+1):
        if sh(u-1,v-1,r):
            ans+=1
    print ans

1色だけを使いながら目的地へ移動できるかを全色試すようにして到達できれば+1する。全色試したらそのクエリの探索結果を出力でAC出来た。