Skip to content

Commit d76602e

Browse files
committed
refactoring my coding library
1 parent bb4bd29 commit d76602e

File tree

85 files changed

+5541
-143
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+5541
-143
lines changed

.gitignore

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Prerequisites
2+
*.d
3+
4+
# Compiled Object files
5+
*.slo
6+
*.lo
7+
*.o
8+
*.obj
9+
10+
# Precompiled Headers
11+
*.gch
12+
*.pch
13+
14+
# Compiled Dynamic libraries
15+
*.so
16+
*.dylib
17+
*.dll
18+
19+
# Fortran module files
20+
*.mod
21+
*.smod
22+
23+
# Compiled Static libraries
24+
*.lai
25+
*.la
26+
*.a
27+
*.lib
28+
29+
# Executables
30+
*.exe
31+
*.out
32+
*.app

IterativeTreeTraversal_JAVA_1.java

Lines changed: 0 additions & 76 deletions
This file was deleted.

IterativeTreeTraversal_JAVA_2.java

Lines changed: 0 additions & 67 deletions
This file was deleted.
File renamed without changes.
File renamed without changes.

Library/DS/2DBIT.cpp

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
const int N = 305, M = 305;
2+
class BIT_2D{
3+
int bit[N][M];
4+
int inf;
5+
public:
6+
BIT_2D(){
7+
inf = 1e9;
8+
int i, j;
9+
fo(i, N) fo(j, M) bit[i][j] = inf;
10+
}
11+
int f(int x){
12+
return x&(-x);
13+
}
14+
void add(int x, int y, int val){
15+
int Y = y;
16+
while(x <= N){
17+
y = Y;
18+
while(y <= M){
19+
bit[x][y] = min(bit[x][y], val);
20+
y += f(y);
21+
}
22+
x += f(x);
23+
}
24+
}
25+
int get(int x, int y){
26+
int Y = y;
27+
int ans = mod;
28+
while(x){
29+
y = Y;
30+
while(y){
31+
ans = min(bit[x][y], ans);
32+
y -= f(y);
33+
}
34+
x -= f(x);
35+
}
36+
return ans;
37+
}
38+
void clear(int x, int y){
39+
int Y = y;
40+
while(x <= N){
41+
y = Y;
42+
while(y <= M){
43+
bit[x][y] = inf;
44+
y += f(y);
45+
}
46+
x += f(x);
47+
}
48+
}
49+
50+
};

Library/DS/2dSparseTable.cpp

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
//second file is better
2+
//ye codechef wala submission h mera
3+
const int N = 1003;
4+
int a[N][N], dp[N][N][10][10];
5+
const int lg = 10;
6+
//lg is 1 power greater than N
7+
ll dpp[N][N];
8+
9+
int st[N];
10+
int max(int a, int b, int c, int d){
11+
return max(a, max(b, max(c, d)));
12+
}
13+
int n, m;
14+
void mem(){
15+
int i,j,x,y,k;
16+
st[1] = 0;
17+
int c = 0;
18+
Fo(i, 2, N)
19+
{
20+
int v = (1 << c);
21+
if (v + v < i)
22+
c++;
23+
st[i] = c;
24+
}
25+
fo(i, n)
26+
fo(j, m)
27+
dp[i][j][0][0] = a[i][j];
28+
29+
Fo(i, 0, n)
30+
{
31+
Fo(k, 1, lg)
32+
{
33+
int val = (1 << k);
34+
int nval = val / 2;
35+
Fo(j, 0, m)
36+
{
37+
if (j + val > m)
38+
break;
39+
dp[i][j][k][0] = max(dp[i][j][k - 1][0], dp[i][j + nval][k - 1][0]);
40+
}
41+
}
42+
}
43+
Fo(j, 0, m)
44+
{
45+
Fo(k, 1, lg)
46+
{
47+
int val = (1 << k);
48+
int nval = val / 2;
49+
Fo(i, 0, n)
50+
{
51+
if (i + val > n)
52+
break;
53+
dp[i][j][0][k] = max(dp[i][j][0][k - 1], dp[i + nval][j][0][k - 1]);
54+
}
55+
}
56+
}
57+
int k1,k2,st2;
58+
59+
int st1=st2=lg-1;
60+
61+
Fo(k1, 1, st1 + 1)
62+
{
63+
int val1 = (1 << k1);
64+
int nval1 = val1 / 2;
65+
Fo(k2, 1, st2 + 1)
66+
{
67+
int val2 = (1 << k2);
68+
int nval2 = val2 / 2;
69+
Fo(i, 0, n)
70+
{
71+
Fo(j, 0, m)
72+
{
73+
if ((j + val1 > m) || (i + val2 > n))
74+
continue;
75+
76+
dp[i][j][k1][k2] = max(dp[i][j][k1 - 1][k2 - 1], dp[i + nval2][j][k1 - 1][k2 - 1], dp[i][j+nval1][k1 - 1][k2 - 1], dp[i + nval2][j+nval1][k1 - 1][k2 - 1]);
77+
}
78+
}
79+
}
80+
}
81+
82+
}
83+
84+
int query(int i, int j, int down, int k){
85+
int dx = down - i + 1;
86+
int dy = k - j + 1;
87+
int k1 = st[dy];
88+
int k2 = st[dx];
89+
int val1 = (1 << k1);
90+
int val2 = (1 << k2);
91+
int dp1 = max(dp[i][j][k1][k2], dp[i][k-val1+1][k1][k2]);
92+
int dp2 = max(dp[down - val2 + 1][j][k1][k2], dp[down - val2 + 1][k - val1 + 1][k1][k2]);
93+
return max(dp1,dp2);
94+
95+
}

0 commit comments

Comments
 (0)