自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 代码收集0018——二分法

方法一:int binarySearch(vector<int>& nums,int target){ int left=0,right=nums.size()-1; while(left<=right) { int mid=left+(right -left)>>1; if(nums[mid]==target) return mid; else if(nums[mid]<target)

2021-07-12 16:15:05 105

原创 位运算

判断是否是2的幂num&(num-1)100..00011..11

2021-03-04 23:37:18 116 2

原创 代码收集0017——求子集

vector<vector<int>> subsets(vector<int>& nums) { vector<vector<int>> ans; int n=nums.size(); for(int cnt=0;cnt<(1<<n);cnt++)//the cnt subset { vector<int> subset; for(int

2021-02-26 20:03:14 133

原创 代码收集0016——树

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: int INF=1e9+7; TreeNode *LCA(T

2021-02-22 12:49:10 88

原创 单调栈的运用

单调栈monotonous stack一个比较好理解的数据结构,正如其名,具有单调性的栈。vector<int> mono_s;//stack is also availablefor(int i=0;i<nums.size();i++){ while(!mono_s.empty()&&nums[mono_s.back()]<nums[i]) { /*the operations you want to do * */

2021-02-21 17:40:30 102

原创 代码收集0015——马拉车算法

class Manacher{private: int maxlen=0,maxcenter=0; void man(string s) { string m="$#"; int n=s.size(); for(int i=0;i<n;i++) { m+=s[i]; m+='#'; } int len=m.size(); vec

2021-02-08 23:33:52 84

原创 代码收集0014——找到从起点到终点的路

int Path(vector<vector<int>>& point) { int row=point.size(),col=point[0].size(),ans=0; const vector<vector<int>> direction{{-1,0},{1,0},{0,-1},{0,1}}; int left=0,right=max_possible_ans+1;//we try to use

2021-01-30 22:08:29 105

原创 代码收集0013——并查集

class UnionFindSet{private: vector<int> parent;public: UnionFindSet(int n):parent(n) { iota(parent.begin(),parent.end(),0); } int Find(int idx) { if(parent[idx]!=idx) parent[idx]=Find(parent[idx

2021-01-23 11:10:51 76

原创 敲代码的那些事

1.【转载】“孔乙己,你又没有思路了!”他不回答,只是将题解ctrl+c再ctrl+v到编辑器。他们又故意的高声嚷道,“你一定又写不出代码了了!”孔乙己睁大眼睛说,“你怎么这样凭空污人清白……”“什么清白?我前天亲眼见你copy了别人的整段代码,吊着打。”孔乙己便涨红了脸,额上的青筋条条绽出,争辩道,“copy代码不能算copy……抄!……程序员的事,能算抄么?”接连便是难懂的话,什么“拓展思路”,什么“借鉴”之类,引得众人都哄笑起来:评论区内外充满了快活的空气。2.【原创】divide and conq

2020-11-05 23:05:41 120

原创 代码收集0012——快速幂与矩阵快速幂

一个自然数k可以写成k=∑1nai∗2i,ai∈{0,1}k=\sum_1^na_i*2^i,a_i\in\{0,1\}k=∑1n​ai​∗2i,ai​∈{0,1}的形式。快速幂的思想就基于此。比如a21=a(1∗20+1∗22+1∗24)=a1∗a4∗a16a^{21}=a^{(1*2^0+1*2^2+1*2^4)} =a^1*a^4*a^{16}a21=a(1∗20+1∗22+1∗24)=a1∗a4∗a16C++:(mod为要取模的数,无则删去)long long llpow(lon

2020-06-28 20:13:38 199

原创 代码收集0011——组合数取模

C++版本使用方法:卢卡斯定理求逆元的方式:扩展欧几里得算法其中mod是要取余的数long long Extended_Euclid(long long a,long long b,long long &x,long long &y){ if(a==0&&b==0) return -1; if(b==0) { x=1; y=0; return a; } long

2020-06-26 22:49:48 159

原创 代码收集0010——质数

int PrimeCount(int n){ int cnt=0; int prime; while(n%2==0) { cnt++; n/=2; } for(prime=3;prime<=n;prime+=2) { while(n!=1) { i...

2020-04-26 21:36:26 131

原创 代码收集0009——大整数运算

乘法:int BigInt_Multiply(int num[],int a,int len)//the ans is inverse{ int last=len; int cf=0;//carry flag for(int i=0;i<=len;i++) { num[i]=num[i]*a+cf; if(b[i]>=...

2020-04-07 08:02:14 160

转载 代码收集0008——求逆元

扩展欧几里得算法可以求解ax+by=gcd(a,b)这样一个不定方程的同时求出gcd(a,b)C语言long long Extended_Euclid(long long a,long long b,long long *x,long long *y){ if(b==0) { *x=1; *y=0; return a; ...

2020-04-03 21:04:18 448

原创 代码收集0007——排列组合

组合:C语言unsigned long long combination(int n,int m){ /* Cnm=n!/(m!*(n-m)!) */ unsigned long long ans=1; if(n==0) return 0; if(n==m||m==0) return 1; if(m&gt...

2020-03-28 14:44:16 142

原创 代码收集0006——前缀波兰式的计算

C语言版:double PrePolish(){ char str[10]; double f1,f2; scanf("%s",str); switch(str[0]) { case'+':{f1=PrePolish();f2=PrePolish();return f1+f2;} case'-':{f1=PrePolish()...

2020-03-27 20:15:48 217

转载 代码收集0005——给定年月日返回星期

1就是星期一……7就是星期日int getDay(int year, int month, int day){ if (month == 1 || month == 2) year--; int k = day; int m = ((month - 2) + 12) % 12; if (m == 0) m = 12; int Y = year % 100...

2020-03-23 16:25:53 101

原创 代码收集0004——输出数据时用空格填充

要求:已知有cnt个间隔(即(cnt+1)个数据)和space个空格。由空格补足每行长度,空格在所有数据之间尽可能均匀分布,在满足上述条件下,空格尽可能置于靠右的位置。C语言:while(...&&cnt>=0){ printf(""); for(int i=0;cnt&&i<space/cnt;i++) putchar(' ');...

2020-03-20 20:57:37 153

原创 代码收集0003——在整行读入并处理字符串时忽略行前空格

C语言通过一个for循环找到第一个不为空格的地方。for(int j=0;str[j]==' ';j++);int start=j;

2020-03-20 20:47:03 216

原创 代码收集0002——输出地址

输出一个浮点型的地址 C语言void addressF(char str[]){ double x=atof(str); unsigned char *p=(unsigned char *)&x; int y=sizeof(x); while(y--) printf("%02x ",*p++); printf("\n");}...

2020-03-17 19:55:06 171

原创 代码收集0001——求最大公约数(GCD)和最小公倍数(LCM)

求最大公约数(GCD)和最小公倍数(LCM)的代码C语言:int GDB(int a,int b){ if(b==0) return a; else return GDB(b,a%b);}int LCM(int x,int y){ return x*y/GDB(x,y);}可根据需要改为long long...

2020-03-17 16:43:12 208

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除