专栏文章

题解:P13244 [GCJ 2014 Qualification] Cookie Clicker Alpha

P13244题解参与者 3已保存评论 2

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
2 条
当前快照
1 份
快照标识符
@miovljsv
此快照首次捕获于
2025/12/03 01:52
3 个月前
此快照最后确认于
2025/12/03 01:52
3 个月前
查看原文

P3244 题解:

主要思路:

从不买任何农场的情况开始,存储当前情况的时间,然后逐一枚举如果购买一所农场所需要的曲奇的生产时间,如果小于上一个情况,更新当前最优解。

代码实现:

定义一个变量 tztz 存储答案,初始化为任何农场都不买的情况 X÷rX\div r,其中 rr 定义为当前的生产速度,然后用 while 循环枚举如果购买当前农场所需曲奇的生产时间,如果小于 tztz,更新 tztz 的值。枚举完所有情况后,此时的 tztz 存储的就是最优解,输出 tztz 的值即可。
AC Code:
CPP
#include <bits/stdc++.h>
#define int long long
using namespace std;
int T;
int32_t main(){
	cout.tie(nullptr)->ios::sync_with_stdio(false);
	cin.tie(nullptr)->ios::sync_with_stdio(false);
    cin>>T;
    cout<<fixed<<setprecision(7);//保留七位小数。
    for(int cas=1;cas<=T;cas++){
        double c,f,x;
		cin>>c>>f>>x;
        double e=0.0;
        double r=2.0;
        double tz=x/r; 
        while(1){
            double tx=c/r;
            e+=tx;
            r+=f;
            double ty=e+x/r;
            if(ty<tz) tz=ty;//如果有更优解,更新当前值。
            else break;
        }
        cout<<"Case #"<<cas<<": "<<tz<<endl;//注意输出格式。
    }
}
~求过。~

评论

2 条评论,欢迎与作者交流。

正在加载评论...