2017-04-07から1日間の記事一覧

ABC022_C

頂点1を含まないグラフを考えてその最短経路を作れば良いと思ったが 頂点1を含まないグラフの作り方 == 頂点1に隣接している頂点の選び方O(N^2) dijkstra法O(N^2) よって全体でO(N^4)掛かってしまい案の定TLEだった. #include <bits/stdc++.h> using namespace std; static </bits/stdc++.h>…

ABC007_C

幅優先探索の問題 queueにいれて順番に計算していく. 座標を扱う際にtypedefが便利 typedef pair<int,int> P; que.push(P(x,y)); #include <bits/stdc++.h> using namespace std; int r,c,sx,sy,gx,gy; int dx[4] = {1,0,-1,0},dy[4] = {0,1,0,-1}; static const int MAX_R =50; stat</bits/stdc++.h></int,int>…

【c++】vectorの重複要素の削除

C++

unique()は配列の長さは変わらないため重複で削除された空きの場所にゴミが入る #include <bits/stdc++.h> using namespace std; void printVector(vector<int> &v){ for(int i=0;i<v.size();i++){ cout<<v[i]<<endl; } } int main() { vector<int> vec; vec.push_back(1); vec.push_back(2); vec.push_back(2); vec.push_back(3); vec.push_back</v.size();i++){></int></bits/stdc++.h>…

ABC019_C

2で割り切れたら割り続けて集合に入れる. 2で割り切るのは右ビットシフトと同義 a[i] /= 2; a[i] = a[i]>>1; a[i] =>>1;//これはダメ a[i]>>1;//これもダメ 解答 #include <bits/stdc++.h> using namespace std; #define ll long long int static const int MAX_N = 100000;</bits/stdc++.h>…

ABC030_C

飛行機で何往復できるかという問題 普通にやると大変なのでlower_bound()による二分探索を使った. lower_bound(a,a+n,value)はvalue以上の値の位置を返す. #include <bits/stdc++.h> using namespace std; int main(){ int a[5] = {1,3,5,7,9}; int* pos = lower_bound(a,a+</bits/stdc++.h>…