版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/C_13579/article/details/83656710
地址:http://codeforces.com/contest/1073/problem/D
思路:直接暴力就能过QAQ,每次模拟扫一遍,得到s个糖果的价格为Sum,然后ans+=(T/Sum)*s,T%=Sum;这样一直这样循环即可。
我一直以为这样的时间复杂度是 n*n,所有就没有交,结果只跑了70ms...,还是太菜,以后不确定的还是要交一遍再说,万一过了呢— —
Code:
#include<iostream>
using namespace std;
typedef long long LL;
const int MAX_N=2e5+5;
int n;
LL m;
LL a[MAX_N];
int main()
{
ios::sync_with_stdio(false);
while(cin>>n>>m){
for(int i=1;i<=n;++i)
cin>>a[i];
LL ans=0,Sum=0,s=0;
while(1){
Sum=s=0;
for(int i=1;i<=n;++i)
if(Sum+a[i]<=m){
Sum+=a[i]; ++s;
}
if(Sum){
ans+=(m/Sum)*s;
m%=Sum;
}else break;
}
cout<<ans<<endl;
}
return 0;
}