- Understanding Git
https://www.youtube.com/watch?v=xuB1Id2Wxak
Code Snippets
Sunday, March 25, 2018
Sunday, November 26, 2017
Sunday, August 2, 2015
LIS & LDS
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
int LIS(vector<int> A)
{
//Longest Increasing Sequence (Not monotically!)
int size=A.size();
vector<int> tail(size,0);
int len,i;
tail[0] = A[0];
len = 1;
for(i=1;i<size;i++)
{
if(A[i]<tail[0])
tail[0] = A[i]; // new smallest value
else if( A[i] >= tail[len-1] )
tail[len++] = A[i]; // A[i] wants to extend largest subsequence
else
{
tail[upper_bound(tail.begin(),tail.begin()+len,A[i])-tail.begin()] = A[i];
}
}
return len;
}
int LDS(vector<int> a)
{
// Longest Decreasing Subsequence (Not Monotically!!)
int size=a.size(),max=a[0],i;
for(i=1;i<size;i++)
if(max<a[i])max=a[i];
max++;
for(i=0;i<size;i++)
a[i]=max-a[i];
return LIS(a);
}
int main()
{
int A[] = { 2, 5, 3, 7, 11, 8, 10, 13, 6 };
vector<int> b(A,A+9);
printf("Length of Lis is %d AND LDS is %d\n",
LIS(b),LDS(b));
return 0;
}
#include<vector>
#include<algorithm>
using namespace std;
int LIS(vector<int> A)
{
//Longest Increasing Sequence (Not monotically!)
int size=A.size();
vector<int> tail(size,0);
int len,i;
tail[0] = A[0];
len = 1;
for(i=1;i<size;i++)
{
if(A[i]<tail[0])
tail[0] = A[i]; // new smallest value
else if( A[i] >= tail[len-1] )
tail[len++] = A[i]; // A[i] wants to extend largest subsequence
else
{
tail[upper_bound(tail.begin(),tail.begin()+len,A[i])-tail.begin()] = A[i];
}
}
return len;
}
int LDS(vector<int> a)
{
// Longest Decreasing Subsequence (Not Monotically!!)
int size=a.size(),max=a[0],i;
for(i=1;i<size;i++)
if(max<a[i])max=a[i];
max++;
for(i=0;i<size;i++)
a[i]=max-a[i];
return LIS(a);
}
int main()
{
int A[] = { 2, 5, 3, 7, 11, 8, 10, 13, 6 };
vector<int> b(A,A+9);
printf("Length of Lis is %d AND LDS is %d\n",
LIS(b),LDS(b));
return 0;
}
Saturday, August 1, 2015
Long Multiply
#define LL long long int
LL multiply(LL a, LL b)
{
if(b==0)return 0;
if(b==1)return a;
LL c=multiply(a,b/2);
c=(c+c)%m;
if(b%2!=0)c=(temp+a)%m;
return c;
}
LL multiply(LL a, LL b)
{
if(b==0)return 0;
if(b==1)return a;
LL c=multiply(a,b/2);
c=(c+c)%m;
if(b%2!=0)c=(temp+a)%m;
return c;
}
Friday, March 13, 2015
Snippet
#include<bits/stdc++.h>
using namespace std;
#define LL long long int
#define mod 1000000007
int main()
{
}
using namespace std;
#define LL long long int
#define mod 1000000007
int main()
{
}
Sunday, March 1, 2015
phi (n)
int phi(int m)
{
int ans = m;
for(int i = 0; i < pr.size() && m >= pr[i]*pr[i]; i++)
{
if(m % pr[i] == 0)
{
ans /= pr[i];
ans *= (pr[i] - 1);
while(m % pr[i] == 0) m /= pr[i];
}
}
if(m > 1) ans = (ans/m)*(m - 1);
return ans;
}
{
int ans = m;
for(int i = 0; i < pr.size() && m >= pr[i]*pr[i]; i++)
{
if(m % pr[i] == 0)
{
ans /= pr[i];
ans *= (pr[i] - 1);
while(m % pr[i] == 0) m /= pr[i];
}
}
if(m > 1) ans = (ans/m)*(m - 1);
return ans;
}
Saturday, February 28, 2015
Prime Factorize
This snippet puts all primes uptil s in pr and if you want to know the prime factors , it's in pfactors[i]
#define s 100009
vector<int> pfactor[s + 1];
vector<bool> prime(s + 1, true);
vector<int> pr;
void seive()
{
prime[0] = prime[1] = false;
for(int i = 2; i <= s; i++)
{
if(prime[i])
{
pfactor[i].pb(i);
pr.pb(i);
for(int j = 2 * i; j <= s; j += i)
{
int jj = j;
while(jj % i == 0)
{
pfactor[j].pb(i);
jj /= i;
}
prime[j] = false;
}
}
}
}
#define s 100009
vector<int> pfactor[s + 1];
vector<bool> prime(s + 1, true);
vector<int> pr;
void seive()
{
prime[0] = prime[1] = false;
for(int i = 2; i <= s; i++)
{
if(prime[i])
{
pfactor[i].pb(i);
pr.pb(i);
for(int j = 2 * i; j <= s; j += i)
{
int jj = j;
while(jj % i == 0)
{
pfactor[j].pb(i);
jj /= i;
}
prime[j] = false;
}
}
}
}
Subscribe to:
Comments (Atom)