Life: research & education
-
-
서울대학교 성적증명서 Microsoft print to pdf 지원하지 않는 포트 해결법Life: research & education/Research 2024. 7. 19. 13:23
서울대학교 mysnu - 증명/확인서에서 성적표를 출력할 수 있다.보안프로그램, 오즈 뷰어 전부 설치하고 겨우 실행까지 했는데 문제가 생겼다.프린터로 Microsoft print to pdf를 선택하면 사용할 수 없는 포트라며 출력을 할 수 없게 된다.pdf를 사랑하는 사람으로써 매우 슬픈 일이 아닐 수가 없다.[지원불가]: 지원불가 포트 사용 프린터지원하지 않는 프린터 포트를 사용중 입니다.로컬 또는 TCP/IP 프린터를 선택하신 후 다시 시도하십시오 알아보니 서울대학교가 임의로 막아뒀더라. 유선 또는 무선으로 연결된 실물 프린터에서만 출력이 가능하도록 설정 한 것 같다... 하지만 대 서울대학교 컴퓨터공학부는 언제나 길을 찾는다.가라로 가상 프린터를 만들어놓으면 출력이 가능하다방법을 알아보자. [ 모..
-
백준 1202 보석 도둑 (boj/1202.cpp)Life: research & education/PS 2024. 1. 30. 01:00
그리디, 이진탐색을 엮은 문제입니다. union-find의 find알고리즘을 조금 차용하여 구현했습니다. 보석이 들어갈 수 있는 가장 작은 가방을 찾은 다음, 그 가방보다 크기가 크거나 같고 && 비어있는 가방을 찾습니다. 이때 비어있다의 조건은 nxt[cur]==cur입니다. #include #include #include using namespace std; int N, K; vector J; vector nxt; vector B; int find(int cur){ if(cur>=K || nxt[cur]==cur){ return cur; } return nxt[cur]=find(nxt[cur]); } void put(int cur){ if(cur>=K){ ret..
-
백준 7469번 K번째 수 (boj/7469.c)Life: research & education/PS 2024. 1. 23. 19:30
* 글을 잘못읽어서 오버스펙인 코드를 만들어버렸다..... 배열에 "서로 다른" 수 N개라 했는데..... 왜 수가 같은 경우를 상정했는지.... 어휴 세그먼트 트리를 조금 새롭게 응용하는 문제입니다. 세그먼트 트리 + 부분정렬 + 특수이진탐색을 사용합니다. 어떤 범위에서 수 A가 K번째 수라는 의미는, 그 범위에서 A보다 작거나 같은 수가 K-1개 있다는 뜻입니다. 더 정확하게 들어가보자면, 어떤 범위에서 A보다 작은 수가 omin개, A보다 작거나 같은 수가 omax개 있다면, 수 A는 범위에서 omin+1번째 ~ omax번째 수가 됩니다. 이때 omin+1
-
백준 6987번 월드컵 (boj/6987.c)Life: research & education/PS 2024. 1. 23. 00:48
비트마스킹을 사용합니다. 8진법 마스킹, 3진법 마스킹을 사용하는데요, 설명보다 코드를 보는 편이 더 이해가 빠르실겁니다. 시간복잡도는 정확하게는 잘 모르겠으나 얼마 안 나옵니다. 팀의 수 n=6에서 대략 350번? 쯤 for문을 돕니다. #include #include typedef long long lint; int co_game(int game){ return 2-game; } int solve(lint mask, int num){ lint lim, calc; lint new_mask; int game[3] = { 0, }; int temp[3] = { 0, }; int val, cnt, sft; int res=0; if(!num){ return mask?0:1; } game[2]=mask>>6&0..
-
백준 1310번 달리기 코스 (boj/1310.cpp)Life: research & education/PS 2024. 1. 22. 22:28
Convex Hull Algorithm을 사용합니다. 알고리즘으로 외곽껍질을 구한 다음, 그 껍질을 돌면서 값을 찾습니다. 그냥 동적계획법 두 번 쓴거라 생각하면 마음이 편합니다. 공간복잡도는 N, 시간복잡도는 NlogN이 되겠습니다. #include #include #include #include #define INF 110000 using namespace std; vector > coor; vector > pq; vector cha; double dst(pair fir, pair sec){ return sqrt(pow(fir.first-sec.first, 2) + pow(fir.second-sec.secon..
-
백준 13977번 이항 계수와 쿼리 (boj/13977.c)Life: research & education/PS 2024. 1. 21. 11:11
확장유클라디안 알고리즘으과 메모이제이션을 사용하는 문제입니다. 모든 팩토리얼에 대해 normal modular와 inverse modular를 계산한 뒤, 입력값에 따라 처리합니다. 시간복잡도는 N의 최대값을 N, 제수를 M이라 할 때 O(NlogM)입니다. #include #include #define MOD_N 1000000007 #define MAX_N 4000000 typedef long long lint; int mem[MAX_N+1] = { 0, }; int inv[MAX_N+1] = { 0, }; int EEA(int i, int m){ int Q, Q1, Q2; int S, S1, S2; int T, T1, T2; int M; Q1=i; Q2=m; S1=T2=1; S2=T1=0; for(;..
-
백준 1786번 찾기 (boj/1786.c)Life: research & education/PS 2024. 1. 18. 19:25
KMP 알고리즘 문제입니다. #include #include #define MAX_N 1000002 char T[MAX_N] = { 0, }; char P[MAX_N] = { 0, }; int pi[MAX_N] = { 0, }; int res[MAX_N]; int main(void){ int lenT, lenP; int cur, loc, cnt; fgets(T, MAX_N, stdin); fgets(P, MAX_N, stdin); lenT=strlen(T); lenP=strlen(P); lenT--; lenP--; T[lenT]=P[lenP]=0; pi[0] = -1; for(int i=1;i