- 博客(105)
- 收藏
- 关注
原创 斗鱼爬虫以及服务器部署
以下内容仅限于学习使用用到的工具seleniumpythondocker 用来部署在云端服务器上xpath 用来定位元素爬了什么主要爬了直播房间的名字、热度、作者、分类。主要思路就是使用selenium直接爬import timeimport loggingfrom selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsfrom selenium.webdriver.comm
2020-11-08 16:31:29 438
原创 从0开始写key-value数据库(Python语言)
""" obj.get("key") value 驱动层面对其反序列化后返回给调用者 obj.set("key : value") 有错返回异常字符串 obj.delete("key") obj.commnd("size") 返回总的数据长度 obj.commnd("key_all") 返回所有数据key obj.command("close") obj.commnd("dict_all") 返回所有数据的字典形式 {
2020-08-23 14:31:13 469
原创 记录使用debug-toolbar优化一个页面的sql查询次数
很明显查询博客文章这个sql语句被执行了两次,这是不允许的。打开代码去看,原因是这个页面有个功能就是:给被访问的文章增加阅读数。在增加阅读数的时候又去查询了文章在哪里,然后阅读数++。修改后:...
2020-08-22 16:22:12 245
原创 从算法中的记忆化到实际开发中的缓存(python语言)
import timeCACHE = dict()def query(pk): result = CACHE.get(pk) if not result: time.sleep(2) result = CACHE[pk] = pk * 100 return resultstart = time.time()result = query(21)print(time.time() - start)print("-----------
2020-08-21 16:54:35 229
原创 1206:放苹果
http://ybt.ssoier.cn:8088/problem_show.php?pid=1206一种有递归关系式的思路#include<bits/stdc++.h>using namespace std;int fun(int remain, int pre, int c){ /* remain: 剩余果子 pre: 前一个盘子放的果子 c: 盘子数量 返回可以放的方案总数 */ if(c==1 and remain>=c and remain&
2020-07-15 16:21:56 207
原创 socket做一个简单的web服务器处理多线程
重点多线程import socketdef handle_connection(conn, addr): import time print("来新的客人了") time.sleep(10) request = "" body = "hello" response_params = [ "HTTP/1.0 200 OK", ...
2020-04-20 21:57:57 297
原创 python-threading中的join方法
没有joinimport threading, timedef fun(): print("线程开始") print("我是线程%s" % threading.current_thread()) for i in range(10): time.sleep(1) print("线程结束")if __name__ == '__main__...
2020-04-20 21:56:01 3960
原创 python链表
class ListNode: """链表类 """ def __init__(self, val): self.val = val self.next = None# 链表头和尾tail = ListNode(val=0)head = tail# 从尾部开始增加新的结点for i in range(1, 10): n...
2020-03-25 16:18:56 148
原创 pipenv被坑一天的记录贴
从github上clone一个项目。需要用pipenv install --dev安装它的环境。一切并不顺利,有一个包一直安装失败。后来使用--python 3即可,原因应该是pipenv建立的虚拟环境的python版本出了问题。解决办法:$ pipenv --python 3 # 用python3 建立一个新的虚拟环境$ pipenv shell # 启动这个虚拟环境$ pipenv ...
2020-03-02 22:48:53 539
原创 flask建立与连接数据库
修正自己以前的一些误解。其实像sqlite、mysql等软件其实指的是数据库管理软件。我的理解是发出的sql指令被DBMS软件解析后,DBMS再去数据仓库中做事情。比如selete * from mm被DBMS解析后,DBMS再去做事情。1.首先必须保证flask是正常的。然后按照库。$ pipenv install flask-sqlalchemy2.初始化SQLAlchemy类from...
2020-02-15 22:29:33 568
原创 用dockerfile创建django项目的image
dockerfile相当于一个说明文件,告诉别人这个app需要什么环境,python什么版本等。FROM python:3.5 # 使用python的版本。docker会去找到对于的python镜像去运行我们的appRUN apt-get update # 在构建的过程中更新下apt列表WORKDIR /usr/src/appCOPY requirements.txt ./ # ...
2020-01-14 21:28:04 428
原创 实现简易的http服务器(python3)
import socket# create socket objects = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# set an port to listens.bind(("127.0.0.1", 9991))# this is maximum num of listen queues.listen(5)print(...
2019-12-06 22:14:49 172
原创 加工零件
加工零件方法一/* 整体思路: 1.计算出1到其他任意点的奇数最短路径和偶数最短路径 2.如果询问的点为X,长度为L。 L为偶数,1到X的偶数最短路径应该大于等于L; L为奇数,1到X的奇数最短路径应该大于等于L,如果小于肯定输出NO表示不能到达*/#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<...
2019-12-06 14:25:39 695
原创 纪念品题解
题目https://www.luogu.org/problem/P5662思路1.题目中有一句话每天卖出纪念品换回的金币可以立即用于购买纪念品,当日购买的纪念品也可以当日卖出换回金币。当然,一直持有纪念品也是可以的。看上去是一个句废话,其实在提示我们,一个物品可以以金币的形式存在我们的口袋里,也可以以物品的形式存在我们的口袋里。那么我们为了方便编程用金币的形式存储物品是比较方便的。...
2019-12-06 14:20:53 613
原创 选择排序
简易版选择排序#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)using namespace std;int main(){ /* 简化版的选择排序1 找到第一小的数字,并且放在a[1]位置 */ int a[10]; for (int i = 1; i<=9...
2019-11-24 16:39:04 99
原创 填数游戏20分
#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)#define LEN 1000 using namespace std;int n,m; int finlans = 0;int myMap[3][3];vector< pair<int, int> > pVec...
2019-11-14 16:24:38 163
原创 tableau数据分析泰坦尼克号
tableau数据分析泰坦尼克号https://public.tableau.com/profile/sundyli#!/vizhome/1_15705902540980/sheet0
2019-11-13 16:26:51 1121
原创 填数游戏
#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)#define LEN 1000 using namespace std;int n,m; string myMap[2][2];vector< pair<int, int> > pVec; /* 一条(0,0)出...
2019-11-13 13:57:50 254
原创 赛道修建 -10分代码
基于m等于1的情况#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)#define LEN 50001using namespace std;int n,m;int maxAns = 0;vector< pair<int, int> > listMap[LEN];...
2019-11-07 15:36:11 176
原创 概率期望dp
被学生问到这个问题,反复的想了很久不得,又去问了很多老师,最后有一种方程的解法让我不尽感叹数学是多么的神奇。问题问题:有一个整数n=10,每次会随机选择n的一个因子k,将n变成k,请问n变成1的期望步数是多少?思路假设dp[i]dp[i]dp[i]表示的是从i出发到1的期望步数那么dp[10]=dp[10]+14+dp[5]+14+dp[2]+14+dp[1]+14dp[10] = \f...
2019-10-30 14:17:22 238
原创 十进制和二进制转换
初赛中经常遇到选择题,十进制和二进制之间的互相转换,被学生也问倒了几次。特此记录下。正数十进制转二进制除二取余,逆序排列。负数十进制转二进制1.负数转为正数 -5 -> 52.求其二进制 5 -> 1013.求其反码 101 -> 0104.加1 011所以-5的二进制是 011。如果加上符号位就是1011...
2019-10-27 14:00:15 185
原创 《摆渡车》题解和反思
https://www.luogu.org/problem/P5017反思首先得去反思自己到底是什么原因在去年题目刚出来的时候没有做出来。是信念,有很笨的想法,内心自我否定,导致不敢去尝试。是决定。代码一遍写出来大都有各种数据区间没有卡好,这就需要耐心的一点点的调试。题解有一个不争的事实,每一个乘客的等车时间不会超过m。如果一个乘客的等车时间超过了m,那么完全可以在等待的时间发一个车去接它...
2019-10-10 18:41:59 1327 2
原创 《走迷宫》双向BFS版本
#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)#define N 200 using namespace std;struct Node{ int a=0; int b=0; int step=0; int begin; /* 表示从哪个出发的 0:从起点出发; 1:从终点出发的 *...
2019-09-15 17:26:11 206
原创 洛谷-序列合并-思路
https://www.luogu.org/problem/P1631如果首先输入的是:2 6 61 4 8那么算法过程如下图:
2019-08-15 14:49:38 183
原创 stl deque 单调队列
数字个数为8 队列的宽度限制为3。输入:8 31 3 -1 -3 5 3 6 7单调递增队列:#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)using namespace std;struct node{ int value; int index;};deque<...
2019-08-08 14:17:25 334
原创 新的想法求逆序对
在排好序的序列中找打比k1k_{1}k1小于等于的数,然后该数字后面的数字个数就是数字k1k_{1}k1的逆序对个数。关于排序是用优先队列关于如何找到小于等于k1k_{1}k1的数,可以用二分查找粗略计算时间复杂度O(nlognlogn)O(nlog_{n}log_{n})O(nlognlogn)...
2019-07-28 14:26:53 106
原创 没有上司的舞会
https://www.luogu.org/problem/P1352如果根去了舞会,那么子节点就不去舞会,这一句话其实并不会影响到我们的dfs函数中的,回溯条件,约束条件。递归关系如下:dfs(current,go=true)dfs(current, go = true)dfs(current,go=true) : 当前current这个点去能获得的最大价值dfs(current,g...
2019-07-25 16:18:29 113
原创 跳房子
第一步,对固定距离d进行二分。当固定距离为mid的时候,可以得到k分吗?可以。不可以int l=0;// int r=a[n][0]-d; int r=1005; int mid=0; while(l<=r){ mid=(l+r)/2; if(check(mid)){ ans=mid; ...
2019-07-25 14:03:22 174
原创 noip18年提高组-Day2-T1-旅行
https://www.luogu.org/problem/P502260分思路其实很简单,从1开始搜索,每搜索到一个点就记录下,然后当搜索结束后,也就所有的结点搜索过一遍之后,结束。#include<iostream>#include<cstdio>#define LEN 5001using namespace std;int step = 1;int b...
2019-07-25 11:27:47 168
原创 求和问题(二维向量)
#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)#define LEN 100001using namespace std;struct node{ long long number; long long color; long long id; // 编号 }; ...
2019-07-17 15:55:34 1151
原创 《走迷宫》BFS模板题
http://ybt.ssoier.cn:8088/problem_show.php?pid=1252《走迷宫》BFS模板#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)#define N 200 using namespace std;struct Node{ int a=0; ...
2019-07-14 13:47:41 270
原创 BFS模板(非STL版本)
#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)using namespace std;struct Node{ int a=0; int b=0; int step=0;};int myMap[5][4]={ 0,0,3,2, ...
2019-07-07 11:40:30 211
原创 最长上升子序列(LIS)
搜索法对于每一个数字我们都有两个状态,取或者不取。最后看下留下哪些数字可以获得最大长度。时间复杂度 O(n2)O(n^{2})O(n2)递推dp[i] :表示以i为开头能获得的最大长度是多少。dp[i] = dp[i+1 ~ n]中最大的+1,并且那个数比a[i]大时间复杂度O(n2)O(n^{2})O(n2)神奇解法dp[i]表示序列长度为i的时候最后一位是什么然后不停的更新...
2019-06-26 14:32:54 111
原创 【例9.16】分组背包 代码
http://ybt.ssoier.cn:8088/problem_show.php?pid=1272很简单的题目。不过是在01背包上增加约束而已。思路:对于物品i分两种情况,放或者不放,计算那种情况可以获得的背包总价值最大,就是答案了。总结下自己的错误点:放物品前需要判断:1.该组别是否已经放过 2.放入该物品是否会背包溢出!!!#include<bits/stdc++.h>...
2019-06-13 14:41:34 566
原创 一本通【例5.3】自然数的拆分
http://ybt.ssoier.cn:8088/problem_show.php?pid=1318#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)using namespace std;int N = 7;int ans = 0;vector<int> arr;/* ...
2019-06-12 11:14:32 439
原创 C++ STL priority_queue(优先队列)笔记
STL的优先队列如果对于结构体入队比较复杂,特此笔记#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)using namespace std;struct student{ int age; string name; /* 默认大根堆 student类型的age作为比较 ...
2019-06-09 14:54:50 137
原创 noip15年普及组-T4-推销员
P2672 推销员提出一个假设,如果X=1X=1X=1, 走过的结点集合为{i1}\{i_1\}{i1},如果X=2X=2X=2, 走过的结点集合为{i1,i2}\{i_1, i_2\}{i1,i2}就是说:X=2X=2X=2的集合必然包含X=1X=1X=1的集合证明:v[i] : i结点的疲劳值dis[i]: i结点到起点的距离当x=1时 maxNode为最大的结点, 即是...
2019-06-06 14:48:48 506
原创 杭电Train problem I
Train Problem I思路和代码#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)using namespace std;stack<int> st; int n;char temp;vector<string> ans;/* 传入两个参数,判断s1...
2019-06-05 15:01:20 114
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人