【贪心】逃跑(jzoj 1748)

逃跑

jzoj 1748

题目大意

你有一个能量值l,在接下来的n天里,你每天有两个选择:
1、增加l个食物
2、使l加一,
你第i天要吃ai个a_i个ai食物,如果吃不到就会死掉,现在问你n天后你能活下去吗,如果能那最多剩多少个食物?(有t组数据)

输入样例

1
5 2
1 1 1 4 2

输出样例

2

样例解释

一个可行的最优方案如下:
第一天制造2个单位的食物,第二天把l升级到3,后面三天各制造3个单位的食物。
最后得到2+3+3+3-1-1-1-4-2=2单位的食物。

数据范围

对于30%的数据,1⩽n⩽20,1\leqslant n\leqslant 20,1n20且测试点中只有一组数据;
另外40%的数据,1⩽n⩽1000。1\leqslant n\leqslant 1000。1n1000
对于100%的数据,1⩽n⩽100000,0⩽L,Ai⩽109。1\leqslant n\leqslant 100000,0\leqslant L,Ai\leqslant 10^9。1n1000000LAi109

解题思路

我们可以如果当前是第i天,增加l的奉献是n−in-ini,即接下来n−in-ini天能量多1
当l大于n−ln-lnl时我们就不考虑加l了
那如果当前天不够食物,我们就要撤回之前的加l改为加食物,因为加l的奉献到当前状态还不一定会大于加食物的奉献(详情见代码)

代码

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
ll t, n, l, x, add, sum, a[100500];//a存某一次加l的时间
int main()
{scanf("%lld", &t);while(t--){sum = 0;//sum就是还剩多少食物add = 0;//add就是加了多少次lscanf("%lld %lld", &n, &l);for (int i = 1; i <= n && sum != -1; ++i){scanf("%lld", &x);if (sum < x)//食物不够{sum += add + l;//当前天造食物while(sum < x && add > 0 && (add + l - 1) > i - a[add])//不够且还能再撤回,以及撤回这个加的是否大于对后面造成的负影响,-1是因为add少了1{sum = sum + add + l - 1 - (i - a[add]);//奉献以及负影响add--;}if (sum < x) sum = -1;//还不够else sum -= x;//够了}else{if (n - i > add + l) a[++add] = i;//有奉献else sum += add + l;//无奉献sum -= x;//减所需食物}}printf("%lld\n", sum);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c#中关于协变性和逆变性(又叫抗变)帮助理解

今天回忆了之前看的《深入理解C#》这本书中的泛型章节&#xff0c;其中对泛型的可变性的理解。泛型可变性分两种&#xff1a;协变和逆变。逆变也又称为抗变。怎么理解这两个名词的意思&#xff1a;①&#xff1a;协变即为在泛型接口类型中使用out标识的类型参数。协变的字面意思…

「木」迷雾森林

链接&#xff1a; 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format:%lld 题目描述 赛时提示&#xff1a;保证出发点和终点都是空地 帕秋莉掌握了一种木属性魔法 这种魔法可以生成一片森林&am…

【单调队列】【DP】城市交通(jzoj 1749)

城市交通 jzoj 1749 题目大意 有n个点&#xff0c;x到y的前提是x<y,代价是(y−x)∗axby(y-x)*a_xb_y(y−x)∗ax​by​&#xff0c;问从1到n的最小代价是多少 输入样例 4 2 9 5 4 9 1 2 2输出样例 8数据范围 对于20%的数据&#xff0c;1⩽n⩽100&#xff1b;1\leqslan…

P5546-[POI2000]公共串【SAM】

正题 题面链接:https://www.luogu.com.cn/problem/P5546 题目大意 求nnn个串的最长公共子串。 解题思路 注意到最长公共子串一定是其中所有的子串&#xff0c;所以我们可以先随意对一个串构建SAMSAMSAM然后将信息存在上面即可。 然后每一个其他串都丢到那个SAMSAMSAM上跑匹…

C# 7.0中的解构功能---Deconstruct

解构元组C#7.0新增了诸多功能&#xff0c;其中有一项是新元组(ValueTuple)&#xff0c;它允许我们可以返回多个值&#xff0c;并且配合解构能更加方便的进行工作&#xff0c;如下面例子可以看到解构元组可以写出优雅的代码&#xff0c;并且可以使用类型推断&#xff0c;但在这里…

csp初赛复习(往年真题+解析)

排序算法 前缀/后缀表达式 二进制补码、反码 最短路 图片/音频/视频文件格式 前序/中序/后序遍历 以比较作为基本运算&#xff0c;在 N 个数中找最小数的最少运算次数为&#xff08; &#xff09;。 A. NNN B. N−1N-1N−1 C. N2N^2N2 D. logNlogNlogN 正确答案&#xff1a; B …

纪中B组模拟赛总结(2020.2.7)

成绩 rankrankranknamenamenamescorescorescoreT1T1T1T2T2T2T3T3T3141414lyflyflyf190190190100100100909090000 总结 T1看了一会看出是二进制&#xff0c;就敲了出来 T2想不到正解&#xff0c;就敲了一个暴力&#xff0c;竟水到了90分&#xff0c;正解是要有撤回的贪心 T3以为…

CF932F-Escape Through Leaf【树上启发式合并,CDQ分治,斜率优化dp】

正题 题面链接:https://www.luogu.com.cn/problem/CF932F 题目大意 nnn个点的一棵树&#xff0c;从xxx跳到yyy&#xff08;要求yyy在xxx的子树中&#xff09;会产生Ax∗ByA_x*B_yAx​∗By​的代价&#xff0c;求每个节点出发跳到某个叶节点的最小代价。 解题思路 考虑dpdpdp的…

ASP.NET Core 2.1中基于角色的授权

授权是来描述用户能够做什么的过程。例如&#xff0c;只允许管理员用户可以在电脑上进行软件的安装以及卸载。而非管理员用户只能使用软件而不能进行软件的安装以及卸载。它是独立的而又与验证配合使用&#xff0c;需要身份验证机制。对于应用程序来说&#xff0c;首先需要进行…

CF449B Jzzhu and Cities(Dijkstra)

设每个点到1的距离为dis[x]dis[x]dis[x],特殊边为(1,vi,wi)(1,v_i,w_i)(1,vi​,wi​) 1、wi>dis[vi]w_i>dis[v_i]wi​>dis[vi​]的特殊边可以删除 2、widis[vi]且num[vi]>1w_idis[v_i]且num[v_i]>1wi​dis[vi​]且num[vi​]>1,特殊边可以删掉 思路上的偏差&…

Sunscreen

来源&#xff1a;牛客网 Sunscreen 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述 To avoid unsightly burns while tanning, each of the C (1 ≤ C ≤ 2500) cows must co…

【dfs】无穷迷宫(jzoj 3924)

无穷迷宫 jzoj 3924 题目大意 有一个n*m的迷宫&#xff0c;有墙&#xff08;#&#xff09;&#xff0c;路&#xff08;.&#xff09;&#xff0c;和你的位置&#xff08;S&#xff09;&#xff0c;这个迷宫会复制无数份拼在一起&#xff0c;问你能不能不停地走下去 输入样例…

[2020.11.27NOIP模拟赛]拼图王【dp】

正题 题面链接:https://www.luogu.com.cn/problem/U142584 题目大意 nnn个010101串&#xff0c;按顺序分成两个序列&#xff0c;然后拼接成一个序列&#xff08;拼接串x,yx,yx,y的话就是变成一个前缀包含xxx&#xff0c;后缀包含yyy的最短的串&#xff09;。求最短长度。 解题…

分布式事务一致性解决方案

一、从数据一致性谈起↑一致性问题&#xff0c;“万恶之源”是数据冗余和分布并通过网络交互网络异常是常态。1、数据一致性的情形主库、从库和缓存数据一致性&#xff0c;相同数据冗余&#xff0c;关系数据库&#xff0c;为保证关据库的高可用和高性能&#xff0c;一般会采用主…

hihocoder1147 时空阵(bfs树+DP)

bfs树中&#xff0c;边只存在于同一层或相邻层的点之间 设f[i][j][k]f[i][j][k]f[i][j][k]为前iii层一共使用jjj个节点&#xff0c;其中第iii层有kkk个节点的合法方案&#xff0c;转移枚举每一层的连边方式&#xff0c;做到第LLL层即可。对于LLL 层之后的边可以随便乱连。&…

牛客网【每日一题】4月21日题目精讲 糖糖别胡说,我真的不是签到题目

试题 糖糖别胡说&#xff0c;我真的不是签到题目 时间限制&#xff1a;C/C 2秒&#xff0c;其他语言4秒 空间限制&#xff1a;C/C 131072K&#xff0c; 其他语言262144K 64bit IO Format:%lld 题目描述 从前&#xff0c;有n只萌萌的糖糖&#xff0c;他们分成了两组一起玩游戏。…

近似乘积(jzoj 3925)

近似乘积 jzoj 3925 题目大意 给你一个集合A和n让你求不在集合A内的x、y、z&#xff0c;使∣n−xyz∣|n-xyz|∣n−xyz∣最小 输入样例 3 2 2 4 4 1 1 7 2 1 15 90输出样例 1 1 3 2 2 2 2 5 9数据范围 40% 的数据&#xff1a;1⩽m⩽10&#xff0c;1⩽n⩽100.1 \leqslant …

[2020.11.27NOIP模拟赛]中位数之中位数【二分,树状数组】

正题 题目链接:https://www.luogu.com.cn/problem/U142585?contestId37855 题目大意 nnn个数&#xff0c;求所有区间中位数的中位数。 解题思路 二分一个答案&#xff0c;然后如果一个区间的中位数≥mid\geq mid≥mid&#xff0c;那么这个区间一定是≥mid\geq mid≥mid的数比…

.net core 生成二维码

其实生成二维码的组件有很多种&#xff0c;如&#xff1a;QrcodeNet&#xff0c;ZKWeb.Fork.QRCoder&#xff0c;QRCoder等我选QRCoder&#xff0c;是因为小而易用、支持大并发生成请求、不依赖任何库和网络服务。既然是.net core 那当然要用依赖注入&#xff0c;通过构造函数注…

小雨坐地铁

链接&#xff1a; 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 524288K&#xff0c;其他语言1048576K 64bit IO Format:%lld 题目描述 小雨所在的城市一共有 m 条地铁线&#xff0c;分别标号为 1 号线&#xff0c;2 号线&#xff0c;……&…