4 条题解

  • 0
    @ 2023-4-29 12:13:07
    #include<bits/stdc++.h>
    using namespace std;
    #define Min(a, b) a < b ? a : b
    int main(){
        int n, a, p, m = INT_MAX;
        cin >> n;
        for(int i = 0; i < 3; i++){
            cin >> a >> p;
            m = Min(m, ceil(1.0 * n / a) * p);
        }
        cout << m;
        return 0;
    }
    

    没必要的繁琐写法

    #include <bits/stdc++.h>
    using namespace std;
    struct p {
        int price;
        int amount;
        int need;
        int cost;
    }pencil[3];
    bool cmp(p a, p b) {
        return a.cost < b.cost;
    }
    int main() {
        int n;
        cin >> n;
        for(int i = 0; i < 3; i++) {
            cin >> pencil[i].amount >> pencil[i].price;
            pencil[i].need = ceil((double)n / pencil[i].amount);
            pencil[i].cost = pencil[i].need * pencil[i].price;
        }
        sort(pencil, pencil + 3, cmp);
        cout << pencil[0].cost;
        return 0;
    }
    

    更新:优化码风

    • 0
      @ 2021-10-10 20:45:02

      依题意模拟即可

      #include<bits/stdc++.h>
      using namespace std;
      
      
      int main()
      {
      	int n,a,b,i,j,k,low=100000001;
      	cin>>n;
      	for(i=1;i<=3;i++){
      		cin>>a>>b;
      		for(j=1;;j++){
      			if(a*j>=n){
      				k=b*j;
      				break;
      			}
      			else continue;
      		}
      		if(k<=low) low=k;
      	}
      	cout<<low<<endl;
      }
      
      • -2
        @ 2022-10-20 11:59:44
        #include<cstdio>
        #include<cmath>
        using namespace std; 
        int main(){	
        float n_student=0,n_pencil=0,money,smoney=0,money_temp=0;int i=1;
        	scanf("%f",&n_student);
        	scanf("%f%f",&n_pencil,&money);
        	smoney=ceil(n_student/n_pencil)*money;
        	while(i<3){
        		scanf("%f%f",&n_pencil,&money);
        		money_temp=ceil(n_student/n_pencil)*money;
        		if(money_temp<smoney) 
        smoney=money_temp;
        		i++;
        	}
        	printf("%.0f",smoney);
        	return 0;
        }
        
        • -2
          @ 2022-1-7 10:28:18

          使用ceil进行一个不为整数时产生进位

          from math import ceil
          n=int(input())
          a1,p1=map(int,input().split())
          money=ceil(n/a1)*p1
          a2,p2=map(int,input().split())
          money=min(money,ceil(n/a2)*p2)
          a3,p3=map(int,input().split())
          print(min(money,ceil(n/a3)*p3))
          
          
          
          • 1

          信息

          ID
          874
          时间
          1000ms
          内存
          125MiB
          难度
          1
          标签
          递交数
          279
          已通过
          162
          上传者