?!混乱

P1150 Peter 的烟

Hydrogen_H @ 2024-09-26 21:34:09

#include<bits/stdc++.h>
using namespace std;
int dg(int a,int b,int o)
{
    if(a/b+o<b)
        return a/b;
    else
        if(o==0)
            return a/b+dg(a/b,b,a%b);
        else
            return (a+o)/b+dg((a+o)/b,b,a%b);
}
int main()
{
    int n,k;
    cin>>n>>k;
    cout<<dg(n,k,0)+n;
    return 0;
}

1.90分

2.不会改

3.思路糊涂

谁来教教我?

结果


by banglee @ 2024-09-26 21:38:36

emm....这道题没那么麻烦吧,简单数学题而已


by banglee @ 2024-09-26 21:39:28

可以去参考一下题解的思路


by zhangjiahe__ @ 2024-09-26 21:41:52

#include <iostream> 
using namespace std;
int main()
{
    int n, k;
    cin >> n >> k;
    cout << n + (n-1)/(k-1);
    return 0;
}

@Leon111 额外加的烟数量可直接算


by wzxujiacheng__ @ 2024-09-26 21:45:01

@leon111

#include<bits/stdc++.h>
using namespace std;
unsigned long long n=0,k=0;
unsigned long long read(){
    unsigned long long ret=0,f=1;
   char ch=getchar();
    while(!isdigit(ch)){
       if (ch=='-')f=-f;ch=getchar();
   }
    while(isdigit(ch)){
        ret=(ret<<3)+(ret<<1)+(ch&15);
        ch=getchar();
   }
    return ret*f;
}
int main(){
    n=read(),k=read();
    unsigned long long cnt=n;
    while(n/k>0){cnt+=n/k;int m=n%k;n=n/k+m;}
    cout<<cnt;
    return 0;
}
  //还行吧

by Hydrogen_H @ 2024-10-01 16:52:53

@zhangjiahe__ 我并没有看懂为什么。↓
(结果=x。)

x=n+(n+1)\div(k-1)

by Hydrogen_H @ 2024-10-01 16:54:47

@wzxujiacheng__ 这不会超时啊?看起来很复杂。


by Hydrogen_H @ 2024-10-01 17:05:01

我已经做出了这道题(刚才)。
此贴已完结
如果不相信可以查看

结果


by wzxujiacheng__ @ 2024-10-01 18:00:12

@Leon111 不会的那是快读


by Hydrogen_H @ 2024-10-02 09:00:23

@wzxujiacheng__ 你这个

isdigit()

是什么?


by wzxujiacheng__ @ 2024-10-02 09:21:54

@Leon111 不用管,把快读用上就行


|