習題8-1 uva1149 11.8
#include #include using namespace std;int main()
sort(w+1, w+n+1);
l = 1 , r = n;
num = 0;
while(l<=r)
if(mi - w[l] >= 0) l++;
num++;
}cout《習題8-2 uva1610 11.8
#include #include #include #include #include using namespace std;
string qz(string a, string b)
for(int i = 0; i < len; i++) }
return a;
} int main()
} }cout《習題8-4 uva11491 11.8
#include #include #include #include #include using namespace std;
int main()
else
return;
}int main()
for(int i = 1; i <= n; i++)
else
else
i--;}}
cout《習題8-7 uva11925 11.10
#include #include #include #include #include #include #include #include using namespace std;
vectornum;
bool pd(int n)
return false;
} int main()
while(pd(n))
dot[100005];
bool cmp(node a, node b)
sort(dot, dot+n, cmp);
int cur = 0;
int tmp = 1;
for(int i = 0; i < n; i++)
}cout《習題8-13 uva10570 11.10
#include #include #include #include #include using namespace std;
int tmp[1005];
int num[1005];
int cur[1005];
int n, m;
int main()
int ans = 1000;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
}if(key < ans) ans = key;
} cout《習題8-14 uva10570 11.10
#include #include #include #include #include using namespace std;
struct node
num[100005];
int n, m = 0;
bool cmp(node a, node b)
return true;
}int main()
sort(num+1, num+1+n, cmp);
int l = 0;
int r = m;
while(r - l != 1)
cout《習題8-21 uva1621 11.13
/*感謝slo,提供的**,我菜是想了好久都沒想到好辦法,得到指點真是太好了
構造的題感覺和數學題目差不多了,都是要找一種方法來解決問題
這道題目就是先把3步的走完,然後在走1,2步的,牛逼啊
深受影響啊
*/#include #include #include #include using namespace std;
int ans[5005*3],n;
int main()
if((c+2)%3==0)
if(c%3==0)
} else
} }}int solve()
al = k;
tmp = ri[r];
k = 0;
for(int i = r; i > xr; i--)
ar = k;
return (xl+xr+1)*ml+min(ar,al);
} else if(ml > mr)
for(int i = 0; i < l; i++)
return k;
} else
for(int i = 0; i < r; i++)
return k;
} }int main()
num[1000005];
int link[100005];
int tmp[100005];
bool cmp(edge a, edge b)
} sort(num, num+mi, cmp);
for(int i = 1; i <= m; i++)
else
}if(flag || ni != mi) cout<<"no"《習題8-18 uva1619 11.20
#include #include #include #include using namespace std;
int li[100005];
int ri[100005];
int tmp[100005];
int sum[100005];
int main()
for(int i = 1; i <= n; i++)
for(int i = 1; i <= n; i++) }
cout
}
演算法入門經典第八章學習筆記(上)
教學內容相關章節 8.1演算法分析初步 8.2再談排序與搜尋 8.3遞迴與分治 8.4貪心法 教學目標 加粗表示基本掌握 1 理解 基本操作 漸近時間複雜度的概念和大o記號的含義 2 掌握 最大連續和 問題的各種演算法及其時間複雜度分析 3 正確認識演算法分析的優點和侷限性,能正確使用分析結果 4 ...
演算法入門經典第八章學習筆記(中)
有乙個2 k 2 k個方格棋盤,恰有乙個方格是灰色的,其他為白色,你的任務是用包含3個方格的l型骨牌覆蓋所有白色方格。灰色方格不能被子覆蓋,且任意乙個白色方格不能同時被兩個或更多骨牌覆蓋。如圖8 3所示為l型骨牌 三格板 的4種旋轉方式。方法也是分治法,總牌數 4 k 1 3 劃分成下面 a 這樣,...
第八章 指標 第八章 指標
1 什麼是位址 include using namespace std int main 11 在堆中建立對像 我們既然可以在堆中儲存變數,那麼也就可以儲存對像,我們可以將對像儲存堆中,然後通過指標來訪問它 include using namespace std class human 14 在建構...