【BJOI2014】路徑

來源:互聯網
上載者:User
Description

在一個N個節點的無向圖(沒有自環、重邊)上,每個點都有一個符號,可能是數字,也可能是加號、減號、乘號、除號、小括弧。你要在這個圖上數一數,有多少種走恰好K個節點的方法,使得路過的符號串起來能夠得到一個算數運算式 算數運算式。路徑的起點和終點可以任意選擇。

所謂算數運算式 算數運算式,就是由運算子串連起來的一系列數字。括弧可以插入在運算式中以表明運算順序。

注意,你要處理各種情況,比如數字不能有多餘的前置0,減號只有前面沒有運算子或數位時候才可以當成負號,括弧可以任意添加(但不能有空括弧),0可以做除數(我們只考慮文法而不考慮語意),加號不能當正號。

例如,下面的是合法的運算式:

-0/ 0

((0)+(((2*3+4)+(-5)+7))+(-(2*3)*6))

而下面的不是合法的運算式:

001+0

1+2(2)

3+-3

–1

+1

()
對於100%的資料,1≤N≤20,0≤M≤N×(N-1)/ 2,0≤K≤30 Analysis

dp模型顯然,考場上不難想到
只是隨著思考的深入,狀態的表示需要不斷完善
那麼最終的dp狀態為f[i][j][k][0..4]
表示走了k步,到達點i,還需要j個右括弧匹配,0..4分別表示當前點狀態
0表示為前置0
1表示數字
2表示運算子
3表示左括弧
4表示右括弧
預先處理每一種狀態後可接其他哪些狀態
有兩種特殊情況,“-”可以作為第一個,“(”後面可以接“-”
然後就直接轉移啦

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.