C++ 基礎題 A - Lake Counting POJ - 2386 發表於 2021-03-20 分類於 ojques 題目連結:宜中資訊校隊練習1 - DFS, BFS & Next_Permutation - Virtual Judge這個問題主要在訓練 BFS ( 廣度優先搜索 ),以下為程式碼 閱讀全文 »
C++ APCS實作題 2017/3 3 : 數字龍捲風 發表於 2021-03-19 分類於 apcs , apcspracticaltest 題目連結:c292. APCS2017-0304-3數字龍捲風 - 高中生程式解題系統1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include<bits/stdc++.h>int map[101][101];bool visit[101][101]={false};int main(){ int n,r; std::cin>>n>>r; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ std::cin>>map[i][j]; } } int row=n/2,col=n/2; for(int i=0;i<n*n;i++){ visit[row][col]=true; std::cout<<map[row][col]; switch(r){ case 0://left col--; if(!visit[row-1][col]){ r++; } break; case 1://up row--; if(!visit[row][col+1]){ r++; } break; case 2://right col++; if(!visit[row+1][col]){ r++; } break; case 3://down row++; if(!visit[row][col-1]){ r=0; } break; } } return 0;} 閱讀全文 »
C++ APCS實作題 2021/1 4 : 飛黃騰達 發表於 2021-03-19 分類於 apcs , apcspracticaltest 經典的 LIS(最長遞增子序列) 但把 lower_bound() 改成 upper_bound() 就會過了。 (這點我也想了一下) 閱讀全文 »
APCS325 Q-4-8. 先到先服務 發表於 2021-03-15 分類於 apcs , apcs325 題目連結:d050. Q_4_8 先到先服務 (* - JMJudge123456789101112131415161718192021222324#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ios::sync_with_stdio(false); ll n,m,worst; cin>>n>>m; priority_queue<ll> bars; for(int i=0;i<m;i++){ bars.push(0); } for(int i=0;i<n;i++){ ll total=bars.top(); bars.pop(); int ipt=0; cin>>ipt; total-=ipt; worst=max(-(total),worst); bars.push(total); } cout<<worst; return 0;} 閱讀全文 »
APCS325 Q-3-13 X差值範圍內的最大Y差值 發表於 2021-03-14 分類於 apcs , apcs325 題目連結:d041. Q_3_13 X差值範圍內的最大Y差值 - JMJudge1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include<iostream>#include<algorithm>#include<cmath> #include<deque>#include<fstream>using namespace std;struct posion{ int x,y;};bool cmp(posion a,posion b){ return a.x<b.x;}posion seq[200010];int main(){ ios::sync_with_stdio(false); cin.tie(0); int n,L; cin>>n>>L; for(int i=0;i<n;i++){ cin>>seq[i].x; } for(int i=0;i<n;i++){ cin>>seq[i].y; } sort(seq,seq+n,cmp); int best=0; deque<int> max,min; for(int i=0,j=0;i<n;i++){ while(!max.empty() && seq[i].x-seq[max.back()].x>L) max.pop_back(); while(!min.empty() && seq[i].x-seq[min.back()].x>L) min.pop_back(); while(!max.empty() && seq[i].y>seq[max.back()].y) max.pop_front(); while(!min.empty() && seq[i].y<seq[min.back()].y) min.pop_front(); max.push_front(i); min.push_front(i); if(!max.empty() && !min.empty() && abs(seq[max.back()].y-seq[min.back()].y)>best){ best=abs(seq[max.back()].y-seq[min.back()].y); } } cout<<best; return 0;} 閱讀全文 »
C++ APCS實作題 2021/1 3 : 切割費用 發表於 2021-03-10 分類於 apcs , apcspracticaltest 用到了 set 和 iterator 123456789101112131415161718192021222324252627282930313233343536#include<bits/stdc++.h>using namespace std;struct data{ int x,i;};data dt[200000];bool cmp(data a,data b){ return a.i<b.i;}int main(){ ios::sync_with_stdio(false); cin.tie(0); int n;int L; cin>>n>>L; for(int i=0;i<n;i++){ cin>>dt[i].x; cin>>dt[i].i; } sort(dt,dt+n,cmp); set<int> s; s.insert(0); s.insert(L); long long sum=0; set<int>::iterator ptrE=s.begin(); set<int>::iterator ptrB=s.end(); for(int i=0;i<n;i++){ s.insert(dt[i].x); ptrE=s.lower_bound(dt[i].x); ptrE--; ptrB=ptrE; ptrE++;ptrE++; sum+= (*ptrE)-(*ptrB); } cout<<sum; return 0;} 閱讀全文 »
C++ 基礎題 a364: 2. 神秘的進位問題 發表於 2021-02-03 分類於 ojques 題目連結:a364. 2. 神秘的進位問題 - 高中生程式解題系統我是用窮舉法,找出每一種可能。程式碼如下~ 閱讀全文 »
C++ 基礎題 a034: 二進位制轉換 發表於 2021-01-19 分類於 ojques 題目連結:a034. 二進位制轉換 - 高中生程式解題系統參考程式碼如下,反覆除2取餘數即可。 閱讀全文 »