自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 收藏
  • 关注

原创 【无标题】

dds

2022-06-16 18:57:40 179 1

原创 【无标题】

2022-03-31 00:46:28 134

原创 【无标题】

2022-03-29 22:50:15 152

原创 【无标题】

2022-03-23 10:10:53 115

原创 无标题搜索

2022-03-21 12:50:16 257

原创 【无标题】

上传图片

2022-03-21 10:57:45 261

原创 CS231n-assignment1详解

博客中的一部分公式和图片无法展示,建议移步至GitHub中。assignment1中有一个assignment.pdf,这个就是本文导出的pdf版本。Github传送门1. 配置问题考虑到很多朋友使用Windows系统(包括我这个VegetableBird…),这就直接导致数据集无法通过官网所给的教程下载,因此这里首先要解决作业的配置问题。想要运行官网上的那段命令,第一步需要下载数据集。点击这里进行下载。下载后不需要解压,将这个压缩包放在Assignment1/CS231n/datasets目录下。

2021-04-26 21:03:47 5050

原创 Python练习014

题目:爬取诗词名句网的全本三国演义。import requestsfrom bs4 import BeautifulSoupimport osif not os.path.exists("三国演义"): os.mkdir("三国演义")url = "https://www.shicimingju.com/book/sanguoyanyi.html"headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) App

2021-01-24 14:11:31 200

原创 Python练习013

题目:使用正则表达式、BeautifulSoup、Xpath三种方法爬取糗图百科的热门图片。正则表达式:import requestsimport reimport osif not os.path.exists("qiutu"): os.mkdir("qiutu")url = "https://www.qiushibaike.com/imgrank/"headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64)

2021-01-23 12:22:44 167

原创 Python练习012

题目:爬取药监总局化妆品公司信息import requestsurl = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList'headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 \ (KHTML, like Gecko) Chrome/87.0.4280

2020-12-19 16:47:00 144 1

原创 Python练习011

题目:爬取肯德基指定地点的餐厅具体信息代码:import requestsimport argparseheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64)\ AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280\ .88 Safari/537.36 Edg/87.0.664.60'}url = 'http://ww

2020-12-18 22:28:51 202 1

原创 Python练习010

题目:利用ajax请求,爬取豆瓣电影喜剧排行榜的前100名电影代码:import requestsimport argparseheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64)\ AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280\ .88 Safari/537.36 Edg/87.0.664.60'}url

2020-12-18 22:22:06 195 1

原创 Python练习009

题目:利用ajax请求破解百度翻译代码:import requestsimport argparseheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64)\ AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280\ .88 Safari/537.36 Edg/87.0.664.60'}url = 'https://fan

2020-12-18 22:14:46 129 1

原创 Python练习008

题目:利用pgzero模块,绘制一个不断移动的圆。(注意要先安装pgzero模块)import pgzrunW = 800 H = 600x = W/2y = H/2speed_x = 3speed_y = 4r =30def draw(): screen.fill('white') screen.draw.filled_circle((x, y), r, 'red') def update(): global x, y, speed_x, speed

2020-12-08 22:06:49 131

原创 Python练习007

题目:实现图片转字符串,并通过命令行输入参数图片:代码:from PIL import Imageimport argparseimport string# 创建句柄parser = argparse.ArgumentParser()# 添加参数parser.add_argument('--input','-i')parser.add_argument('--output', '-o', type = str, default = 'result.txt')parser.add_

2020-12-07 22:26:35 118

原创 Python练习006

题目:生成邀请码。注意邀请码由大小写字母以及数字随机组成,每个邀请码的长度任意,最后写入到codes.txt文件中。代码:import string, randomdef generateCode(num, length): # 等同于'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' code = string.digits + string.ascii_letters with open('codes

2020-12-04 21:58:08 136

原创 Python练习005

题目:选择一张照片,在照片某一位置添加一个数字。如:代码:from PIL import Image, ImageDraw, ImageFontdef add_num(img): draw_num = ImageDraw.Draw(img) # 设置字体 font =ImageFont.truetype(r'C:/windows/fonts/arial.ttf',size = 100) width, height = img.size draw_num.t

2020-12-04 21:54:35 96

原创 Python练习004

题目:编写一个程序,用户输入关键字,查找当前文件夹内(如果当前文件夹内包含文件夹,则进入文件夹继续搜索)所有含有该关键字的文本文件(.txt后缀),要求显示该文件所在的位置以及关键字在文件中的具体位置(第几行第几个字符)代码:import osdef pos_print(cnt, result, file): file_path = os.getcwd() + os.sep + file print("{}当前文件下含有{}有:".format(file_path, keywords)

2020-12-01 22:10:31 199

原创 Python练习003

题目:编写一个程序,用户输入开始搜索的路径,查找该路径下(包含子文件夹内)所有的视频格式文件(要求查找mp4,mp3,txt的格式即可),并把创建一个文件(list.txt)存放所有找到的文件的路径。代码:import ostarget = ['.mp4', '.mp3', '.txt']def search(start_dir): os.chdir(start_dir) print(os.listdir(os.curdir)) for each_file in os.lis

2020-12-01 19:22:42 168

原创 Python练习002

题目:编写一个程序,用户输入文件名以及开始搜索的路径,搜索该文件是否存在。如遇到文件夹,则进入文件夹继续搜索。代码:path = []all_files = []def search(start_path, target_file): os.chdir(start_path) for each_file in os.listdir(os.curdir): if each_file == target_file: path.append(os.g

2020-12-01 19:05:46 330

原创 Python练习001

题目:编写一个程序,统计当前目录下每个文件类型的文件数。代码:import osall_files = os.listdir(os.curdir)_dict={}for each_file in all_files: if os.path.isdir(each_file): _dict.setdefault('文件夹', 0) _dict['文件夹'] += 1 else: suffix = os.path.splitext(

2020-12-01 16:54:24 84

原创 Python练习000

题目:编写一个程序,计算当前文件夹下所有文件的大小。代码:import os# 获取当前目录下的所有文件名all_files = os.listdir(os.curdir)_dict = {}for each_file in all_files: # 如果这是一个文件夹 if os.path.isdir(each_file): size = os.path.getsize(each_file) _dict.setdefault(each_file,

2020-12-01 16:53:01 107

原创 洛谷——P1058 立体图

原题链接一道有些复杂的模拟题。核心思路是:先用字符数组储存一个正方体,然后按照从左到右,从下到上,从后向前的顺序一个一个摆上去。这里有几个问题需要注意:1.每一块正方体的坐标位置计算2.第一个正方体的坐标位置这里规定正方体的坐标是其左上顶点的坐标对于其他正方体,仔细观察,很容易找到规律:从左向右时正方体行数和左边底部正方体的行数一致,列数加四;从下到上时列数与下方的正方体一致,行数减三。每行第一个正方体行数与上一行相比要加二,列数满足规律2 * (M - m - 1) - 2,其中M是总行数

2020-11-16 22:03:00 254

原创 洛谷——P1026 统计单词个数

原题链接这道题的难度实际上并不是很大,只要将其拆分成两个子问题,很容易就找到问题的解法。从题意来看,很容易知道这是一个动态规划,也很容易想到动态规划的状态是用dp[i][j]表示前i个字母分成j份所包含的最大单词数。那么很容易得到状态转移方程:dp[i][j]=max(dp[r][j-1]+word_dp[r+1][i],dp[i][j]),word_dp[i][j]表示从i到j的单词数。翻译一下状态转移方程的意思就是:前i个字母分成j份的最大单词数=max(前i个字母分成j份的最大单词数,前r个单词分

2020-10-11 16:18:02 400

原创 洛谷——P1016 旅行家的预算

原题链接这是一道比较简单的贪心题目。这个题的解法如下:如果把起点定为第0个加油站,终点定为第n+1个加油站。从第0个点开始,驱车至能到达的最远的那个加油站,在第0个点把油加满。这其中会遇到三种情况:1.中间有一个比出发点油价更便宜的加油站。2.中间的油价都比出发点高。3.不能到达下一个加油站。很容易知道,第三种情况下是不能够到达的。如果是第一种情况,只需要在初始点加油至能够到达那个加油站即可,把剩余的油卖出(相当于加油时没有加满),然后加满低价油。如果是第二种情况,则需要在这里所有经过的的加油

2020-09-20 23:33:35 140

原创 洛谷——P1004 方格取数

原题链接一道四维动态规划的模板题。不妨令两个人同时从起点走到终点,很容易知道,dp[i][j][m][k]表示第一个人走到(i,j)位置、第二个人走到(m,k)位置时取数的最大值。易得状态转移方程为dp[i][j][m][k] = max(max(dp[i][j - 1][m][k - 1], dp[i - 1][j][m - 1][k]), max(dp[i - 1][j][m][k - 1], dp[i][j - 1][m - 1][k])) + map[i][j] + map[m][k]。当然要考虑

2020-09-17 23:07:01 177

原创 洛谷——P1195 口袋的天空

原题链接这是一道简单的图论问题。首先,用n-k条边连成无环图,就有k棵树了,而题目的意思正是如此。利用Kruskal算法,就可以写了。#include<iostream>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int un[1010];int n, m, k;struct Cl { int x, y, w;}cl[10010];boo

2020-08-15 10:54:27 151

原创 洛谷——P1109 学生分组

原题链接这是一道比较贪心的题目。-1的情况就不必多说,关键是如果可以分成要求的组如何计算出最少的交换次数。不妨把这个移动分为两种:第一种是小于L需要补,第二种则是大于R需要移走,这两种移动都是必要的。如果两种情况所移动的人数分别为a,b,那么为了满足条件,必然会移动max(a,b)个人。而a,b保证了都是必要移动,所以同时也就是最小移动。#include<iostream>#include<cstring>#include<algorithm>#includ

2020-08-14 10:46:30 413

原创 洛谷——P1087 FBI树

这个题的是本质就是建树和遍历树,不过完全可以将建树和遍历树的过程合并在一起。建树过程,就是将原字符串一分为二,左一半右一半。由于是后序遍历,所以是在两侧树都建完后在输出。这里要注意只有一个字符的特殊情况。#include<iostream>#include<cmath>#include<algorithm>#include<cstring>#include<string>using namespace std;char tree[

2020-08-09 19:41:15 165

原创 洛谷——P1048 采药

原题链接这是一道非常基础的01背包问题,背包容量就是时间,物品价值就是草药价值。我们先来看二维的背包。状态很容易写出来,dp[i][j]就是前i种草药j时间内所能采到的最大价值。动态转移方程也就很容易写出,dp[i][j]=max(dp[i-1][j],dp[i-1][j-v[i]],v[i]储存的是第i种草药的时间。第二种情况需要j>=v[i]。代码如下(时间和体积数组直接用对组储存):#include<iostream>#include<cmath>#includ

2020-08-09 10:23:31 318

原创 洛谷——P1031 均分纸牌

原题链接这个题可以理解为贪心。思路是每一堆多的牌全部移到下一堆,少的牌全部由下一堆提供。这样可能会出现下一堆的牌不够,移动之后为负数的情况。不过这并不影响最优解,因为下一堆可由后面的堆提供。#include<iostream>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int N = 110;int a[N];int s, n, a

2020-08-05 16:52:17 101

原创 洛谷——P1012 拼数

原题链接这个题目的关键在于如何排序,使得其组合后的数最大。这里我简单证明一下为什么代码中这样排序是正确的,当然这种证明是不严格的,不过毕竟算法题他不考证明不是。首先,我们要找到一个数q,这个q对任意的w都使得q放在w左侧时都不小于q放在w右侧。那么是否存在这么一个q呢?答案是肯定的。我们先对只含两个元素的集合{a,b}进行分析。如果ab>=ba(连在一起写表示组合,不是乘积),我们继续考虑第三个元素加入{a,b,c}。如果ac>=ca,显然应该把a排在前面,之后再比较c和b即可。那么这种

2020-08-05 10:07:41 400

原创 洛谷——P1011 车站

原题链接这是一道比较简单的数论题。可以发现,车上总人数有一定的规律。对于a前面的系数,从第四个开始是前两个之和-1,;对于b的钱买那女的系数,是从第四个开始是前两个之和+1。那么根据这个规律我们先求b,然后再求人数即可。这里有一点需要注意:终点站的下车人数是第n-1站时车上的人数,因此套用公式时应该用第n-1站的公式。#include<iostream>#include<cstring>#include<algorithm>#include<cm

2020-08-05 08:38:22 419 1

原创 洛谷——P1002 过河卒

原题链接一道比较基础的动态规划的题目,这里细致的讲解一下如何得到状态转移方程以及如何对空间进行压缩。首先,不难想到,用一个二维数组dp表示状态,那么dp[i][j]就可以表示到达第i行第j列所有的方案总数。因为棋子到达(i,j)位置的方式只有两种,一种是从(i-1,j)向下移动一格,一种是从(i,j-1)向右移动一格。所以,到达(i,j)的方案总数就是(i-1,j)和(i,j-1)的方案数相加。即状态转移方程:dp[i][j]=dp[i-1][j]]+dp[i][j-1]但是要注意,如果马无法到达(

2020-08-04 17:43:47 545 1

原创 (一)算法基础——排序算法

作为算法的入门,排序算法再合适不过了,在这里我主要介绍四种排序算法——插入排序、归并排序、快速排序以及希尔排序。不过在介绍这些算法之前,我们先来做一些准备工作。(一)算法测试函数在实现一个算法后,必然要对这个算法进行调试和分析,这里我写了一些函数用于算法的测试。随机数组生成函数int* generateRandomArray(int n, int rangeL, int rangeR){ assert(rangeL<=rangeR); int* arr=new int[n]; scr

2020-07-14 15:36:49 141

原创 洛谷——P1406 方格填数

非常简单的一道题目。首先,每一行的数之和一定为所有的数之和再除以n。那么根据这个进行dfs并加入剪枝就可以了。#include<iostream>#include<algorithm>using namespace std;int sum, n;int vis[16], a[16];int b[4][4];bool isRight() { int s = 0; for (int i = 0; i < n; i++) { s = 0; for (int

2020-05-19 18:58:59 376

原创 P1331 海战

思路非常的简单,先判断是否合法,再用dfs#include<iostream>#include<cstdio>#include<cstring>using namespace std;int r, c;char map[1010][1010];int fx[4] = { 0,-1,1,0 };int fy[4] = { -1,0,0,1 };int dfs(int x, int y) { map[x][y] = '*'; for (int i = 0

2020-05-15 16:04:48 290

原创 高精乘法

#include<iostream>#include<string>using namespace std;string a, b;int an[2005], bn[2005];int ans[4010];int main(){ cin >> a >> b; int alen = a.size(); int blen = b.size(); for (int i = 0; i < a.size(); i++) { an[alen

2020-05-09 11:36:55 150

原创 洛谷——P1265 公路修建

不知道怎么评价题目,出题人把一个简单的问题搞得不伦不类…其实非常简单,用prim算法求最小生成树即可。#include <iostream>#include <iomanip>#include <cstring>#include <cmath>using namespace std;const int MAXN = 5010;stru...

2020-04-27 21:05:21 99

原创 洛谷——P1258 小车问题

很简单的一道应用题。显然,小车应该半路回去接走路的那个人。列个方程求解即可。#include<iostream>#include<iomanip>using namespace std;long double s, a, b;int main(){ cin >> s >> a >> b; cout << fi...

2020-04-27 20:34:01 244

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除