zoukankan      html  css  js  c++  java
  • 2020-05-18 — 习题训练一C

    VJ

    C - Road To Zero

    题意:给定x和y,有两种操作方法使其得到x=y=0,求最少花费是多少;

       操作1(花费a):其中一个数加1或减1;操作2(花费b):全部加1或减1。

    解题思路:根据题意,只能进行两种情况的操作,不能同时加减1,会使其为负值;

         考虑到a和b之间的差值,两种操作判断出最小值。

                 一定要注意是long long!!!

    ac代码:

    #include<iostream>
    #include<cmath>
    #include<algorithm>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int main(){
    	long long int t,x,y,a,b,i,mi,ma;
    	cin>>t;
    	for(i=0;i<t;i++){
    		cin>>x>>y;
    		cin>>a>>b;
    		mi=min(x,y);
    		ma=max(x,y);
    		if((ma-mi)*a+mi*b>=(x+y)*a){//比较各自减1的a操作与共同部分减1的b操作+不同部分的a操作
    cout<<(x+y)*a<<endl; } else{ cout<<(ma-mi)*a+mi*b<<endl; } } return 0; }
    /
     

     

  • 相关阅读:
    T-SQL查询语句
    数据库和表的管理
    数据库概念
    IRF2实验
    IFR2笔记
    校园网双网出口实验案例
    双机热备实验
    华为H3C(NAT)实验
    BGP(边界网关协议)实验
    Hybrid实验
  • 原文地址:https://www.cnblogs.com/nanan/p/12922686.html
Copyright © 2011-2022 走看看