zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 53 (Rated for Div. 2) D. Berland Fair

    题意:一个人  有T块钱 有一圈商店 分别出售 不同价格的东西  每次经过商店只能买一个  并且如果钱够就必须买 

    这个人一定是从1号店开始的!(比赛的时候读错了题,以为随意起点。。。)问可以买多少个

    思路:这个人有T块钱  走一圈之后可以买num个 花了sum块钱 那么走第二圈的时候 能买的东西是一圈的子集

    T/sum 表示还能够执行多少次买东西买完之后T%=sum继续递归上述步骤  直到 T=0||num=0 也就是没钱或者 一个都

    买不起

    参考:https://blog.csdn.net/STcyclone/article/details/83418853#1073C_Vasya_and_Robot_69 大佬的博客

    include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    int a[300000];
    int main(){
    int  n;ll t;
    cin>>n>>t;
    for(int i=0;i<n;i++){
    	scanf("%d",&a[i]);
    }
    ll ans=0;
    while(t){
    	ll sum=0;
    	ll num=0;
       for(int i=0;i<n;i++){
    	   
    	   if(t>=a[i])t-=a[i],sum+=a[i],num++,ans++;
       }
        if(!num)break;
    	   ans+=t/sum*num;
    	   t%=sum;
    
    }
    cout<<ans<<endl;
    
    }
    

      

  • 相关阅读:
    记录一次电话面试
    记录一次git合并
    HTML通用属性与常见标签
    位运算的应用
    HTML总结
    前端MVC
    常用软件
    docker常用命令
    composer install(update)时出现killed
    优化小技巧:该怎么识别百度蜘蛛呢
  • 原文地址:https://www.cnblogs.com/ttttttttrx/p/9885792.html
Copyright © 2011-2022 走看看