cf1512F. Education
生活随笔
收集整理的這篇文章主要介紹了
cf1512F. Education
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
cf1512F. Education
題意:
小明想買一個(gè)價(jià)值為c的東西,他開始打工,他一開始在第i個(gè)職務(wù),每天可以掙a[i],他也可以用一天的時(shí)間并且花費(fèi)b[i]升到i+1職務(wù),第i+1職務(wù)每天可以掙a[i+1]
一共有n個(gè)職務(wù),問他最少要多少天才能攢夠錢c
2<=n<=2e5
題解:
看看數(shù)據(jù)范圍。。這題直接暴力就行emm
我們直接計(jì)算在第i個(gè)崗位掙到c需要多少錢,取最小值
因?yàn)閸徫恍枰徊揭徊缴?#xff0c;所以到第i個(gè)崗位時(shí),要計(jì)算好升到第i個(gè)崗位所需要的時(shí)間,以及當(dāng)前的錢
詳細(xì)看看代碼,注意細(xì)節(jié)就行
(比賽時(shí)都沒看到這題)
代碼:
#include<bits/stdc++.h> #define debug(x,y) printf("%s = %d\n",x,y); typedef long long ll; using namespace std; inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();//s=(s<<3)+(s<<1)+(ch^48);return s*w; } const int maxn=2e5+9; ll a[maxn]; ll b[maxn]; int main() {int t;cin>>t;while(t--){ll n,c;cin>>n>>c;ll minn=1e13+9;for(int i=1;i<=n;i++)a[i]=0;for(int i=1;i<n;i++)b[i]=0;for(int i=1;i<=n;i++)scanf("%lld",&a[i]);for(int i=1;i<n;i++)scanf("%lld",&b[i]);ll tot=0;ll preday=0;ll pretot=0;for(int i=1;i<=n;i++){tot=preday+ceil(1.0*(c-pretot)/(1.0*a[i]));//到此為止 ll w=ceil(1.0*(b[i]-pretot)/(1.0*(a[i])));//晉升所需要的天數(shù) preday+=w+1;pretot+=(w*a[i])-b[i];minn=min(tot,minn);}printf("%d\n",minn); } }總結(jié)
以上是生活随笔為你收集整理的cf1512F. Education的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 脖子怎么瘦下来
- 下一篇: cf1512 G - Short Tas