题目描述
n 个人出去玩,给定双人房和三人房的价格,求最少的住宿花费1<=n<=10^9解题思路
脑补一下可以发现:最后答案一定是几乎全选性价比最高的那种房间然后再加上几间其他的所以二人间和三人间里数量用的最少的房间不会超过3枚举一下用了几间就好了一定不要忘记n%2==1时可以把两个人和另一个人合住一间三人间的情况!!!(因为这wa哭了。。。)
代码:
#include#include using namespace std; long long n,p2,p3;double x1,x2; int read(){ int x=0,f=1;char c=getchar(); while (c<'0'||c>'9') { if (c=='-') f=-1;c=getchar();} while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar(); return x*f;} int main(){ n=read();p2=read();p3=read(); x1=(double)p2/2;x2=(double)p3/3; long long sum=0; if(n==1) { if(p3>p2){ cout< < x2) { if(n%3==1) { if(p2 p3) { sum=n/3*p3+p3; } else sum=p2+n/3*p3; } else sum=n/3*p3; } cout< <