洗衣服
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 0 Accepted Submission(s): 0
Problem Description
学校的洗衣机有4种模式:1、单脱水;2、快速洗;3、标准洗;4、大物洗。分别对应的价格是1、2、3、4元。
其中——
单脱水最多脱水3件衣服(无清洗功能);
快速洗最多3件(脱水+清洗);
标准洗最多6件(脱水+清洗);
大物洗最多洗10件(脱水+清洗)。
温馨提醒:以上可以看出,洗衣服中包含脱水功能。
现在XZ累积了n件衣服要处理,其中有m(m<=n)件只需要脱水的,另外n-m件必须清洗。问最少需要几元能把所有衣服处理完?
其中——
单脱水最多脱水3件衣服(无清洗功能);
快速洗最多3件(脱水+清洗);
标准洗最多6件(脱水+清洗);
大物洗最多洗10件(脱水+清洗)。
温馨提醒:以上可以看出,洗衣服中包含脱水功能。
现在XZ累积了n件衣服要处理,其中有m(m<=n)件只需要脱水的,另外n-m件必须清洗。问最少需要几元能把所有衣服处理完?
Input
输入数据第一行是一个正整数T(<=30),表示测试数据组数。
接下来T行,每行两个正整数 n m (n,m <=1e6)。
接下来T行,每行两个正整数 n m (n,m <=1e6)。
Output
对于每组数据,输出一行答案。
Sample Input
3 5 2 20 15 100 3
Sample Output
3 8 40【解析】此题刚开始有点懵不过之后看好就懂了感觉和分月饼差不多,就是先要求出那一种方案单价最低,我已经列出,然后再进行判断,就是比如说如果只需要干洗那肯定是分三件三件洗合算,然后如果需要清洗的衣服超过10件那肯定是10件10件洗合算,这个我们能得出总结的不过在此之前还要考虑一个问题,就是如果需要洗衣服的和干洗的加一起是多少件。怎么洗合算。比如你有三件需要干洗,三件需要清洗,你这个直接洗六件和分开洗的效果是一样的一次类推的话,就是分开讨论了,大于10件的先进行处理,小于10件的进行处理。#include<iostream> #include<string> using namespace std; int main() { int n,m,i,j,p,q; double a[4]; int count1=0; int sum=0; a[0]=1/3; a[1]=2/3; a[2]=0.5; a[3]=4/10; cin>>n; while(n--) { sum=0; cin>>p>>q; p=p-q; sum=(p/10)*4; p=p%10; if(p!=0&&p+q>=10) { sum=sum+4; p=p-10; q+=p; } if(p>6) { p=p-10; q+=p; sum=sum+4; } else if(p>3) { p=p-6; q+=p; sum=sum+3; } else if(p<=3&&p>0) { p=p-3; q+=p; sum=sum+2; } while(q>0) { q=q-3; sum=sum+1; } cout<<sum<<endl; } return 0; }