知識點筆記:雜湊儲存:字串儲存、數字儲存
3 hash
3.2 字串儲存
// 相等
intfind_equ
(int low,
int high,
int a,
int key)
else
if(key < a[mid]
)else
}return-1
;}// 第乙個》=(公升序)
intfind_lower_bound
(int low,
int high,
int a,
int key)
else}if
(a[low]
>=key)
return low;
//low=high
else
return-1
;}// >
intfind_lower
(int low,
int high,
int a,
int key)
else}if
(a[low]
>key)
return low;
//low=high
else
return-1
;}int arr[3]
=;// >=
int*p, index;
p =lower_bound
(arr, arr+3,
20);//不存在,返回假設存在arr[i]>=20應該在的位置,即index=3
index = p-arr;
int k =
find_lower_bound(0
,2,arr,10)
;//k=1
// >
p =upper_bound
(arr, arr+3,
15);//不存在,返回假設存在arr[i]>15的位置,即index=3
index = p-arr;
k =find_lower(0
,2,arr,10)
;// k=2
(1)題目
求所有連續子串行和》=k的子串行
(2)**
#include
#include
#include
using
namespace std;
const
int n =
1e+5+10
;const
int inf=
0x3f3f3f3f
;typedef
struct nodenode;
// >=
intfind_lower_bound
(int low,
int high,
int a,
int key)
else
}return low;
//low=high
}bool
cmp(node no1, node no2)
vector<
int> vect;
int sum[n]=;
//sum[i]:vect[1] 到 vect[i]的和
intmain()
int tempsum,j;
int minsum=inf;
vector vect2;
node node;
for(
int i=
1; isize()
; i++
)else
if(tempsum == minsum && tempsum>=m)
}sort
(vect2.
begin()
, vect2.
end(
), cmp)
;for
(int i=
0; isize()
; i++
)//fclose(stdin);
return0;
}
(3)小結
題目:(2)**
#include
#include
#include
using
namespace std;
const
int id_max =
100000+10
;const
int n =
50000+10
;int couple[id_max]
;//couple[i]=j,i和j是一對couples
bool party[id_max]
;//party[i]:id=i party[i]=true:出席了party
vector<
int> alone;
//第1種沒有couple,第2種自己的couple沒出席
intmain()
int m;
scanf
("%d"
,&m)
;for
(int i=
0; i)for
(int i=
0; i)elseif(
!party[j])}
}sort
(alone.
begin()
, alone.
end())
;printf
("%d\n"
,alone.
size()
);for(
int i=
0; isize()
; i++
)printf
("%05d"
, alone[i]);
}//fclose(stdin);
return0;
}
(3)小結 迭代二分查詢二分查詢
在寫這篇文章之前,已經寫過了幾篇關於改迭代二分查詢主題的文章,想要了解的朋友可以去翻一下之前的文章 bentley在他的著作 writing correct programs 中寫道,90 的計算機專家不能在2小時內寫出完整確正的二分搜尋演算法。難怪有人說,二分查詢道理單簡,甚至小學生都能明確。不過...
PAT甲級 二分
思路 1 n1 確定進製的數,n2 未確定進製的數 方便後面進行統一計算 2 n1轉換成10進製數,二分n2進製,將n2轉換成十進位制與n1進行比較,大了就把進製往小的方向調整,小了的話往大的調 如果相等,則找到進製,輸出 tips 本題的變數盡量都使用long long型 坑 進製radix的範圍...
PAT 之 01 複雜度3 二分查詢
01 複雜度3 二分查詢 20 分 本題要求實現二分查詢演算法。函式介面定義 position binarysearch list l,elementtype x 其中list結構定義如下 typedef int position typedef struct lnode list struct l...