http://codeforces.com/contest/476/problem/B #include < bits / stdc ++. h > using namespace std ; string s1 , s2 ; int val = 0 , n ; int dp [ 15 ][ 15 ]; int solve ( int s , int l , int f ) { int & ret = dp [ s ][ l ]; if ( s == l ) { if ( f == val ) return 1 ; else return 0 ; } int ct = 0 ; ///number of ways in starting is 0 if ( s2 [ s ]== '+' ) ct += solve ( s + 1 , l , f + 1 ); if ( s2 [ s ]== '-' ) ct += solve ( s + 1 , l , f - 1 ); if ( s2 [ s ]== '?' ) ct += solve ( s + 1 , l , f + 1 )+ solve ( s + 1 , l , f - 1 ); return ret = ct ; /// In the last return this value } int main () { int i , j , k , l ; double ans ; cin >> s1 >> s2 ; n = s1 . size (); for ( i = 0 ; i < n ; i ++) { if ...
http://codeforces.com/contest/476/problem/A #include < bits / stdc ++. h > using namespace std ; int dp [ 10001 ][ 5055 ]; int fun ( int cu , int n , int m , int st ) { if ( st % m == 0 && cu == n ) { // cout<<st<<endl; return st ; } if ( cu > n || st > n || st > 5050 ) return 999999 ; int & ret = dp [ cu ][ st ]; if ( ret ) return ret ; int k1 = fun ( cu + 1 , n , m , st + 1 ); int k2 = fun ( cu + 2 , n , m , st + 1 ); return ret = min ( k1 , k2 ); } int main () { int n , m , i , j , k , l ; cin >> n >> m ; //if(n>m*2) // cout<<-1<<endl; k = fun ( 0 , n , m , 0 ); if ( k == 999999 ) cout <<- 1 << endl ; else cout << k << endl ; return 0 ; }
Below is the important Graph Algorithms for problem solving Algorithms Cycle Detection Algorithm For Directed graph Cycle can be detected using : 1) DFS-Based Cycle Detection using color marking (visited array) void dfs(node): mark visited for neighbor: if not visited: dfs(neighbor) stack.push(node) 2) Kahn’s Algorithm : Build the Graph → Create an adjacency list from the prerequisites array. Compute In-Degree → Count the number of prerequisites (incoming edges) for each course. Start BFS with Zero In-Degree Nodes → Add all courses with zero prerequisites to a queue. Process Courses in BFS Order → Remove edges and reduce in-degrees. Check if All Courses Were Taken → If all courses were processed, return true ; otherwise, there’s a cycle. // Simple idea of Kahn's: while (queue is n...
Comments
Post a Comment