首页 > 其他分享 >[题解][洛谷P1412] 经营与开发

[题解][洛谷P1412] 经营与开发

时间:2024-04-19 21:34:41浏览次数:20  
标签:0.01 洛谷 int 题解 P1412 double 后缀 max

题目描述

给定n,k,c,w,然后输入n组数据,数据分为两种:

  • 1 ai:可以选择获得aiw的价值,但w会变成w(1-0.01*k)
  • 2 bi:可以选择损失biw的价值,但w会变成w(1+0.01*c)
    求可获得的最大价值是多少。

题解
看到这个题,我的第一思路是求后缀和,然后让新得到的系数乘后缀和判断是否进行操作。
但问题在于,对于后缀和,我们并不会一定每一个数据进行操作,因此不是正解。
反过来想一想,如果我们从n开始倒着求,还是用类似的思路,可以保证系数所乘的数是目前的最优解,可以解决这个问题。
设初始系数为1,那么状态转移方程就是f[i]=max(f[i+1],f[i+1]x(1+0.01c)-a[i])及 f[i]=max(f[i+1],f[i+1]x(1-0.01k)+a[i])。

代码

#include<bits/stdc++.h>
using  namespace std;
const int N=1e6+7;
double f[N];
struct star{
	int t;
	double x;
}a[N];
int main(){
	int n;
	double k,c,w;
	cin>>n>>k>>c>>w;
	for(int i=1;i<=n;i++)cin>>a[i].t>>a[i].x;
	for(int i=n;i>=1;i--){
		if(a[i].t==1)f[i]=max(f[i+1],a[i].x+f[i+1]*(1-0.01*k));
		else f[i]=max(f[i+1],-a[i].x+f[i+1]*(1+0.01*c));
	}
	printf("%.2lf",f[1]*w);
} 

标签:0.01,洛谷,int,题解,P1412,double,后缀,max
From: https://www.cnblogs.com/zwzww/p/18146803

相关文章

  • 高斯消元学习笔记——P304题解
    如果你觉得这篇太啰嗦问题[SDOI2006]线性方程组题目描述已知\(n\)元线性一次方程组。\[\begin{cases}a_{1,1}x_1+a_{1,2}x_2+\cdots+a_{1,n}x_n=b_1\\a_{2,1}x_1+a_{2,2}x_2+\cdots+a_{2,n}x_n=b_2\\\cdots\\a_{n,1}x_1+a_{n,2}x......
  • 【LGR-182-Div.4】洛谷入门赛 #22
    题源:【LGR-182-Div.4】洛谷入门赛#22目录A疯狂大减价BZngivaeL的中考C游乐场D吃苹果E天上的气球F神秘排列G道法考试H非众数A疯狂大减价分析:两张票的先后顺序枚举一下,求出最小值。#include<bits/stdc++.h>usingnamespacestd;constintN=1e3+10;intn,k,ans......
  • ABC349F题解
    思想看到LCM想到质因数分解。首先,我们先把\(M\)质因数分解了,根号复杂度刚好1e8级别。然后我们发现一个很显然的性质:如果一个数不是\(M\)的因数那他肯定没用。所以此处我们就把不是因数地踢掉。我们惊奇地发现因为\(M\)的质因数分解最多\(13\)个不同的质数,然后我......
  • 题解 LGP5397【[Ynoi2018] 天降之物】/ 第四分块
    题解P5397【[Ynoi2018]天降之物】/第四分块题目描述一个长为\(n\)的序列\(a\)。你需要实现\(m\)个操作,操作有两种:把序列中所有值为\(x\)的数的值变成\(y\)。找出一个位置\(i\)满足\(a_i=x\),找出一个位置\(j\)满足\(a_j=y\),使得\(|i-j|\)最小,并输出\(|i-......
  • vsCode无法连接服务器问题解决及思考
    背景早上刚打开电脑,准备开始一天的工作。但是发现VSCode无法连接上我的虚拟机了,导致无法工作了,这让我十分头疼。最终花了将近一天的时间将问题解决,但是其中的过程走了不少弯路,浪费了不少时间,也进行了反思。我们作为开发人员,应该要用软件思维去理解这款产品,帮助我们去思考问题。......
  • P4168 [Violet] 蒲公英(题解)
    题目题目描述输入格式输出格式数据范围![]样例输入:63123212153615输出:121思路暴力本题求区间内的最小众数,容易想到去用数组sum[i]表示第i种花的个数,在去便利比较,但是复杂度nm一定会T,这时候就要对暴力进行优化。分块优化1如果我们将所......
  • 洛谷题单指南-动态规划1-P1077 [NOIP2012 普及组] 摆花
    原题链接:https://www.luogu.com.cn/problem/P1077题意解读:n种花选m个的选法,每种花数量为ai。解题思路:设dp[i][j]表示前i种花选j个的选法对于第i种花,可以选0,1,2...min(ai,j)个则有递推式:dp[i][j]=∑dp[i-1][j-k],k取0,1,2...min(ai,j)初始化dp[0][0]=1100分代码:#incl......
  • Codeforces Round 932 (Div. 2)题解(c、d)
    CodeforcesRound932(Div.2)C.MessengerinMAC题目大意给定一些\(a_i\)\(和b_i\),选出尽量多的\(a_i和b_i\),使得\(\sum_{i=1}^ka_{p_i}+\sum_{i=1}^{k-1}\left|b_{p_i}-b_{p_{i+1}}\right|\)小于给定的\(l\)。题目解析由于题目没有要求\(\{p\}\)是升序排列的序列,因此......
  • P6018 [Ynoi2010] Fusion tree 题解
    题目链接:Fusiontree大部分人貌似用的边权01Trie,实际这题用点权01Trie类似文艺平衡树去写更方便。考虑两种常见的区间维护:线段树。使用的是父节点信息是归并了左右区间的信息,适用于不需要考虑父节点的贡献的信息。文艺平衡树。每个点就是一个信息,归并左右子树,外加当......
  • 洛谷 p3372 线段树
    更改了线段树实现的方式,将lazy值作为单独的节点存在,降低存储压力structNode{longlongsum;Node():sum(0ll){}Nodeoperator+(constNode&other){Noderes=*this;res.sum+=other.sum;returnres;};voidapplyLazy(......