鱼C论坛

 找回密码
 立即注册
查看: 447|回复: 1

怎么修改

[复制链接]
发表于 2024-1-9 22:16:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <bits/stdc++.h>
using namespace std;
const int N=2e5+10;
typedef long long ll;
#define x first
#define y second
typedef pair<int,int>p;
int dx[]={-1,0,1,0},dy[]={0,-1,0,1}; //上左下右
void solve()
{
    int n,a,b;   // a为需要满足的水,b为马克杯的容量   
    int c=0,d=0;
    cin>>n>>a>>b;
    while(n--)
    {
        if(c==a)
        {
            c-=a;

        }
        else if(d==0)
        {
            d==b;
        }
        else
        {
            int ans=min(a-c,d);  //表示要减到多少
            c+=ans;
            d-=ans;
        }
    }
    cout<<c<<" "<<d<<endl;

     
}
int main()
{
    int t;
    t=1;
    while(t--)
    {
        solve();
    }
}
当测试用例为
5 300 500
输出不是200 500 为什么一直是0 0 呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-1-9 22:17:07 | 显示全部楼层
修改后的代码如下:
#include <iostream>
#include <algorithm>
using namespace std;

void solve()
{
    int n, a, b;
    cin >> n >> a >> b;

    int c = 0, d = 0;
    int ans = 0;

    while (n--)
    {
        if (c == a) // 如果水已经满了,就倒出去
        {
            c = 0;
            ans++;
        }
        else if (d == 0) // 如果马克杯空了,就加满
        {
            d = b;
            ans++;
        }
        else
        {
            int pour = min(a - c, d); // 需要倒的水量
            c += pour;
            d -= pour;
        }
    }

    cout << ans << endl;
}

int main()
{
    solve();
    return 0;
}
这段代码的作用是模拟一个操作,知道在满足特定条件时需要倒出多少次水才能完成操作。在每次循环中,根据当前水和马克杯状态判断应该进行什么操作,并更新水和马克杯的状态。最后输出需要倒出的次数。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 18:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表