亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Codeforces 672C Recycling Bottles【極限思維+貪心枚舉】

2019-11-14 08:49:55
字體:
來源:轉載
供稿:網友

C. Recycling Bottlestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

It was recycling day in Kekoland. To celebrate it Adil and Bera went to Central Perk where they can take bottles from the ground and put them into a recycling bin.

We can think Central Perk as coordinate plane. There are n bottles on the ground, the i-th bottle is located at position(xi,?yi). Both Adil and Bera can carry only one bottle at once each.

For both Adil and Bera the PRocess looks as follows:

Choose to stop or to continue to collect bottles. If the choice was to continue then choose some bottle and walk towards it. Pick this bottle and walk to the recycling bin. Go to step 1.

Adil and Bera may move independently. They are allowed to pick bottles simultaneously, all bottles may be picked by any of the two, it's allowed that one of them stays still while the other one continues to pick bottles.

They want to organize the process such that the total distance they walk (the sum of distance walked by Adil and distance walked by Bera) is minimum possible. Of course, at the end all bottles should lie in the recycling bin.

Input

First line of the input contains six integers ax,ay,bx,by,tx andty (0?≤?ax,?ay,?bx,?by,?tx,?ty?≤?109) — initial positions of Adil, Bera and recycling bin respectively.

The second line contains a single integer n (1?≤?n?≤?100?000) — the number of bottles on the ground.

Then follow n lines, each of them contains two integersxi andyi (0?≤?xi,?yi?≤?109) — position of the i-th bottle.

It's guaranteed that positions of Adil, Bera, recycling bin and all bottles are distinct.

Output

Print one real number — the minimum possible total distance Adil and Bera need to walk in order to put all bottles into recycling bin. Your answer will be considered correct if its absolute or relative error does not exceed10?-?6.

Namely: let's assume that your answer is a, and the answer of the jury isb. The checker program will consider your answer correct if.

ExamplesInput
3 1 1 2 0 031 12 12 3Output
11.084259940083Input
5 0 4 2 2 055 23 05 53 53 3Output
33.121375178000Note

Consider the first sample.

Adil will use the following path: .

Bera will use the following path: .

Adil's path will be units long, while Bera's path will be units long.

題目大意:

現在有兩個人,分別站在(ax,ay)和(bx,by)處,現在有N個垃圾,需要處理,垃圾箱位于(tx,ty)處,這兩個人每次只能拿一個垃圾,并且拿到垃圾之后必須放到垃圾箱中,對于兩個人來講,每個人的行動都是相對獨立的。問兩個人的路徑和最小是多少,就能夠將所有垃圾都扔到垃圾箱中。

思路:

1、這種思維題還是靠某些典型題的體型所影響。比如51nod 1487 占領資源(topcoder上的題)這道題:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1487

利用到這種極限思維的題還是蠻經典的??梢砸巹澋揭活惾ド羁逃洃?。

因為做出來這個題的時候感覺這種極限思維還是蠻有趣的,記憶比較深刻。

2、對于A.B兩個人來講,如果一開始都在垃圾箱處出發,那么ans=2*Σdis(xi,yi)---->(tx,ty);

對于兩個人A.B,每個人只要都選了一個垃圾去撿,并且都回到了垃圾箱處,那么接下來的路程就相當于一個人來回走。

那么對于暴力思維來講,那就是直接O(n^2)枚舉兩個垃圾,過程維護最小值。顯然這么做是會超時的。

那么接下里從貪心的角度出發,對于ans=2*Σdis(xi,yi)->(tx,ty)-A選擇的第一個垃圾的點到垃圾箱的距離+A選擇的第一個垃圾的點到A初始位子的距離-B選擇的第一個垃圾的點到垃圾箱的距離+B選擇的第一個垃圾的點到A初始位子的距離;

我們肯定是希望后邊這一大長串描述中,A選擇的第一個垃圾的點到A初始位子的距離以及B選擇的第一個垃圾的點到B初始位子的距離的和盡可能的小,然而對于不同的選擇方式,最終答案肯定是不同的。

那么我們不妨設定兩個數組A【】,B【】,一個按照點與A的距離從小到大排序,一個按照與B的距離從小到大排序。

接下來我們可以暴力枚舉兩項,分別作為A選擇的點以及B選擇的點,當然不能忘記,有可能一個人一直不動是正解,這種情況也要枚舉。

3、通過思考和簡單枚舉不難發現對于枚舉的量,其實只要足夠大,就一定不會影響結果。

所以在第一次提交的時候,我A,B數組都枚舉了1000的量,結果是Ac的。(再之后交了一發100的枚舉量,也是Ac的);

4、這種極限思維還是蠻實用的。

Ac代碼:

#include<stdio.h>#include<string.h>#include<math.h>#include<iostream>#include<algorithm>using namespace std;#define ll __int64struct node{    ll x,y;    double dis0;    double disa;    double disb;    int pos;}a[100060],b[100060];double dis(ll a,ll b,ll c,ll d){    return sqrt((a-c)*(a-c)+(b-d)*(b-d));}int cmp(node a,node b){    if(a.disa!=b.disa)    return a.disa<b.disa;    else return a.disb<b.disb;}int cmp2(node a,node b){    if(a.disb!=b.disb)    return a.disb<b.disb;    else return a.disa<b.disa;}int main(){    ll ax,ay,bx,by,tx,ty;    while(~scanf("%I64d%I64d%I64d%I64d%I64d%I64d",&ax,&ay,&bx,&by,&tx,&ty))    {        ll n;        scanf("%I64d",&n);        double minna=-1,minna0;        double minnb=-1,minnb0;        double sum=0;        for(int i=0;i<n;i++)        {            scanf("%I64d%I64d",&a[i].x,&a[i].y);            a[i].pos=i;            b[i].pos=i;            a[i].dis0=dis(a[i].x,a[i].y,tx,ty);            a[i].disa=dis(a[i].x,a[i].y,ax,ay);            a[i].disb=dis(a[i].x,a[i].y,bx,by);            sum+=2*a[i].dis0;            b[i].dis0=a[i].dis0,b[i].disa=a[i].disa;b[i].disb=a[i].disb;        }        double ans=2000000000000000000;        sort(a,a+n,cmp);        sort(b,b+n,cmp2);        for(int i=0;i<n&&i<100;i++)        {            for(int j=0;j<n&&j<100;j++)            {                if(a[i].pos==b[j].pos)                {                    ans=min(ans,min(sum-a[i].dis0+a[i].disa,sum-b[j].dis0+b[j].disb));                    continue;                }                ans=min(ans,sum-a[i].dis0-b[j].dis0+a[i].disa+b[j].disb);            }        }        printf("%.12lf/n",ans);    }}


上一篇:C++對象模型

下一篇:C位運算

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97精品国产aⅴ7777| 91高清视频免费| 久久国产精品久久久久| 亚洲精品国产福利| 国产精品女主播| 亚洲欧美日韩国产中文专区| 麻豆一区二区在线观看| 日韩精品中文字幕有码专区| 国产日韩av在线播放| 久久在精品线影院精品国产| 欧美日本高清一区| 亚洲成人激情在线| 亚洲国产中文字幕在线观看| 国产精品视频永久免费播放| 成人在线免费观看视视频| 亚洲无亚洲人成网站77777| 国产精品电影一区| 欧美国产精品va在线观看| 日韩视频在线免费| 亚洲欧洲一区二区三区久久| 91欧美精品午夜性色福利在线| 在线免费看av不卡| 国产一区二区黄| 岛国av一区二区三区| 欧美大人香蕉在线| 国内精品一区二区三区| 亚洲天堂一区二区三区| 欧美日韩国产一区二区三区| 欧美成人免费大片| 国产成人久久久| 国产精品av在线播放| 日韩av大片免费看| 九九综合九九综合| 亚洲一区二区免费| 麻豆国产va免费精品高清在线| 日韩中文在线视频| 国产精品入口福利| …久久精品99久久香蕉国产| 亚洲第一色在线| 日韩欧美一区二区三区| 亚洲黄色av网站| 91中文字幕一区| 日韩麻豆第一页| 国产大片精品免费永久看nba| 久久久久久久久久久亚洲| 国产91色在线|| 国产精品久久久久久网站| 久久综合免费视频影院| 亚洲xxx大片| 国产精品中文字幕在线观看| 伊人伊人伊人久久| 欧美日韩成人在线视频| 欧美大胆在线视频| 久热精品视频在线| 日韩av免费网站| 欧美成人免费网| 日韩av一区二区在线观看| 成人h视频在线观看播放| 欧美成人免费大片| 午夜精品久久久久久99热软件| 久久香蕉国产线看观看av| 欧美午夜精品伦理| 久久久久久欧美| 国产精品旅馆在线| 亚洲小视频在线| 久久久久久国产精品美女| 国产欧美一区二区| 欧美性猛交99久久久久99按摩| 原创国产精品91| 福利视频第一区| 久久国产精品网站| 在线观看日韩视频| 日韩一区在线视频| 亚洲免费电影一区| 九九久久精品一区| 久久成人免费视频| 亚洲国产精品视频在线观看| 日本精品久久久久影院| 精品动漫一区二区三区| 亚洲第一福利网| 自拍亚洲一区欧美另类| 91九色综合久久| 热re91久久精品国99热蜜臀| 国内揄拍国内精品少妇国语| 欧美综合一区第一页| 日韩av网址在线| 国产精品欧美久久久| 国产精品露脸av在线| 亚洲欧美制服另类日韩| 精品久久香蕉国产线看观看gif| 欧美在线视频免费播放| 日韩经典第一页| 欧美激情亚洲一区| 在线视频欧美日韩精品| 亚洲美女又黄又爽在线观看| 亚洲国产天堂久久综合| 美女视频久久黄| 丝袜情趣国产精品| 久久成人人人人精品欧| 亚洲欧美精品中文字幕在线| 91成品人片a无限观看| 久久久久国产精品免费网站| 亚洲片在线观看| 日韩精品欧美国产精品忘忧草| 视频直播国产精品| 麻豆国产精品va在线观看不卡| 国产精品高潮呻吟久久av无限| 国产精品揄拍500视频| 久久久在线免费观看| 国产精品美女www爽爽爽视频| 成人免费淫片aa视频免费| 亚洲va久久久噜噜噜| 亚洲美腿欧美激情另类| 国产欧美最新羞羞视频在线观看| 亚洲美女性视频| 一本色道久久88精品综合| 超碰97人人做人人爱少妇| 国产精品视频一区二区三区四| 欧美丝袜一区二区| 亚洲成年人在线播放| 国产精品入口免费视频一| 国产日韩欧美中文| 视频一区视频二区国产精品| 成人黄色大片在线免费观看| 亚洲最新av在线网站| 欧美日韩高清在线观看| 97超碰蝌蚪网人人做人人爽| 亚洲女性裸体视频| 九九精品在线观看| 一区二区三区精品99久久| 国产不卡一区二区在线播放| 成人乱人伦精品视频在线观看| 国产成人精品一区| 欧美一级淫片aaaaaaa视频| 亚洲一二三在线| 日韩av中文字幕在线免费观看| 在线观看成人黄色| 亚洲第一免费播放区| 国产精品偷伦免费视频观看的| 国产精品精品视频一区二区三区| 日韩中文视频免费在线观看| 欧美激情中文字幕乱码免费| 成人精品久久久| 国产精品 欧美在线| 欧美精品久久久久久久久| 国产成人精品视频| 国产精品影院在线观看| 亚洲国产成人精品电影| 两个人的视频www国产精品| 日本一本a高清免费不卡| 色先锋久久影院av| 97香蕉久久超级碰碰高清版| 国产日韩欧美电影在线观看| 久久久亚洲影院你懂的| 成人在线视频网| 欧美高清视频在线观看| 亚洲欧美日韩一区二区三区在线| 国产一区二区在线免费| 国产成人精品电影久久久| 国产精品福利在线观看| 国产欧美一区二区三区久久| 欧美性jizz18性欧美| 久久久久日韩精品久久久男男| 欧美午夜精品久久久久久久|