1 条题解

  • 0
    @ 2024-12-26 17:11:20

    C :

    #include<stdio.h>
    int main()
    {
        long long x,y,k;
        scanf("%lld%lld%lld",&x,&y,&k);
        //k个火把需要k个木棒k个煤炭
        //交易2需要交易k次能有k个煤炭
        //分析交易1 要知道总木棒数量
        //交易2就需要y*k个木棒
        //那么总共需要y*k+k个木棒
        //原本一个木棒就还需要y*k+k-1个木棒
        //初始化交易次数是k
        long long jiaoyi=k;
        long long jiaoyi1=(y*k+k-1)/(x-1);
        if((y*k+k-1)%(x-1)!=0)
        {
            jiaoyi1++;
        }
        jiaoyi=jiaoyi+jiaoyi1;
        printf("%lld",jiaoyi);
        return 0;
    }
    

    C++ :

    #include <bits/stdc++.h>
    #define int long long
    using namespace std;
    const int N=1e5+10;
    typedef pair<int,int> PII;
    typedef priority_queue<int , vector<int>, greater<int>> minqueue;  //从小到大 queue
    typedef priority_queue<int, vector<int>, less<int>> maxqueue;      //从大到小 queue
    
    int gcd(int a, int b){  //最大公因数 
        return b ? gcd(b, a % b) : a;
    }
    
    int lcm(int a, int b){ //最小公倍数 
        return a * b / __gcd(a, b);
    }
    
    int qmi(int base, int power, int p)  //快速幂求余 
    {
    	int result = 1;   
    	while (power > 0)           
    	{
    		if (power & 1)         							
    			result = result * base % p;   
    		base = base * base % p ;       						
    		power >>= 1;         						
    	}
    	return result % p;
    }
    
    void solve()
    {
    	int x,y,k;
    	cin>>x>>y>>k;
    	int res = k+y*k - 1;
    	int ans = k;
    	x--;
    	if(res%x!=0)
    	{
    		ans++;
    	}
    	ans += res / x;
    	cout<<ans;
    }
    
    signed main()
    {
    	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    	int t;
    	t=1;
    	//cin>>t; 
    	while(t--)     
    	{
    		solve();
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    713
    时间
    1000ms
    内存
    128MiB
    难度
    9
    标签
    提交数
    15
    已通过
    3
    上传者