[NOIP2011]觀光公交 題解

來源:互聯網
上載者:User

標籤:print   div   read   style   ast   etc   i++   span   網站   

題目大意:

  就省了吧

思路:

  應該算是貪心。

  不難發現,加速只對所有在使用加速器之後連續的一段下車時不用等人的網站下車的人有用。這非常重要。

  先算出不加速時的和,並預先處理出每個網站最遲到的人的時間、每個站下車的人數。然後一個一個放加速器,加速器放在惠及最多的人的一段,同時維護到每個網站的時間(判斷用不用等人)。

代碼:

 1 #include<cstdio> 2 #include<iostream> 3 using namespace std; 4 const int M=100005,N=1005; 5 int n,m,k,i,j,mx,ans,t[M],off[M],last[M],come[M],down[M],dist[N]; 6  7 int read() 8 { 9     int x=0;10     char ch=getchar();11     while (ch<‘0‘ || ch>‘9‘) ch=getchar();12     while (ch>=‘0‘ && ch<=‘9‘) x=(x<<1)+(x<<3)+ch-48,ch=getchar();13     return x;14 }15 16 int main()17 {18     n=read(),m=read(),k=read();19     for (i=1;i<n;i++) dist[i]=read();20     for (i=1;i<=m;i++) t[i]=read(),last[j=read()]=max(last[j],t[i]),off[down[i]=read()]++;21     for (i=1;i<n;i++) come[i+1]=max(come[i],last[i])+dist[i];22     for (i=1;i<=m;i++) ans+=come[down[i]]-t[i];23     while (k--)24     {25         for (i=1;i<=n;i++) t[i]=0;26         for (i=1;i<n;i++)27             if (dist[i])28                 for (j=i+1;j<=n;j++)29                 {30                     t[i]+=off[j];31                     if (come[j]<=last[j]) break;32                 }33         mx=0;34         for (i=1;i<n;i++)35             if (t[i]>mx) mx=t[i],j=i;36         dist[j]--,ans-=t[j],come[++j]--;37         for (;j<n;j++) come[j+1]=max(come[j],last[j])+dist[j];38     }39     printf("%d\n",ans);40     return 0;41 }

 

[NOIP2011]觀光公交 題解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.