본문 바로가기

전체 글412

완전순열 더블릿 1234567891011121314#include int dp[1000] = { 0 }; int main() { int n; scanf("%d", &n); dp[2] = 1; for (int i = 3; i 2019. 2. 18.
bits -더블릿 123456789101112131415161718192021222324252627#include typedef long long ll;ll dp[1000][1000] = { 0 }; int main() { int m, n; scanf("%d %d", &m, &n); for (int i = 1; i 2019. 2. 16.
구간 차의 합 최대 - 더블릿 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879#include #include using namespace std; int arr[200] = { 0 }; // 입력받을 배열int dp[200][200] = { 0 }; // dpint num[200][200] = { 0 }; // 누적 구간 수int cut[200][200]= { 0 }; // 누적 구간 분할 위치 ex) 2 2 3 3int result[100] = { 0 },idx=1; // 누적 구간 인덱스 모음 void sumRan.. 2019. 2. 16.
2662 기업투자 12345678910111213141516171819202122232425262728293031323334353637383940414243#include #include using namespace std; int arr[1000][1000] = { 0 };int dp[1000][1000] = { 0 };int company[1000][1000] = { 0 }; void post(int m, int n) { if (n > 0) { post(m - company[m][n], n - 1); printf("%d ", company[m][n]); } } int main() { int m, n; scanf("%d %d", &m, &n); getchar(); for (int i = 1; i 2019. 2. 16.
구간차의 합 문서 더블릿 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#include #include using namespace std; int arr[200] = { 0 };int dp[200][200] = { 0 };int num[200][200] = { 0 };int cut[200][200][100] = { 0 }; int main() { int n; scanf("%d", &n); getchar(); for (int i = 1; i 2019. 2. 16.
2357 최댓값과 최솟값 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677#include #include #include #define MAX 1e9+5 using namespace std;typedef long long ll; ll maxT[2000005] = { 0 };ll minT[2000005];ll Tsize,maxTmp,minTmp; void update(ll idx, ll num) { idx += Tsize-1; maxT[idx] = num; minT[idx] = num; while (idx > 1) { id.. 2019. 2. 15.
11505 구간 곱 구하기 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869#include #include #include #define div 1000000007 typedef long long ll;using namespace std; ll tree[20000000];ll size,ret; void update(ll idx, ll num) { idx += size - 1; tree[idx] = num; while (idx > 1) { idx /= 2; tree[idx] = tree[idx * 2] * tree[idx * 2 + 1]%div; }} .. 2019. 2. 15.
2042 부분합 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263#include #include using namespace std;typedef long long ll; ll arr[1000002] = { 0 };ll tree[2000010] = { 0 };ll size,ret=0; void update(ll idx, ll data) { idx += size-1; tree[idx] = data; while (idx > 1) { idx /= 2; tree[idx] = tree[idx * 2] + tree[idx * 2 + 1]; } } void sum(ll le.. 2019. 2. 14.
색종이 만들기 더블릿 12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include int arr[1000][1000] = { 0 };int white = 0, pink = 0; void cut(int y, int x, int len) { int num = arr[y][x],flag=0; for (int i = y; i 2019. 2. 13.
catoring along 더블릿 1234567891011121314151617181920212223242526272829303132333435363738#include #include using namespace std;int arr[10000000] = { 0 }; void cut(int st, int end) { if (st == end) return; int n = end - st + 1; n /= 3; for (int i = st + n; i 2019. 2. 13.
11003 최솟값 백준 123456789101112131415161718192021222324252627282930#include #include #include using namespace std; deque dq;int arr[10000000] = { 0 }; int main() { int n, l; scanf("%d %d", &n, &l); getchar(); for (int i = 0; i 2019. 2. 13.
연속적인 소수의 합 더블릿 (1644 백준) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#include int num[4000001] = { 0 };int prime[4000001] = { 0 };int idx = 0; void Erasto() { for (int i = 2; i 2019. 2. 13.