題意,告訴你乙個數m,求最小的x!滿足x!%m== 0;
解:將m的所有質數因子和質數因子的個數存起來。二分x,對於每個m的質因子p,x!的p的個數都大於等於m的質因子個數就行了。對於二分的上限還是得注意的。就因為這個wa了乙個。二分的下限也得注意,從0開始。
二分真是好神!記得對於大數要寫ll。
/*
pro: 0
sol:
date:
*/#include #include #include #define inf 99999999999999999999ll
using namespace std;
int prime[30],sub;
__int64 num[110];
void getprime()
__int64 getnum(__int64 x, int p)return sum;
}bool can(__int64 indx)
}return true;
}__int64 bin()
return low;
}int main()}}
printf("%i64d\n",bin());
}return 0;
}
二分查詢有個坑
內容會持續更新,有錯誤的地方歡迎指正,謝謝 例題 在序列 22,34,55,77,89,93,99,102,120,140 中,採用二分查詢,分別查詢77,34,99,所需的查詢次數分別為 答案 4,2,4 理由 假設低下標用low表示,高下標用high表示 查詢77 開始low 0,high 9 ...
二分查詢中term有重複的情況
二分查詢演算法雖然簡單,但是遇到待查詢的term有重複的時候,也會存在各種小問題。下面給出二分查詢中遇到重複term時,第乙個可插入位置和最後乙個可插入位置的 第乙個可插入位置 class solution int start 0 int end array.size 1 int mid while...
二分法學習筆記(有參考其他blog)
第一種 arr儲存數,n表示陣列長度,e表示被查詢元 0,n int bin find int arr,int n,int e return 1 第二種 1,n 可以找到元素的第乙個,不過時間稍差,演算法穩定,執行時間只與搜尋陣列長度有關,而與陣列元素分布無關 int bin find int ar...