poj1852
2018-1-23
我們得知道,當兩只螞蟻相遇時,他們互相碰撞后然后掉頭與他們相互穿過是沒有 任何區(qū)別的,只要明白了這一點,我們就好求解了。最大值就是每個螞蟻都沿著最 遠的方向走,即max(k,l-t),然后取最大值,最小值就是每個螞蟻都沿著最近的 方向走,即min(k,l-k),然后取最大值。 一開始用的C++寫的,發(fā)現(xiàn)一直都是TLE,后來想到了之前有個學長提到過C++的輸 入輸出流的緩沖區(qū)的問題。百度了一下,原來而cin,cout之所以效率低,是因為 先把輸出的東西存入緩沖區(qū),再輸出,導致效率降低。std::ios::sync_with_stdio(false);而這段語句可以來打消iostream的輸入 輸出緩存,可以節(jié)省許多時間,使效率與 scanf與printf相差無幾。 #include<iostream> using namespace std;int main(){int t;std::ios::sync_with_stdio(false);cin>>t;while (t--){int l,n,mm=0,nn=0;cin>>l>>n;for (int i=0;i<n;i++){int k;cin>>k;mm=max(mm,max(k,l-k));nn=max(nn,min(k,l-k));}cout<<nn<<" "<<mm<<endl;}return 0; } #include<stdio.h>int min(int a,int b){return a<b?a:b; }int max(int a,int b){return a>b?a:b; }int main(){int t;scanf ("%d",&t);while (t--){int l,n,mm=0,nn=0;scanf ("%d%d",&l,&n);for (int i=0;i<n;i++){int k;scanf ("%d",&k);mm=max(mm,max(k,l-k));nn=max(nn,min(k,l-k));}printf ("%d %d\n",nn,mm);}return 0; }總結
- 上一篇: Python 创建随机mac地址(单播、
- 下一篇: Linux下安装Octave