c++ 알고리즘6

1부터 n사이의 홀수의 합을 O(1)로 구하는 방법 ( C++ 최적화 기법 ) 갑자기 생각나서 만들어보았습니다. 솔직히 for문으로 1부터 n까지 순회하면서 홀,짝수인지 판별하는것은 구현하기 매우 쉽죠. 하지만, 이랬을때 단점이 n의 수가 커질수록 그 연산시간은 n의 크기에 비례해서 증가한다는 점입니다. 우리는 n의 크기에 영향을 받지않고 항상 같은(짧은)속도로 연산을 하는 방법을 의논하는겁니다. 1부터 n까지의 홀수의 합을 O(1)로 구하는 방법#include using bint = std::int64_t; bint Get_1toN_in_O1(bint n){ bint ncore, ncycle, result; n -= (n & 1) ? 0 : 1; ncore = ((n + 1) >> 1); ncycle = (ncore >> 1); result = (ncycle * (n + 1)) .. 2022. 1. 22.
최단거리 경로탐색 프로그램 다운로드및 설명 velog에다가 벨만-포드 알고리즘을 이용한 단방향 그래프 최단거리 경로탐색 프로그램에 대한 글올렸습니다. C# winform으로 만들어서 프로그램도 공유중입니다! https://velog.io/@dpmawile/bellmanford-pathfinding 최소비용 경로탐색 : 알고리즘 노트 벨만-포드 알고리즘을 이용한 최단비용 경로탐색 알고리즘에 대한 개인적인 알고리즘노트입니다. velog.io 2021. 8. 5.
17412 도시 왕복하기 1 [ 깔끔한 알고리즘 문제풀이 ] 문제 한번에 맞아서 기분좋은나머지 글써봅니다. 문제 풀러가기 17412번: 도시 왕복하기 1 첫째 줄에 두 정수 N(3 ≤ N ≤ 400), P(1 ≤ P ≤ 10,000)이 주어진다. 다음 P개의 줄에는 각 길이 연결하는 출발 도시와 도착 도시의 번호가 주어지며, 두 번호는 다르다. www.acmicpc.net 문제 난이도 플래티넘 IV 문제 유형 네트워크 유량 해법 이 문제는 난이도에 비해서 문제유형이 뭔지만 알면, 쉽게 풀리는문제입니다. 문제에서 범위가 1번도시부터 N번도시까지라고했지만, 어쨌든 우리가 최종적으로 원하는 최대유량및 결과값은 1번도시부터 2번도시로 가는 최대유량을 구해야합니다. 따라서 시작점을 1로하고 끝점을 2로 설정한다음 네트워크유량 알고리즘 돌려주면 됩니다. 그리고 정점들간의 드.. 2021. 7. 7.
네트워크 유량 알고리즘 Network flow [ C++20 / Algorithm ] 개발환경 >> Visual Studio 2022 언어 >> C++20 운영체제 >> Windows10 [ 참고자료 ] 안녕하세요!!! 이번에는 네트워크 유량에 관한 알고리즘을 객체화해보았습니다.' 바로 시작하겠습니다! [ 네트워크유량 알고리즘 network flow algorithm ] 우선은 네트워크유량 알고리즘이란? 각각의 변(edge)에 정해진 용량(capacity)보다 작은 흐름(flow)이 주어진 방향 그래프 라고 합니다!! 다음과 같은 그래프가있을때..! 'A'에서 'H'로 가는데 최대한으로 보낼수있는 유량은 몇일까요? (그림에서 빠뜨렸는데, B -> C로 가는 용량은 4입니다.) 다음에서 나와있는 숫자는 그 간선으로 데이터를 보낼수있는 총 용량 이며, 용량이상으로는 유량의 데이터를 보내지못합.. 2021. 6. 19.
드래곤알고리즘 <v1.0.0> C++ 라이브러리 배포 개발환경 >> Visual Studio 언어 >> C++17이상 운영체제 >> Windows10 안녕하세요!! 이번에는 여러가지 알고리즘을 앞으로 천천히 하나씩 넣어볼 라이브러리입니다~! 말그대로 여러가지 알고리즘이 들어가있는 c++17이상의 라이브러리입니다. 현재 추가해 놓은 알고리즘은 다익스트라 알고리즘(Dijkstra), 크루스칼 알고리즘(Kruskal)이 들어있습니다. 추후에 알고리즘은 천천히 하나씩 추가해나가겠습니다. 본 라이브러리의 제작목적은 개인공부입니다. 정적라이브러리를 만들어서 배포하는연습+여러가지 알고리즘공부 입니다. 최근에 알고리즘에 관해서 관심이 생겨서 이론을 공부한뒤, 만들어봤습니다. 라이브러리 다운로드 https://github.com/DRAGONPROCESS/DragonAlgo.. 2021. 6. 5.
여러개의 최댓값,최솟값 찾기 C++ 개발환경 >> DevCpp 언어 >> C++11 WinAPI 운영체제 >> Windows10 안녕하세요!!! 이번에는 심심해서 vector에 저장된값에서 여러개의 최댓값과 최솟값을 동시에 찾는 알고리즘을 만들어봤습니다~~~ #include #include #include using namespace std; typedef pair pii; int main(){ vectorans; vectordb; double d; int n,j,s; cin >> n >> s; //원소갯수,구할 최댓값 최솟값의 갯수 if(s*2>n) return 0; for(j=0;j> d; db.push_back(d); } for(j=0;j 2020. 11. 8.