题目有 n个人排队到 1个水龙头处打水,第 i个人装满水桶所需的时间是 ti,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小?
输入格式第一行包含整数 n。
第二行包含 n个整数,其中第 i个整数表示第 i个人装满水桶所花费的时间 ti。
输出格式输出一个整数,表示最小的等待时间之和。
数据范围1≤n≤1051≤ti≤104
输入样例1273 6 1 4 2 5 7
输出样例156
解题思路首先按时间大小进行排序,按样例来说,排好序后为 1,2 3, 4,5,6,7;需要等待的时间就是16+25+34+43+52+61
代码123456789101112131415161718#include<iostream>#include<bits/stdc++.h>using namespace std;typedef long long LL;const int N =100010;int n;int t[N];int main(){ scanf("%d",&n); for(int i=0;i<n;i++) sca ...
题目描述在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。达达决定把所有的果子合成一堆。每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n−1次合并之后,就只剩下一堆了。达达在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以达达在合并果子时要尽可能地节省体力。假定每个果子重量都为 1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使达达耗费的体力最少,并输出这个最小的体力耗费值。例如有 3种果子,数目依次为 1,2,9。可以先将 1、2堆合并,新堆数目为 3,耗费体力为 3。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为 12,耗费体力为 12所以达达总共耗费体力=3+12=15。可以证明 15为最小的体力耗费值。
输入格式输入包括两行,第一行是一个整数 n,表示果子的种类数。
第二行包含 n个整数,用空格分隔,第 i个整数 ai是第 i种果子的数目。
输出格式输出包括一行,这一行只包含一个整数,也就是最小的体力耗 ...
区间选点题目描述给定 N 个闭区间 [ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。
输出选择的点的最小数量。
位于区间端点上的点也算作区间内。
输入格式第一行包含整数N,表示区间数。
接下来N行,每行包含两个整数 ai,bi表示一个区间的两个端点。
输出格式输出一个整数,表示所需的点的最小数量。
数据范围1≤N≤105−109≤ai≤bi≤109
输入样例12343-1 12 43 5
输出样例12
思路略:按区域的右端点进行排序如果区域内没有点,就把区域的右端点作为点如果有点,那就进行下一个详:1.首先,该代码定义了一个结构体 Range,它包含两个成员:l 和 r,分别代表区间的左端点和右端点。这个结构体还定义了一个比较函数,使得我们可以按照右端点对 Range 对象进行排序。2.在 main 函数中,首先通过 scanf 函数读取一个整数 n,表示区间的数量。3.然后,程序读入 n 对区间,每对区间通过 scanf 函数读入,并存储到 range 数组中。4.接着,程序使用 STL 的 sort 函数对 range 数组进行排序。排序的依据是 ...
[NOIP2002 普及组] 过河卒题目描述棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。
棋盘用坐标表示,A点(0, 0) B点(n, m),同样马的位置坐标是需要给出的。
现在要求你计算出卒从A点能够到达B点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。
输入格式一行四个正整数,分别表示B点坐标和马的坐标。
输出格式一个整数,表示所有的路径条数。
样例 #1样例输入 #116 6 3 3
样例输出 #116
提示对于100%的数据,1<=n, <=20,0<=马的坐标<=20。
【题目来源】
NOIP 2002 普及组第四题
AC代码1234567891011121314151617181920212223242526272829303132333435363738394041#include<iostream>#include<bits ...
地毯填补问题题目描述相传在一个古老的阿拉伯国家里,有一座宫殿。宫殿里有个四四方方的格子迷宫,国王选择驸马的方法非常特殊,也非常简单:公主就站在其中一个方格子上,只要谁能用地毯将除公主站立的地方外的所有地方盖上,美丽漂亮聪慧的公主就是他的人了。公主这一个方格不能用地毯盖住,毯子的形状有所规定,只能有四种选择(如图):
并且每一方格只能用一层地毯,迷宫的大小为2^k*2^k的方形。当然,也不能让公主无限制的在那儿等,对吧?由于你使用的是计算机,所以实现时间为1秒。
输入格式输入文件共2行。
第一行一个整数k,即给定被填补迷宫的大小为2^k 2^k(0<k<10);第二行两个整数x,y,即给出公主所在方格的坐标(x为行坐标,y为列坐标),x和y之间有一个空格隔开。
输出格式将迷宫填补完整的方案:每一补(行)为x\ y\ c(x,y为毯子拐角的行坐标和列坐标,c为使用毯子的形状,具体见上面的图1,毯子形状分别用1,2,3,4表示,x,y,c之间用一个空格隔开)。
样例 #1样例输入 #1123 3 3
样例输出 #1123456 ...
数楼梯题目描述楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶。
编一个程序,计算共有多少种不同的走法。
输入格式一个数字,楼梯数。
输出格式输出走的方式总数。
样例 #1样例输入 #114
样例输出 #115
提示
对于60%的数据,N<50;
对于100%的数据,1<N<5000。
分析直接用简单的递归的话,数据过大栈会溢出用数组的话也是超时所以用高精度加法
高精度算法算法核心:也就是把个十百千位分别相加
123c[i]=a[i]+b[i];c[i+1]=c[i]/10;c[i]=c[i]%10;
题解123456789101112131415161718192021222324252627282930313233343536#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>using namespace std; int n,len=1,f[5005][5005];void hp(int k){ int ...
覆盖墙壁题目描述你有一个长为N宽为2的墙壁,给你两种砖头:一个长2宽1,另一个是 L 型覆盖3个单元的砖头。如下图:
120 00 00
砖头可以旋转,两种砖头可以无限制提供。你的任务是计算用这两种来覆盖N2的墙壁的覆盖方法。例如一个23的墙可以有5种覆盖方法,如下:
12012 002 011 001 011 012 112 022 011 001
注意可以使用两种砖头混合起来覆盖,如2*4的墙可以这样覆盖:
1201120012
给定N,要求计算2N的墙壁的覆盖方法。由于结果很大,所以只要求输出最后4位。例如213 的覆盖方法为13465,只需输出3465即可。如果答案少于4位,就直接输出就可以,不用加前导0,如N=3时输出5。
输入格式一个整数N,表示墙壁的长。
输出格式输出覆盖方法的最后4位,如果不足4位就输出整个答案。
样例 #1样例输入 #1113
样例输出 #113465
提示数据保证1< N< 1000000。
讲解视频https://www.bilibili.com/video/BV1aL4y1A7Kz/123456789101112 ...
外星密码题目描述有了防护伞,并不能完全避免 2012 的灾难。地球防卫小队决定去求助外星种族的帮助。经过很长时间的努力,小队终于收到了外星生命的回信。但是外星人发过来的却是一串密码。只有解开密码,才能知道外星人给的准确回复。解开密码的第一道工序就是解压缩密码,外星人对于连续的若干个相同的子串CBCBCBCB 会压缩为[4CB]的形式(D是一个整数且 1<D<99),比如说字符串CBCBCBCB就压缩为[4CB]或者[2[2CB]],类似于后面这种压缩之后再压缩的称为二重压缩。如果是[2[2[2CB]]]则是三重的。现在我们给你外星人发送的密码,请你对其进行解压缩。
输入格式输入一行,一个字符串,表示外星人发送的密码。
输出格式输出一行,一个字符串,表示解压缩后的结果。
样例 #1样例输入 #11AC[3FUN]
样例输出 #11ACFUNFUNFUN
提示【数据范围】
对于50% 的数据:解压后的字符串长度在1000以内,最多只有三重压缩。
对于100%的数据:解压后的字符串长度在20000以内,最多只有十重压缩。保证只包含数字、大写字母、[ 和 ]。
这是我的不知道哪 ...
这是暴力枚举类型的一道算法题
妖梦拼木棒题目描述有n根木棒,现在从中选4根,想要组成一个正三角形,问有几种选法?
输入格式第一行一个整数n;第二行往下n 行,每行一个整数,代表木棒的长度
解释1.先统计最小的ai和最大的ai,和每个长度木棒各有几根,即bi;2.4根木棒中,必须有两根木棒长度相等且不是最短的;3.从第二小的开始枚举(因为最小的不能通过别的木棒合成),看此木棒是不是有两根,没有就下一个;4.通过i/2和bi来确定用来合成的第一根木棒j,通过i-j确定另一根
12345678910111213141516171819202122232425262728293031323334353637#include<iostream>#include<fstream>#include<cstdio>#include<cmath>#include<queue>#include<string>#include<cstring>#include<string.h>#include< ...
Conda虚拟环境的安装显示现在已有的虚拟目录
1conda env list
创建python版本为3.11的虚拟环境
1conda create -n py382 python=3.11
若遇到y/n的选项,一般是选y
查看虚拟环境是否安装完成
1conda env list
激活这个虚拟环境
1conda activate py382
查看虚拟环境配置
1conda list
至此完成
pip设置国内源打开我的电脑,在地址栏输入%APPDATA%按回车键跳转到目录
在目录下创建pip文件夹,在文件夹中创建一个pip.ini文件。
用Notepad++打开文件,因为用windows文件夹打开有时候会出错(但是我还是…)
在文件中输入以下信息,并保存:
1234[global]timeout=6000index-url=http://mirrors.aliyun.com/pypi/simple/trusted-host=mirrors.aliyun.com
PyTorch的安装打开http://pytorch.org
向下滑,有显卡选CUDA,没显卡选C ...