int a[1024][1024];int loop(int n, int i, int j) { if(n==1) { return a[i][j]; } else { n>>=1; int x,y,z,t; x=loop(n,i,j); y=loop(n,i+n,j); z=loop(n,i,j+n); if(x>y) {t=x;x=y;y=t;} if(x>z) {y=x;x=z;} else if(y>z) y=z; z=loop(n,i+n,j+n); if(x>z) {y=x;x=z;} else if(y>z) y=z; return y; }}int main() { int n,i,j; scanf("%d",&n); for(i=0;i 풀이 : 재귀, 분할정복 loop을 이용합니다.n >=2 즉 2*2 matrix 까지는 네 곳..
void loop(int n, int m) { if(n==0) { printf("%c",(m>0)?'-':' '); return 0; } loop(n-1,m); loop(n-1,0); loop(n-1,m); return 0;}int main() { int n; while(~scanf("%d",&n)){ loop(n,1); printf("\n"); }} 풀이 : 재귀, 분할정복 0. n을 입력받습니다 EOF가 c언어에서 -1 0xFFFF 인 것을 이용하여 ~ not 비트 연산을 하여 EOF가 입력받으면 입력을 종료합니다. 1. 재귀를 사용합니다. 인자 n : 0이되면 출력을 합니다. m : 1이면 '-', 0이면 ' ' 을 출력하도록 합니다. n>0 인 경우 loop를 ..
#include #define M 1000000007#define m 600000#define p 257long long hash(int s) { long long a=0,b=1,c=0,i=4; while(i--) { c=s&0xFF; a=(a+c*b)%M; b=(b*p)%M; s>>=8; } return a;}int main() { int n,i,a,b,c,t[m]={},T[m]={}; long long v; scanf("%d",&n); for(i=0;i 풀이 : key의 중복이 없는것을 이용한 해쉬를 이용한 map 1. 해쉬값 만들기문자열을 해쉬값으로 만들었을 때는, 한 문자씩 -'a'+1 을 하면서 값을 구했다면, 정수형의 경우 & 1111 (비트).. 이런식으로 1로 이루어진 값과 and..
#include #include #include #define P 37#define M 1000000007#define m 100003#define L long longL calHash(char * s) { L a=0,b=1,c; while(*s) { c=(*s-'a'+1); a=(a+c*b)%M; b=(b*P)%M; ++s; } return a;}L fast(L base, L exp, L mod) { L a=1; while(exp>0) { if(exp&1) a = (a*base)%mod; base = (base*base)%mod; exp/=2; } return a;}int main(void) { L v, invP; int i,..
#include #include int main(void) { int n,c=0,e=0,i,h; char s[101],d[100][95]; scanf("%d",&n); while(scanf("%s",s)) { int l=strlen(s); char *a=s+l-6; if(!strcmp("Cheese",a)) { s[l-6]=0; h=0; for(i=0;i3)?"yummy":"sad");} 풀이 : string.h 사용while(scanf("%s",s)) 이런식으로 공백으로 구분된 여러 문자열들을 끊어서 받아낼수 있습니다. 물론 끄는 것은 불가하므로 이전에 입력받았던 n을 이용하여 반복문을 종료하면 됩니다. 먼저 입력받은 문자열의 길이를 구한다음, 마지막 부분이 "Cheese" 인지를 확인..
- Total
- Today
- Yesterday
- 누적합
- 최소 스패닝 트리
- java
- DP
- 오프라인 쿼리
- 1835번
- 누적 합
- 정렬
- 세그먼트 트리
- 그래프
- C언어
- C++
- Segment Tree
- 최대공약수
- 1835
- DFS
- 스택
- find
- 백준
- 브루트포스
- 덱
- 플로이드
- Krustal
- Lazy Propagation
- union
- BFS
- 기하학
- PASCAL
- XOR
- 그리디
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |