超时了......求帮助

P1150 Peter 的烟

zousilin @ 2021-08-08 17:45:35

#include <iostream>

using namespace std;

int main(){
    int n=0,k=0,p=0,y=0;
    cin>>n>>k;
    y=n;
    for(;y>=k;){        
        p+=n;
        n=y/k;          //换烟
        y-=y/k; 
        y+=n;           //吸烟 
        if(y<k){
            break;
        }
    }
    cout<<p;
    return 0;
}

by 小小小蒟蒻 @ 2021-08-08 18:02:37

O2大法好


by 小小小蒟蒻 @ 2021-08-08 18:11:25

@zousilin 这个方法要是太慢了可以换一种思路啊

这里提供一种方法:

int n, k;
cin >> n >> k;
cout << n + (n - 1) / (k - 1);

by zousilin @ 2021-08-11 12:03:26

@小小小蒟蒻 谢谢^_^


|