1. 程式人生 > 實用技巧 >PAT的題目解析總結一

PAT的題目解析總結一

1001 A+B Format

to_string()函式的使用,可以使一個數字轉換為字串形式

將新增逗號的位置問題轉換為數學問題:((i+1)%3==len%3)&&i!=len-1

1002 A+B for Polynomials

模擬題目:簡單的多項式加法,可以使用陣列儲存,來一項,就加一項

1003 Emergency

Dijkstra演算法,混合了最短路徑的條數,以及點權問題。

            if(!vis[v]&&e[u][v]!=inf){
                if(e[u][v]+dis[u]<dis[v]){
                    dis[v]=e[u][v]+dis[u];
                    num[v]=num[u];
                    w[v]=w[u]+weight[v];
                }else if(e[u][v]+dis[u]==dis[v]){
                    num[v]+=num[u];
                    if(w[u]+weight[v]>w[v]){
                        w[v]=w[u]+weight[v];
                    }
                }

1004 Counting Leaves

每一層有多少個葉子節點

void dfs(int index,int depth){
    if(v[index].size()==0){
        book[depth]++;
        maxdepth=max(depth,maxdepth);
        return;
    }
    for(int i=0;i<v[index].size();++i){
        dfs(v[index][i],depth+1);
    }
}

1005 Spell It Right

水題

1006 Sign In and Sign Out

水題

1007 Maximum Subsequence Sum

最大子序列和,《資料結構與演算法》C語言版上的第一道演算法題,上面有三種解法