Posts

Showing posts from March, 2020

Combinatorics

1. Regular odd polygon total intersection point=     https://math.stackexchange.com/questions/1010591/what-is-the-number-of-intersections-of-diagonals-in-a-convex-equilateral-polygon Problem:  https://toph.co/p/irregular-is-tough-regular-is-easy 2. Given two side of a triangle, how many valid possible value of third side- 2*(min(a,b))-1 problem:  https://toph.co/p/geometry-forever n ( n − 1 ) ( n − 2 ) ( n − 3 ) 24 n ( n − 1 ) ( n − 2 ) ( n − 3 ) 24

Matrix Operation

struct matrix { int n ; vector < vector < int > > t ; matrix ( ) { } matrix ( int _n , int val ) { n = _n ; t . assign ( n , vector < int > ( n , val ) ) ; } matrix ( int _n ) { n = _n ; t . assign ( n , vector < int > ( n , 0 ) ) ; } matrix ( vector < vi > v ) { n = v . size ( ) ; t = v ; } matrix unit ( int _n ) { matrix ans = matrix ( _n , 0 ) ; for ( int i = 0 ; i < _n ; i ++ ) ans . t [ i ] [ i ] = 1 ; return ans ; } ///make sure to erase mod if not needed matrix operator * ( matrix b ) { matrix c = matrix ( n , 0 ) ; for ( int i = 0 ; i < n ; i ++ ) for ( int k = 0 ; k < n ; k ++ ) for ( int j = 0 ; j < n ; j ++ ) c . t [ i ] [ j ] = ( c . t [ i ] [ j ] + 1LL * t [ i ] [ k ] * b . t [ k ] [ j ] % mod ) % mod ; return c ; } matrix operator | ( matrix b ) { matrix c = matrix ( n , - inf ) ; for ( int i =...