正值期末复习,刷点soj放松下
但想看看能不能在找点关于数据结构的题目来做一下。
在网上看到有不少人上传过那些关于部分SOJ题目的描述,但是说实话有些乱
不过我看到有个网页中包含的一个类似文档的东西,里面讲述的还算比较整洁。但是不巧的是,它被分成了很多页,我要看就需要不断地点下一页,这点让我感觉很难受(懒…)
于是我就研究了下那个网页的源码,开始了写了个爬虫。
为了好看,将写好的东西,做了个切片,放到了excel中。
sicily 1198 贪心,8个串排出最小字典序,8! 枚举
sicily 1029 递推 简单
sicily 1028 梵塔问题 -> 分治,归纳 -> 有意思但要留意其数据规模较大 sicily 1193 递推 较难
sicily 1021 简单题 -> 规模原来很大 -> 难 ->数据结构: 栈
sicily 1176 两人从两头取数
sicily 1150 简单魔板
sicily 1151 魔板B ,要求写解题报告
sicily 1515 魔板C
sicily 1007 数组与下标(二维数组) 简单
sicily 1036 数组与下标(二维数组) 简单
sicily 1027 简单
sicily 1006 栈与回溯 简单 5! 搜索
sicily 1156 深搜 指针 简单 树的遍历
sicily 1034 队列与搜索
sicily 1443 基本队列操作
sicily 1152 简单的马周游问题
sicily 1153 马周游问题, 要求写解题报告
sicily 1093 枚举
sicily 1050 回溯 DFS 求5个数可否运算得到目标数, 否则输出可得到的小于目标数的最大数.
sicily 1134 积木分发, 贪心:从小到大排序
sicily 1140 国王的遗产, 贪心:砍不大于n/2个节点的最大树枝
sicily 1211 分治 求两点间L 步到达的方法数
sicily 1381 a*b 高精度
sicily 1206 数值计算; 解方程
sicily 1438 排序,隔三求和
sicily 1172 染色模拟
sicily 1022 Poor contestant Prob, 两个堆
sicily 1310 Right-Heavy Tree,笛卡尔树相关,复杂度O(N)或O(NlogN)。 sicily 1194 Message Flood, 哈希或排序或平衡二叉树
sicily 1375 Balanced lineup, 哈希
sicily 1426 Phone List,电话号码前缀检索,trie 树相关
sicily 1342 开心的金明, 背包
sicily 1519 Longest Common Subsequence
sicily 1211 商人的宣传
sicily 1176 Two ends
sicily 1077 Cash Machine
sicily 1501 Minimal
sicily 1280 Permutation
sicily 1172 Queens, Knights and Pawns 染色模拟
sicily 1193 Up the Stairs 搬箱子上楼梯.
sicily 1350 Piggy banks,求一个所有点的入度都是1的图上的环的数目 sicily 1031. Campus,直接的最短路径问题
sicily 1090 Highways,求生成树,使得树上的最长边最短
sicily 1424 奖金,拓扑排序
sicily 1423 魔王bug 的2色定理,最小割(用最大流求解)
sicily 1317 Sudoku, 搜索
sicily 1215 脱离地牢, 搜索
sicily 1293 uva 100, pc 110101, 3n+1数链问题, 难度1
sicily 1813 M进制数问题
sicily 1157 The hardest problem. 简单大小比较,难度0
sicily 1830 SZ Fibonacci Sequence, 递归函数, 难度 0
sicily 1668 Score, 分支语句的使用, 难度0
sicily 1147 谁拿了最多奖学金. 结构体、数组、分支,难度1
sicily 1795 Table tennis, 几何题,难度0
sicily 1798 Alice and Bob, 策略,难度1
sicily 1510 Mispelling, 字符串,难度0
sicily 1561 PRIME Number, 难度1
sicily 1007 To and Fro, 二维数组, 难度1
sicily 1036 Crypto Columns, 二维数组, 字符串, 排序, 难度1
sicily 1200 Stick. 简单查找配对,或排序或用set ,难度1
sicily 1934 移动小球. 线性表,难度2
sicily 1509 Rails. 难度2
sicily 1768 双栈排序
sicily 1021 couples. 栈,难度2
sicily 1006 Team Rankings, 栈与回溯, 难度1, 5!搜索
sicily 1443 Printer Queue, 基本队列操作
sicily 1210 二叉树, 二叉树遍历顺序先后中转换,挺经典的。
sicily 1375 Balanced lineup, 哈希
sicily 1194 Message Flood, 单词查找, 排序后二分查找,或哈希或平衡二叉树 sicily 1022 Poor contestant Prob, 两个堆
sicily 1027 MJ, Nowhere to Hide, 难度1, 直接比较字符串后排个序输出 sicily 1133 SPAM, 输出输入字符串里的合法email 地址。
sicily 1323 Switch text, 字符串处理。
sicily 1519 Longest Common Subsequence
sicily 1046 Plane Spotting. 排序. 难度1.
sicily 1134 积木分发. 从小到大排序. 难度1.
sicily 1795 Simple Sort
sicily 1154 Easy sort
sicily 1306 Sorting Algorithm. 难度1
sicily 1351 Multi-key Sorting
sicily 1628 Extended Normal Order Sort
sicily 1438 Shopaholic, 排序,隔三求和, 难度1
sicily 1046 Plane Spotting, 排序. 难度1
sicily 1097 LED Modding, 排序
sicily 1155 Can I Post the letter 判断两点是否可达。(图的遍历)
sicily 1114 Food Cubes. 广度优先遍历给3维空间图染色。(dfs 容易栈溢出)
sicily 1156 Binary tree, 深搜, 指针, 树的先序遍历, 难度1
sicily 1034 forest, 森林的定义,求最大宽度与深度,深度优先遍历; 树, 队列与搜索 sicily 1424 奖金, 拓扑排序
sicily 1350 Piggy banks 给出每个点出度为1的有向图,求环的个数。(简单)
sicily 1308 Dependencies among Jobs, 图的遍历
sicily 1211 商人的宣传, 难度1,有向图矩阵乘法
sicily 1031 Campus 单源最短路,dijkstra
sicily 1090 Highways 最小生成树
sicily 1402 Panic Room 构图求网络最大流
sicily 1326 Apple Tree, 建树,求两结点最近公共祖先。
sicily 1303 Job Assignment 二分图的最大权匹配
sicily 1423 魔王bug 的2色定理,最小割(用最大流求解)
sicily 1192 Guardian of Decency 求最大独立集,比较特殊可以转二分匹配做。
sicily 1211 商人的宣传, 简单题,有向图矩阵乘法,O(n^3*logL);直接迭代也行,O(n*m*L) 。 sicily 1350 Piggy banks 给出每个点出度为1的有向图,求环的个数。(简单)
sicily 1423 魔王bug 的2色定理 构图求网络的最小割。
sicily 1002 Anti-Prime Sequences. 搜索,回溯。难度2.
sicily 1048 Inverso. 广度优先搜索BFS ,二进制表示状态判重。难度3
sicily 1835 N Queens Problem. 搜索,回溯。
sicily 1444 Prime Path. 广度优先搜索
sicily 1215 脱离地牢. 有限制的迷宫求两人相遇的最小步骤。(广度优先搜索)
sicily 1317 Sudoku. 数独求解的个数。
sicily 1180 Pasting Strings 给10个字符串,求一个排列使得某种权和最大,全排列搜索。 sicily 1024 Magic Island. 无向图的最长路,深度优先搜索DFS. 难度2
sicily 1050 Numbers & Letters 回溯 DFS 求5个数可否运算得到目标数, 否则输出可得到的小于目标数的最大数.
sicily 1135 飞越原野 最短时间过地图,广度优先搜索.
sicily 1107 Simple Puzzle 按题意搜索,有可能有前置零,输出排序.
sicily 1150 简单魔板 广度优先搜索,全排列的hash 函数设计
sicily 1151 魔板 广度优先搜索,全排列的hash 函数设计
sicily 1152 简单的马周游问题,迷宫问题的可行性剪枝.
sicily 1153 马周游问题。 同上,扩展状态节点的时候按目标函数值排序。
sicily 1378 八数码问题. 启发式搜索。
sicily 1001 Alphacode. dp基本题. 难度2
sicily 1049 Mondriaan. 2*1跟1*1的砖铺成2*n的走道的方法数.
sicily 1264 Atomic Car Race. dp基本题.
sicily 1342 开心的金明. 背包dp
sicily 1146 采药. 01背包, 剩余类dp
sicily 1419 On the run(牛奶快递). dp
sicily 1019 Apple Tree. 树型dp
sicily 1123 The Longest Walk 有向图求任意起终点的无重复点的最长路,状态压缩dp
sicily 1017 Rate of Return. 求解方程,二分. 难度2
sicily 1211 商人的宣传. 求两点间L 步到达的方法数.
sicily 1137 河床. 求一个最长的连续区间满足其中的最小数和最大数之差不大于k 。 sicily 1411 Pie. 二分
sicily 1198 Substring 8个串排出最小字典序。(用ab < ba做比较函数排序)
sicily 1140 国王的遗产 砍不大于n/2个节点的最大树枝
sicily 1172 Queens, Knights and Pawns 染色模拟
sicily 1193 Up the Stairs. 搬箱子上楼梯.
sicily 1813 M进制数问题. 进制转换,难度1
sicily 1201 01000001. 大整数二进制加法
sicily 1240 Faulty Odometer. 十进制数少了4的计数
sicily 1029 Rabbit. 高精度求和,难度2
sicily 1020 Big Integer. 高精度数求模,难度2
sicily 1381 a*b. 高精度乘法. 难度2
sicily 1280 Permutation
sicily 1134 积木分发, 贪心:从小到大排序
sicily 1139 电路稳定性, 递归处理括号对序列算电路不通概率
sicily 1149 等价表达式, 判断表达式是否等价(递归求解)
sicily 1211 商人的宣传, 分治, 求两点间L 步到达的方法数
sicily 1028 Hanoi Tower Sequence, 梵塔问题 -> 分治,归纳 -> 有意思但要留意其数据规模较大, 可以递归或迭代做.
下面是爬取的效果(有意思的是,我是复制的,但是粘贴在简书上的时候就默认转换到了图片格式。看来简书这里的用的跟一般有点不太一样hhh)
大家也可以用我下面的代码来跑就好了,会自动生成这个excel文件的。注意一下,文件路径自己写一个就好啦~(相信各位读者啦)
import requests
import re
from bs4 import BeautifulSoup
import xlwt
url_base = "http://m.wendangku.net"
urls = []
urls.append(url_base + "/doc/8498b8d449649b6648d74724.html")
Messsage = []
for url in urls:
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
next_ = soup.find_all(attrs={
"class": "next"})
if next_:
next_Url = url_base + next_[0].get('href')
print(next_Url)
urls.append(next_Url)
sicily = soup.find_all('p')
for s in sicily:
if len(s.text) > 11 and s.text[0:6] == 'sicily':
Messsage.append(s.text)
work_book2 = xlwt.Workbook("E:/Code/Python/Project/SojContentget/")
sheet = work_book2.add_sheet('sheet1')
for i, m in enumerate(Messsage):
sheet.write(i, 0, m[0:11])
sheet.write(i, 1, m[12:])
work_book2.save("sicily题目.xls")