草庐IT

AcWing 1018. 最低通行费(线性DP)

题目链接题目描述一个商人穿过一个N×N的正方形的网格,去参加一个非常重要的商务活动。他要从网格的左上角进,右下角出。每穿越中间1个小方格,都要花费1个单位时间。商人必须在(2N−1)个单位时间穿越出去。而在经过中间的每个小方格时,都需要缴纳一定的费用。这个商人期望在规定时间内用最少费用穿越出去。请问至少需要多少费用?注意:不能对角穿越各个小方格(即,只能向上下左右四个方向移动且不能离开网格)。题目模型子题目:摘花生因为要在(2N-1)个单位时间穿越出去,而从(1,1)走到(n,n)正好需要(2N-1)个单位时间,所以不能走回头路。题目代码#include#include#includeusin

AcWing 787.归并排序(Java)

题目来源:https://www.acwing.com/problem/content/description/789/题目描述给定你一个长度为n的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数n。第二行包含n个整数(所有整数均在1∼109范围内),表示整个数列。输出格式输出共一行,包含n个整数,表示排好序的数列。数据范围1≤n≤100000输入样例:531245输出样例:12345思路讲解首先确定中间基准点mid=left+(right-left)/2,在每次进行方法时先进性一次递推进行数组的分割,将数组分为单个值后进

AcWing 787.归并排序(Java)

题目来源:https://www.acwing.com/problem/content/description/789/题目描述给定你一个长度为n的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数n。第二行包含n个整数(所有整数均在1∼109范围内),表示整个数列。输出格式输出共一行,包含n个整数,表示排好序的数列。数据范围1≤n≤100000输入样例:531245输出样例:12345思路讲解首先确定中间基准点mid=left+(right-left)/2,在每次进行方法时先进性一次递推进行数组的分割,将数组分为单个值后进

AcWing788.逆序对的数量(Java)

题目来源:https://www.acwing.com/problem/content/790/题目描述给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第i个和第j个元素,如果满足ia[j],则其为一个逆序对;否则不是。输入格式第一行包含整数n,表示数列的长度。第二行包含n个整数,表示整个数列。输出格式输出一个整数,表示逆序对的个数。数据范围1≤n≤100000数列中的元素的取值范围1∼10^9输入样例:6234561输出样例:5思路讲解首先还是理解下题意吧,通俗点讲,逆序对就是指,一个数组中的两个数,如果前面的数大于后面的那个数,那么这两个数就组成一个逆

AcWing788.逆序对的数量(Java)

题目来源:https://www.acwing.com/problem/content/790/题目描述给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第i个和第j个元素,如果满足ia[j],则其为一个逆序对;否则不是。输入格式第一行包含整数n,表示数列的长度。第二行包含n个整数,表示整个数列。输出格式输出一个整数,表示逆序对的个数。数据范围1≤n≤100000数列中的元素的取值范围1∼10^9输入样例:6234561输出样例:5思路讲解首先还是理解下题意吧,通俗点讲,逆序对就是指,一个数组中的两个数,如果前面的数大于后面的那个数,那么这两个数就组成一个逆