9 条题解

  • 6
    @ 2023-8-21 20:06:21

    这道题主要涉及物态变化,判断与简单数学计算。

    利用我们小学时学过的乘除应用题和初高中常用的分类讨论思想,就能轻松解决。

    #include <iostream>
    using namespace std;
    long long a,c,p,q,r,x,sum;
    int main()
    {
        cin >> a >> c >> p >> q >> r >> x;
        if(x>=((c-a)/1*p))
        {
            sum+=c;
            x-=((c-a)/1*p);
        }
        else
        {
            cout << x/p*1+a;
            return 0;
        }
        x-=q;
        if(x>0)
        {
            sum+= (x/r*1); 
        }
        cout << sum;
        return 0;
    }
    

    时间复杂度:O(1)

    0.8ms 376KiB

    • 4
      @ 2022-7-2 17:18:51

      我就是蒟蒻,我也爱吃蒟蒻果冻!(划掉)

      这是一道非常简单的模拟题,按照题目意思进行模拟即可。

      代码( 4ms ):

      #include <cstdio>
      using namespace std;
      
      int a , c , p , q , r , x; //啊啊啊,变量好多
      
      int main(void){
      	scanf("%d%d%d%d%d%d" , &a , &c , &p , &q , &r , &x);
      	//讨厌的输入(变量太多了)
      	while(a < c && x - p >= 0){ //模拟模拟
      		x -= p;
      		a++;
      	}
      	if(x > 0){
      		if(a == c)
      			x -= q;
      		if(x > 0){
      			while(x - r >= 0){
      				x -= r;
      				a++;
      			}
      		}
      	}
      	printf("%d\n" , a); //输出输出
      }
      
    • 2
      @ 2023-6-10 12:55:53
      #include <bits/stdc++.h>
      using namespace std;
      int main()
      {
          int c,q,p,r,a,x;
          cin>>a>>c>>p>>q>>r>>x;
          int k1,k2;
          k1 = (c-a)*p;
          k2 = k1+q;
          if(x<=k1) cout<<a+x/p;
          else if(x>k1 && x<=k2) cout<<c;
          else cout<<c+(x-k2)/r;
      }
      
    • 2
      @ 2022-9-7 20:24:31
      //题目整体很简单啊,只需要一个初高中数学常用的分类讨论思想
      //一遍过的快感这不就来了吗
      #include <bits/stdc++.h>
      using namespace std;
      int main()
      {
          int c,q,p,r,a,x;
          cin>>a>>c>>p>>q>>r>>x;//定义并输入数据(没啥好说的awa)
          int k1,k2;
          k1 = (c-a)*p;//加热到熔点(管它叫什么呢)的时间
          k2 = k1+q;//熔化结束的时间
          //准备工作完成,开始分类咯
          if(x<=k1)//如果还没到熔点
          {
              cout<<a+x/p;//输出初温+变化温度,因为是int类型所以会自己解决舍余问题
          }
          else if(x>k1 && x<=k2)//熔化期间
          {
              cout<<c;//温度不变(已经死去的八上物理突然跳起来攻击我)
          }
          else
          {
              cout<<c+(x-k2)/r;//如果超过,与第一段是一个道理
          }
          //完美收工!!!
      }
      
      
      //纯代码放在下面啦,这个没循环感觉是最简单的了吧
      
      
      #include <bits/stdc++.h>
      using namespace std;
      int main()
      {
          int c,q,p,r,a,x;
          cin>>a>>c>>p>>q>>r>>x;
          int k1,k2;
          k1 = (c-a)*p;
          k2 = k1+q;
          if(x<=k1)
              cout<<a+x/p;
          else if(x>k1 && x<=k2)
              cout<<c;
          else
              cout<<c+(x-k2)/r;
      }
      
      </span>
      • 1
        @ 2022-8-23 10:09:41

        模拟每个时间温度发生的改变,时间不够就跳出循环

        bool y=1;
        while (x)
        {
            if (a<c)
            {
                if (x>=p)
                {
                    x-=p;
                    a++;
                }
                else
                {
                    break;
                }
            }
            else if (a==c)
            {
                if (y)
                {
                    if (x>=q)
                    {
                        x-=q;
                        y=0;
                    }
                    else
                    {
                        break;
                    }
                }
                else
                {
                    if (x>=r)
                    {
                        x-=r;
                        a++;
                    }
                }
            }
            else if (a>c && x>=r)
            {
                x-=r;
                a++;
            }
        }
        
        • 0
          @ 2022-6-4 22:44:17

          三种类型: 1:温度小于c————循环直到温度等于c 2:温度等于c————减一次q,看x是否小于0:小于就cout << a; return 0;大于继续。 3:解冻后————while(true)直到x <= 0;。

          • -3
            @ 2023-6-8 14:24:35

            #include <bits/stdc++.h> using namespace std; int a,c,p,q,r,x; int main(){
            cin>>a>>c>>p>>q>>r>>x; while(a<c&&x-p>=0){ x-=p; a+=1; }x-=q; while(floor(x)>=1&&x-q>=0){ x-=r; a++; }cout<<a; return 0; }//代码知识几乎全没了(悲)

            • -3
              @ 2022-8-30 16:33:10

              #include<bits/stdc++.h> using namespace std; int main() { int a,c,p,q,r,x; cin>>a>>c>>p>>q>>r>>x; if(x<(c-a)*p)cout<<a+x/p; else if(x<=(c-a)*p+q)cout<<c; else cout<<c+(x-((c-a)*p)-q)/r; return 0; }

              • -3
                @ 2022-4-24 16:13:12

                鼓励大家写题解,但注意题解格式。

                给代码两端加上这个会舒服一些

                ```cpp

                你的代码

                ```

                </span>

                这个点在键盘的左上角tab上面那个键,注意切换输入法

                #include<iostream>
                using namespace std;
                int main()
                {
                    int n;
                    cin>>n;//这是一个注释
                    return 0;
                } 
                

                请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

                抄袭题解一经发现直接取消成绩。

                • 1

                信息

                ID
                1332
                时间
                1000ms
                内存
                256MiB
                难度
                4
                标签
                递交数
                449
                已通过
                194
                上传者