酷暑一夏1

不忘初心,方得始终


Vijos1248 最厉害的机器人 题解

题目

机器人们都想知道谁是最厉害的,于是它们进行如下一种比赛。
每个机器人需要在最短的时间内找到自己面前的一个球,走到它面前并绕过它,将球推进身后的球门。
首先Wind给了每个机器人一些钱,让他们去补充自己的装备,Wind给的钱恰好够补充k个装备。
有如下几个装备可供补充:亮度传感器,超声波测距,触动传感器,马达。(每种装备最多有10个)
而机器人找到球的时间=(20-亮度传感器2)x1,球离机器人的距离为(100-超声波测距7)x2,绕过球的距离为(100-触动传感器9)x3,机器人的速度为(10+马达1)x4。
换句话说,总共的时间为,找球的时间+走到球的时间+绕过球的时间+走回原地的时间。
机器人们要如何配置自己的装备才能达到最短的时间呢?

题解

枚举,注意数据类型的转换。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<cstdio>
#include<algorithm>
const int MAXN=100+5;
int n,x1,x2,x3,x4,limit;double ans;
int main()
{
ans=2147483647.0;
scanf("%d %d %d %d %d",&n,&x1,&x2,&x3,&x4);
limit=std::min(n,10);
for(int a=0;a<=limit;a++)
for(int b=0;b<=limit;b++)
for(int c=0;c<=limit;c++)
for(int d=0;d<=limit;d++)
if(a+b+c+d<=n)
{
ans=std::min(ans,(double)(20-a*2)*x1+((double)((100-b*7)*x2)/(double)((10+d)*x4)*2)+((double)((100-c*9)*x3)/(double)((10+d)*x4)));
}
printf("%.3lf",ans);
return 0;
}
最近的文章

Vijos 基础01背包问题 1133 装箱问题,1104 采药,1025 小飞侠的游园方案 题解

题目略 题解直接套模版。装箱问题需要输出$V-dp[n][V]$,其它输出$dp[n][V]$。 代码1234567891011121314151617181920//1025#include&lt;cstdio&gt;#include&lt;algorithm&gt;const int MAXN= …

于  01背包, Vijos, 问题集合 继续阅读
更早的文章

Vijos1324 黑皮的蛋糕 题解

题目众所周知,黑皮出生与1000年01月01日,那天乌云密布,电闪雷鸣,在黑光划破夜空的一瞬间,黑皮准确无误的生成了男孩。不妨给大家说声:由于他天生体黑,故取名为黑皮。^-^为了庆祝黑皮的1006岁生日,也就是2006年01月01日。校长为他在学校里举行一个名为{天造奇才}的大型庆祝活动。邀请全校的 …

于  Vijos, 黑皮的舞蹈 继续阅读