代码编织梦想

1 最佳速通时间

小C准备参加某个游戏的速通比赛,为此他对该游戏速通了 n次,每次速通记录可以用一个数组 A={a1,a2……am}表示,其中a表示小C 从游戏开始到第i个游戏节点所花赛的时间,m 为游戏节点的个数。请根据小 C 的速通记录计算出他的理论最佳速通时间,理论最佳速通时问指:小C在每两个相邻的游戏节点之间所花费的时间均达到了历史最佳记录,在此情况下所花费的总时间。
输入描述
第一行两个正整数 n,m,表示有 n个速通记录,每个速通记录有 m 个游戏节点接下来n行,每行 m 个正整数,第i行的第j个数 aij表示在第i次速通记录中,从游戏开始到第j个游戏节点所花费的时间。
对于第i行数据 ai1,ai2,…, aim,满足0 < ai1 < ai2<… < aim
数据保证:1≤n≤300,1≤m≤300,1≤aij≤100 000 00
输出描述
一行一个整数,表示理论的最佳速通时间。
样例输入
3 5
1 4 7 9 13
2 3 8 11 14
1 3 7 12 13
样例输出
8

思路与代码:
初始化一个长度为 m 的数组 a,用于存储每个游戏节点之间的最小时间差。初始值设为无穷大。初始化变量 s 用于累加理论最佳速通时间。
遍历每次速通记录:对于每次速通记录,遍历每个游戏节点。计算当前游戏节点与前一个游戏节点之间的时间差,并与 a 数组中对应位置的值进行比较,取最小值。如果当前是最后一次速通记录,则将 a 数组中的值累加到 s 中。

void theBestTime() {
	int m = 0, n = 0;
	cin >> m;
	cin >> n;
	vector<vector<long long>> records;
	for (int i = 0; i < m; i++){
		vector<long long> record;
		for (int j = 0; j < n; j++){
			int tem = 0;
			cin >> tem;
			record.push_back(tem);
		}
		records.push_back(record);
	}
	vector<long long> minTimes(n,1e9);
	long long sumNum = 0;
	for (int i = 0; i < m; i++) {
		long long pre = 0;
		for (int j = 0; j < n; j++) {
			minTimes[j] = min(records[i][j]-pre,minTimes[j]);
			pre = records[i][j];
			if (i==m-1) sumNum += minTimes[j];
		}
	}
	cout << sumNum << endl;
}

2 对比之美


在这里插入图片描述
思路与代码:
思维题,显然题目把三种情况都告诉了,只有一个格子,直接输出0,两个格子,直接输出m。
大于两个格子的时候,直接输出2 * m,即 0 m 0 0 0 0 0

void compareBeauty() {
	int T = 0;
	cin >> T;
	vector<vector<long long>> gridColleVec(T,vector<long long>(2));
	for (int i = 0; i < T; i++){
		cin >> gridColleVec[i][0];
		cin >> gridColleVec[i][1];
		int beauty = 0;
		if (gridColleVec[i][0] == 1) {
			beauty = 0;
		}
		else if (gridColleVec[i][0] == 2){
			beauty = gridColleVec[i][1];
		}
		else if (gridColleVec[i][0] > 2) {
			beauty = gridColleVec[i][1]*2;
		}
		
		cout << beauty<<" ";
	}
	cout << endl;
}


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44720592/article/details/142615730

atcoder abc372 启发式合并, dp-爱代码爱编程

A delete 代码: #include <bits.stdc++.h> using namespace std; int main() { string s; cin >> s; for(auto t: s) if(t != '.') cout << t; } B 3 ^ A 思路

全栈项目小组【算法赛】题目及解题-爱代码爱编程

题目:全栈项目小组【算法赛】 题目: 解题思路 1.遍历简历信息:我们需要读取所有简历,根据期望薪资和岗位类型进行分类和统计。 2.分类统计:使用哈希表来存储每个薪资下的前端(F)和后端(B)的数量。具体来

力扣 困难 154.寻找旋转排序数组中的最小值 ii-爱代码爱编程

文章目录 题目介绍题解 题目介绍 题解 题源: 153.寻找旋转排序数组中的最小值 在此基础上,进行二分之前,单独处理一下左指针和最后一个数相同的情况就好了。 class Solution

【算法笔记】二分查找 红蓝染色法-爱代码爱编程

目录 二分查找 红蓝染色法(感谢灵神)闭区间[left, right]左闭右开区间[left, right)开区间(left, right)变式 二分查找 红蓝染色法(感谢灵神) 这里是灵神的

python 实现harmonic series调和级数算法-爱代码爱编程

harmonic series调和级数算法介绍 调和级数(Harmonic Series)是一个在数学中非常重要的级数,其形式为无穷级数:

560. 和为 k 的子数组-爱代码爱编程

目录 一:题目: 二:代码: 三:结果: 一:题目: 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums = [1,1,1], k = 2 输出:2 示例 2: 输入:nums = [1,2,3], k = 3

python实现phong着色模型算法-爱代码爱编程

目录 使用Python实现Phong着色模型算法引言Phong着色模型的基本原理1. 模型组成2. 公式 Phong着色模型的Python实现1. 向量类的实现2. 光源类的实现3. 材质类的实现4.

数位dp(算法篇)-爱代码爱编程

算法篇之数位dp 数位dp 概念: 数位dp是一种计数用的dp,一般是要统计一个区级[l,r]内满足一些条件的数的个数所谓数位dp,就是对数位进行dp,也就是个位、十位等相对于普通的暴力枚举,数位dp快就快在它的记忆化

文档矫正算法:doctr++_doctrplus-爱代码爱编程

文档弯曲矫正(Document Image Rectification)的主要作用是在图像处理领域中,对由于拍摄、扫描或打印过程中产生的弯曲、扭曲文档进行校正,使其恢复为平整、易读的形态。 一. 论文和代码 论文地址:h

二叉树最小深度-爱代码爱编程

Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node. Note: A leaf is a

使用python实现图形学的纹理映射算法-爱代码爱编程

目录 使用Python实现图形学的纹理映射算法引言1. 纹理映射算法概述2. Python实现纹理映射算法2.1 向量类2.2 纹理类2.3 材质类2.4 物体类2.5 纹理映射器类2.6 使用示例 3

904. 水果成篮-爱代码爱编程

文章目录 1.题目2.思路3.代码 1.题目 904. 水果成篮 你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第

hello algorithm:capture 1,2 初识算法-爱代码爱编程

        大家好 :)  自学完sklearn的基本使用后,颇感无趣。虽有阅文几篇,却无所获。遂于24年9月26日决习hello algorithm。 :)         好了,不开玩笑了。其实开设这篇专栏我也不知道有没有什么意义。其实是因为最近在读TaskWeaver,但是源码又看不懂(当然看完了我会第一时间给大家总结的),感到头疼,所以决定摸

代码随想录算法训练营|226.翻转二叉树 、 101. 对称二叉树、 104.二叉树的最大深度、 111.二叉树的最小深度-爱代码爱编程

226.翻转二叉树 题目  参考文章 思路:这里的翻转二叉树其实就是考对前中后序遍历的理解,这道题用前序和后序是比较方便的,这里我用了前序遍历的方式解题。首先交换当前节点的左右子节点,然后递归当前节点的左右子节点(相当于到了子节点还是做同样的操作),知道所有节点遍历完了,就完成了翻转,返回root即可 代码: class Solution {