首页 > 其他分享 >CSP-J2023公路

CSP-J2023公路

时间:2023-12-06 09:13:13浏览次数:48  
标签:100005 题目 int 公路 long 站点 J2023 CSP 性质

原题:【23CSPJ普及组】公路(road)

题解:题目提供2个特殊性质,通过这两个性质可以考虑问题的解决方案。

特殊性质 A:站点 1的油价最低。由于题目没有限制邮箱的大小,所以就只要在1站点 加 能恰好开完全程的油就可以了。获分(15分)

特殊性质 B:  由于各个站点的距离恰好是整数升油所能走的倍数,所以用不着考虑走到下一个站点还有多余油该如何处理的问题。获分(15分)

其实特殊性质B,已经在提醒你汽车到达某个站点有多余油该如何处理?

贪心思想是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,如果要得到整个问题的最优答案,那么每一步都要尽可能的得到最优的答案

本题的贪心思想是:开到第 i (i >= 2)站,总是使用 i 站前面站点的最低油价的站点加油即可。
如何求1--i站的最低加油价格,可以用前缀最小值解决,这个复杂度是O(N)。

根据题目的数据范围可以得知,总路程和花费超出了int类型,所以题目得用long long类型。

本题复杂度是O(N),符合要求。

STD:

#include <bits/stdc++.h>
#define int long long  //宏定义 把以后出现的int 当long long int 使用。
using namespace std;

int a[100005], q[100005], d[100005];  //q[i]数组表示1--i站点之间最低的汽油价格  a[i]第i个站点汽油的单价  d[i]第i站与 i-1 站之间的距离

signed main()  //主函数返回类型不允许用long long int类型。与define同时配对使用
{
	int n, k;
	cin >> n >> k;
	for (int i = 2; i <= n; i++) //从2开始方便理解
		cin >> d[i];
	for (int i = 1; i <= n; i++)
		cin >> a[i];
	q[1] = a[1]; //前缀数组初始化
	for (int i = 2; i <= n; i++)
		q[i] = min(q[i - 1], a[i]);  //最缀最小值
	int s = 0, ans = 0;  //s表示汽车需要行使的里程数  ans表示卖油的钱
	for (int i = 2; i <= n; i++)
	{
		s += d[i];	//开到第i站还有多少公里
		if (s > 0) ans += ceil(s * 1.0 / k) * q[i - 1];  //花费=路程/(每升油能开的里程数)* 每升油的单价
		s -= ceil(s * 1.0 / k) * k;  //把买的油用完,这是离开i站还有多远。要想明白。
	}	
	cout << ans << endl;
	return 0;
}

 

标签:100005,题目,int,公路,long,站点,J2023,CSP,性质
From: https://www.cnblogs.com/luliusheng/p/17878757.html

相关文章

  • csp2023 第一轮游记
    csp2023第一轮游记Day-20AFO.Day0考试是周六,所以还是正常在学校上课,除了有点担心,还是有点担心(主要是没复习)。考前打了一个代码:#include<bits/stdc++.h>usingnamespacestd;intrp;intmain(){ for(inti=1;;i++) { rp++; printf("%d\n",rp); } re......
  • 【CCFCSP】2303真题笔记
    -1.田地丈量分析测试数据4101000555-2153881515-210315UNAC:情况不完全max,min就是很好用#include<bits/stdc++.h>usingnamespacestd;intmain(){intn,a,b;cin>>n>>a>>b;longlongarea;while(n--){intx1......
  • csp认证202109-4——之状态压缩dp加期望(记忆化搜索
    https://www.acwing.com/problem/content/description/4012/#include<bits/stdc++.h>usingnamespacestd;#definelllonglong//#defineintlonglong#defineullunsignedlonglong#definepiipair<int,int>//#definedoublelongdouble#define......
  • CCFCSP2305
    写在前面CSP(计算机软件能力认证考试),主要覆盖大学计算机专业所学习的程序设计,数据结构,算法以及相关的数学基础知识。包括但不限于:程序设计基础:    逻辑与数学运算,分支循环,过程调用(递归),字符串操作,文件操作,etc.数据结构:    线性表(数组,队列,栈,链表),树(堆,排序二叉树),哈希......
  • 【游记】HE CSP-S&NOIP 游寄
    CSP-S\NOIP游寄我放假了,我马上就走,但是我先写个游寄(CSP-S只有复赛的,原因:再往前忘了(10.xx.23把锅巴惹了,然后他不让我训练了(悲我们实验二是这样的10.20.23落地qhd,终于回家力,特别开心我妈请TH的老师和学长学姐吃了螃蟹,但是全桌只有她自己会剥(?10.21.23没报J组,上午在......
  • CSP第31次认证题解 2023.9
    A、坐标变换(其一)样例输入3210100010-201-100样例输出21-1120-10题解按照题目,一个循环即可#include<bits/stdc++.h>usingnamespacestd;#defineN200010#definelllonglongtemplate<classT>inlinevoidread(T&a){Tx=0,s=1;......
  • CSP-S2023
    ###9.16考初赛,小图灵$66$,猜的所有题都错了,还改错一题,悲。###9.18出分了,实际得分$71$,甚至是全校S组第一,开心。###10.20啊不是为什么$10.21$才走啊,太奇怪了吧。###10.21上午在车上看到了J组的题,秒了A和C,B想了一会,发现要单调栈,感觉非常奇怪。中午在酒店打三国......
  • 选手如何备战CSP-J/S?
    无论是入门级还是提高级,都主要考察选手的基本知识储备。所以需要选手有扎实的知识积累,短期突击复习并不能通过比赛。#1CSP-J/S初赛CSP-J/S初赛题目由单项选择、阅读程序、完善程序三部分组成,主要考察通用和实用的计算机科学知识,所以建议选手花一定时间,打好基础再参赛。否则在信......
  • CSPNet跨阶段局部网络方法
    CSPNet跨阶段局部网络方法目录CSPNet跨阶段局部网络方法背景和问题主要解决问题网络结构特征融合策略CSPnet代码结构参考资料论文地址:https://arxiv.org/pdf/1911.11929.pdf背景和问题随着卷积神经网络结构变得更深更宽,扩展神经网络的体系结构通常会带来更多的计算轻量级网......
  • # CSP-S 2023 游记
    CSP-S2023游记9.16:初赛。9.?:出成绩,60.5。10.19:9:30睡醒,开始zr20连,秒了\(A\),\(B\)写了个\(n^3\)加了个神奇剪枝,跑过了2000,\(C\)送了30分,\(D\)打了个基环树的暴力(大分讨)挂了。总分\(200,rk\32\)。下午打NOIP冲刺计划,秒了\(A\),卡\(B\)了,想了贪心(从de......