코딩캠프26 [1932] 정수 삼각형 // 1932 정수 삼각형 // 조합론, 파스칼의 삼각형 #include #include #include #define MAX 501 using namespace std; int arr[MAX][MAX]; int dp[MAX][MAX]; int N; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); memset(arr, 0, MAX); memset(dp, 0, MAX); scanf("%d", &N); for(int i=1; i 2024. 2. 22. [11659] 구간합 구하기4 // 11659 구간 합 구하기 4 // 펜윅과 다른 점 -> 업데이트가 없다 #include #include #include #define MAX 100001 using namespace std; int arr[MAX]; int dp[MAX]; int N, M, a, b; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); memset(arr, 0, sizeof(arr)); memset(dp, 0, sizeof(dp)); scanf("%d %d", &N, &M); for(int i=1; i 2024. 2. 22. [11051] 이항계수2 // 11051 이항계수2 // 조합론, 파스칼의 삼각형 #include #include #define MAX 1001 using namespace std; long long dp[MAX][MAX]; int N, K; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); scanf("%d %d", &N, &K); dp[0][0] = 1; for(int i=1; i 2024. 2. 22. [11266] 단절점 // 11266 단절점 // 시작점이 어디인지 무관하다! #include #include #include #include #include #define MAX_N 100001 using namespace std; vectoradjList[MAX_N]; int order[MAX_N]; bool isCut[MAX_N]; int T, number; // 단절점 탐색 int dfs(int here, bool isRoot) { order[here] = number++; // DFS 탐색 순서 저장 int low = order[here]; // low 의 초기값은 자기 자신의 order int child = 0; // 자식 수 count for (int next : adjList[here]) { if (order[.. 2024. 2. 21. [11050] 이항계수 1 // 11050 이항계수1 // 조합론, 파스칼의 삼각형 #include #include using namespace std; int dp[11][11], N, K; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); scanf("%d %d", &N, &K); dp[0][0] = 1; for(int i=1; i 2024. 2. 21. [1010] 다리놓기 // 1010 다리 놓기 // 조합론, 파스칼의 삼각형 #include #include #define MAX 30 using namespace std; unsigned long long int dp[MAX+1][MAX+1]; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); dp[0][0] = 1; for(int i=1; i 2024. 2. 21. 이전 1 2 3 4 5 다음