time limit: 1000 ms memory limit: 65536 kib
大家都學過了**優化,其中有乙個dag優化,這次我們就練習這個操作。
輸入第一行為乙個整數n(n < 100),表示該組輸入的表示式的個數
之後n行為表示式,每個變數為乙個字母,表示式僅包括二元運算 + - * /
例如:a=b+c
通過構造dag圖,進行**優化,只需要保留ab,刪除無用變數,刪除變數時,盡量保留最早出現的變數。
ps:保證ab的值不同
3a=b+c
b=b+b
a=c+c
b=b+b
a=c+c
我在網上看了好多**ac這個題都是接近90多行,而且沒有注釋,看起來非常難理解,搜了很久才發現乙個不同其他寫法的博主的部落格,而且只有四十多行,但是也沒有注釋,我花了乙個多小時理解通,然後給大家加上注釋
#include
//主要是思想是,由於題目要求只保留和a,b相關的,所以與a,b相關的式子也需要儲存,
//比如a=c+d,則c=***和d=***的式子也需要儲存,
using
namespace std;
int print[
100]
;//這個陣列,裡面只儲存0或者1,是1則說明這個式子是優化後需要輸出的
char formula[
100][20
];//這個是乙個字串陣列類似於string formula;
int revelant[
300]
;//這個陣列是用來將a,b或者與a,b相關的字母的accii碼的下標,存為1,比如revelant['a']=1,等價於revelant[65]=1;
intmain()
}for
(int i=
1; i<=n; i++
)break;}
}}}for
(int i=
1;i<=n;i++
)}
真 詳解動態規劃 DAG
dag directed ayclic graph 有向無環圖 劉汝佳 dag是動態規劃的基礎,很多問題都可以轉化成dag上的最短 最長或路徑計數問題 如nyoj 16 巢狀矩形問題,描述有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,b 可以巢狀在矩形y c,d 中當且僅當a輸入 ...
矩陣巢狀(DAG)
題目 見紫書 思路都是根據紫書來的,然後重點是學習了一下利用結構體自定義矩陣的方法,這個方法確實比直接兩兩比較是否能夠巢狀優化了很多 大佬的 菜雞的 include include include using namespace std const int maxn 100 5 int depth ...
ListView優化詳解
一 為什麼需要優化?二 listview優化的核心 view的復用 getview方法中有三個引數position標識listview正繪製第幾個item。convertview相當於view控制項的快取裝置,通過layoutinflater可將item的布局檔案壓縮成乙個檢視賦值給convertv...