演算法考試專項複習筆記2(貪心和遞迴)

2021-10-01 23:51:58 字數 1586 閱讀 4609

設有n個活動的集合e=,所有的活動要求使用同一資源,而在同一時間內只有乙個活動能使用這一資源,每個活動都有使用這一資源的開始時間si和結束時間fi,且si#include

​#include

using

namespace std;

const

int n =

1e5+10;

typedef

struct nodenode;

node a[n]

;//比較,按照結束時間從小到大排序

intcmp

(node a, node b)

intmain()

}printf

("%d"

, ans)

;return0;

}john 準備駕車從 s 地駛往 t 地,油箱加滿時可行駛 k 公里。兩地之間有 n 個加油 站,加油站之間的距離 john 已經知道。john 希望在沿途盡可能少的停留加油。設計演算法, 確定應在哪些加油站加油,以滿足 john 的願望。

#include

intmain()

}printf

("count=%d\n"

,count)

;return0;

}

//棋盤覆蓋

#include

const

int n =8;

//t(x,y) -> top-left :左上角的座標

//s(x,y) -> special :特殊標識的座標

//l : 討論當前方格的邊長

//tag : 時間戳

int chessboard[n]

[n];

int tag =1;

voidf(

int tx ,

int ty ,

int sx ,

int sy ,

int l )

int t = tag ++

;int len = l /2;

​ //判斷特殊點是否在左上部分?

if( sx < tx + len && sy < ty + len )

else

​ //判斷特殊點是否在右上部分?

if( sx < tx + len && ty + len <= sy )

else

​ //判斷特殊點是否在左下部分?

if( tx + len <= sx && sy < ty + len )

else

​ //判斷特殊點是否在右下部分?

if( tx + len <= sx && ty + len <= sy )

else​​

}int

main()

putchar

('\n');

}return0;

}

int

binarysearch

(int a,

int l,

int r,

int x)

演算法考試複習之胡思亂記 貪心法

貪心法 貪心法顧名思義就是說要貪,要一點一點的貪,歇斯底里地貪,嚼字一點的講,就是說求乙個問題的最優解時,將這個問題肢解為一系列的區域性性的問題,然後通過在每個區域性得到最優以使得在全域性得到最優.其實這點挺有意思的,整個計算機界每天都在叫著虛擬實境,為此做了很多的演算法,大部分演算法都比較貪,結果...

十分鐘了解演算法(2) 初始貪心演算法和動態規劃

為了達到目的,每一步都採取最優的方法,也就是區域性最優解,從而得到全域性最優解。往往不能得到最優解,只有近似解。簡單粗暴,速度快。從條件中找出使得利益最大化的最值 不斷擴大規模,繼續找最值 np完全問題 定義 問題涉及序列 集合,需要計算所有的解並從中選出最小 最短的那個。特點 例子 1.活動安排問...

演算法筆記2 初級排序 插入排序和希爾排序

插入排序 author xy suppresswarnings rawtypes public class insertsort public static void sort comparable v,int lo,int hi public static boolean less compara...