首页 > 其他分享 >题解:AT_jag2016secretspring_b 豪邸と宅配便

题解:AT_jag2016secretspring_b 豪邸と宅配便

时间:2024-08-20 18:08:44浏览次数:6  
标签:宅配 豪邸 int 题解 快递 太郎 时间

思路

设 \(T\) 为总时间。由于第一次太郎一定会花 \(m\) 时间到达门口,所以 \(t\) 要先减去 \(m\)。
之后太郎就有两种选择

  1. 在门口等待下一个快递,时间花费为 \(a_i-a_{i-1}\)。
  2. 回书房,学习一会,再拿快递,时间花费为 \(2\times m\)。

则最优时间花费为 \(\min(2\times m,a_i-a_{i-1})\)。如果两次快递相隔的时间比来回一次长时,则回书房学习更优。否则无法在快递到来时到达门口。
在取完最后一个快递以后,如果太郎还有时间可以再学习一会,则输出 \(t-m\),否则输出 \(t-(T-a_n)\) 即可。

AC code

#include<bits/stdc++.h>
using namespace std;
int n,m,t,a[120],T;
int main(){
	cin>>n>>m>>t;
	T=t;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	t-=m;
	for(int i=2;i<=n;i++){
		t-=min(a[i]-a[i-1],m*2);
	}
	if(T-a[n]>m) cout<<t-m<<endl;
	else cout<<t-(T-a[n])<<endl;
	return 0;
}

标签:宅配,豪邸,int,题解,快递,太郎,时间
From: https://www.cnblogs.com/bubble-sort/p/18369980

相关文章

  • 题解:CF362A Two Semiknights Meet
    题意有两个走法为中国象棋象的棋子,棋盘上有一些坏格子,问它们是否可以在好格子相遇。思路则判断两个棋子是否相遇有两个条件是否可以在一个格子相遇。那个格子是否是好格子。先考虑条件\(1\)设第一个棋子的坐标为\(a_x\)和\(a_y\),第二个棋子的坐标为\(b_x\)和\(b_y......
  • NOI2003 逃学的小孩 题解
    NOI2003逃学的小孩题解传送门。题目简述给定一棵树\(T\),需要选择三个点\(A,B,C\),需要从\(C\)走到\(A,B\)​​的最远距离。(第一段题目是在讲剧情吗。。)前置知识图树树的直径思路简述这题在蓝题(提高+/省选-)中还是比较水的^_^来看看样例吧用瞪眼法(——数学......
  • 题解:CF991D Bishwock
    思路考虑贪心。从左往右扫,找到一个就标记一个即可。但是要注意,当遇见这种情况时000000最优的方法是左右各放一个积木,共放入两块。但如果按照刚刚的方法,则有可能会是这样0X0XX0所以在一些地方有多种放法时,应该优先放置开口朝右的积木。ACCode#include<bits/stdc++.h>......
  • 题解:AT_abc365_c [ABC365C] Transportation Expenses
    题意已知\[\sum_{i=1}^{n}\min(x,a_i)\lem\]问\(x\)最大为多少。思路由于答案具有单调性,所以考虑二分答案。但是有一点要注意,当\(\sum_{i=1}^{n}a_i\lem\)时,应该输出infinite。因为此时的\(x\)可以为任意一个数。ACcode#include<bits/stdc++.h>#defineintun......
  • 题解:CF997A Convert to Ones
    题意给定一个长度为\(n\)的01字符串,有以下两种操作:将一个子串翻转,花费\(X\)将一个子串进行取反,花费\(Y\)求把原字符串变为全是\(1\)的字符串的最小代价。思路只有\(2\)操作的情况下贪心策略。考虑到任意范围取反的花费相同,我们可以将相同的部分合并,如下图合并......
  • 题解:P10696 [SNCPC2024] 写都写了,交一发吧
    前置知识位运算按位与的运算规则:二进制下,相同位的两个数字都为\(1\),则为\(1\);若有一个不为\(1\),则为\(0\)。分析由按位与的运算规则可以得到:\(A\&A=A\),而题目中的两次提交可以是相同的,所以两次都只需要取\(n\)个数中最大的数即可。ACcode#include<bits/stdc++.h>us......
  • 题解:UVA486 English-Number Translator
    这是一道模拟题。前置知识数级思路当读取到了thousand和million时,计数器要乘上对应的值并累加到最终答案里,并且把计数器归零(因为该数级已经计算完了)。当读取到hundred时,只要计数器乘上\(100\)。否则如果是其他数,则直接累加到计数器即可。ACcode#include<bits/st......
  • 题解:P10722 [GESP202406 六级] 二叉树
    思路朴素做法当输入\(a_i\)后,直接将它及它的子树进行变换。而这样时间会超时。预计得分\(40\)pts。正解统计每次变换的节点编号,第\(i\)个节点作为根节点进行子树变换的次数为\(rec_i\)。最后从这棵树的根节点\(1\)开始向下dfs,则每个节点变换的次数为\[rec_i+k_j\]......
  • 题解:UVA12398 NumPuzz I
    题意给你一个操作顺序,每个字母代表一个格子的操作。每次操作都会将一个格子及它相邻的格子的值\(-1\),如果格子的值为\(0\),则会变成\(9\)。已知操作完成后的所有格子值都为\(0\),求最开始每个格子的值为多少。思路模拟过程。倒推出得出答案。如果原操作\(-1\),那么现操作在......
  • 题解:UVA13026 Search the Khoj
    题意&翻译输入\(T\)组数据,每行数据有\(n\)个电话号码,最后再输入一行电话号码\(t\)。输出前面与\(t\)相差不超过一个字符的电话号码。思路把前面的\(n\)个电话号码逐个与\(t\)比较即可。ACcode#include<bits/stdc++.h>usingnamespacestd;intT,n;stringm[10......