題意:環形跑道上的加油站有n個,第i個加油站加油pi單位,開到下個加油站需要qi單位,求乙個最小的起點編號使得從該點出發可以繞一圈回到該起點。
**思路:**列舉
從1開始起,模擬油量以及消耗的過程,假設到 k 點後油量不足以到達下乙個點 ,那麼1-k的點都不能做起點。以k+1作為新起點,記住當前還需要(欠)多少油,用pay表示,這些欠的油需要後面這段路來補充,如果後面這段路走完後最終剩餘的油量仍然不夠填前面這段路的坑,那就說明無解,否則輸出起點。
#include const int n = 100000 + 5;
int a[n],c[n];
int main()
} printf("case %d: ",kase++);
if(cur < pay) printf("not possible\n");
else printf("possible from station %d\n",ans); }
return 0;
}
UVa11093 例題9 13 環形跑道
uva11093 環形跑到上有n個加油站,每個加油站可以加p i 的油,而到下乙個加油站需要q i 的油,油箱無上限,求出能不能從某個加油站除法能可以走完一圈。紫書上給的思路 如果從第0個加油站出發,無法到達p 1站,在第p個加油站終止,則0 p之間的所有加油站都可以。原理很簡單 既然可以從0到第p...
1 3 環形佇列
實現 public class circlearrayqueuedemo catch exception e class circlearrayqueue public boolean isfull public boolean isempty public void addqueue int va...
141 環形鍊錶
給定乙個鍊錶,判斷鍊錶中是否有環。高階 你能否不使用額外空間解決此題?乙個快指標走兩步 乙個慢指標走一步 如果相遇就有環 不然沒環 class solution def hascycle self,head type head listnode rtype bool index1 head inde...