1、時間複雜度分析
**:#include
#include
struct node;
int map[5][5] = ,,,
,,};int step[5][5] = ,,,
,,};int size = 0;
node* head = null;
node* tail = null;
node* tempnode = null;
void push(node* node)else
size++;
}node* pop()
size--;
return tempnode;void bsf()
//right
if (node->y + 1 <= 4 && step[node->x][node->y + 1] == 0 && map[node->x][node->y + 1] == 1)
//top
if (node->x - 1 >= 0 && step[node->x - 1][node->y] == 0 && map[node->x - 1][node->y] == 1)
//left
if (node->y - 1 >= 0 && step[node->x][node->y - 1] == 0 && map[node->x][node->y - 1] == 1)
}int dsf(int cx, int cy)
//bottom
if (cx + 1 <= 4 && step[cx + 1][cy] == step[cx][cy] + 1)
} //right
if (cy + 1 <= 4 && step[cx][cy + 1] == step[cx][cy] + 1)
} //top
if (cx - 1 >= 0 && step[cx - 1][cy] == step[cx][cy] + 1)
} //left
if (cy - 1 >= 0 && step[cx][cy - 1] == step[cx][cy] + 1)
} return 0;
int main()
printf("\n");
}//o(n2)
printf("逆序路徑為:\n");
//列印出路徑
if (dsf(0, 0) == 1)
else分析:遞迴部分的時間複雜度為o(n),但主函式中有雙重迴圈,時間複雜度為o(n2),所以這段**時間複雜度為o(n2)
2、揹包問題
**:#include
int max(int a,int b)
struct thinglist[101];
int dp[101][101]=;//初始化二維陣列
int main()
for(int i=1;i<=n;i++)
for(int j=list[i].w-1;j>=0;j--)
} printf("%d\n",dp[n][s]);}
執行結果:
12 1 4 磁碟監控
iostat 是i o statistics 輸入 輸出統計 的縮寫,iostat 工具可以對系統的磁碟操作活動進行監控,並匯報磁碟活動統計情況。除此外,它還能顯示 cpu的使用情況。其命令格式如下所示。iostat c d k m t v x n device all p device all i...
1214 線段覆蓋
貪心解法 解題思路 首先將線段端點調整為左端點小於 或等於 右端點 第二,根據右端點將線段從小到大排序 第三,掃瞄一遍,每次遇到的第乙個與當前的max不相交的即為最優選擇。實現 include includeusing namespace std const int n 101 struct nod...
1214 線段覆蓋 水
時間限制 1 s 空間限制 128000 kb 題目等級 gold 給定x軸上的n 0輸入描述 input description 輸入第一行是乙個整數n。接下來有n行,每行有二個空格隔開的整數,表示一條線段的二個端點的座標。輸出描述 output description 輸出第一行是乙個整數表示最...