- 博客(68)
- 收藏
- 关注
原创 获取天气网地区-代码映射表
基于aiohttp的异步爬虫。万年历api无法建立连接了,不知道为什么(XvX),于是想换一个api给机器人查天气。
2022-09-28 10:28:55
225
1
原创 破事水,一道泯若众题区间dp The Sports Festival
The Sports Festival题目描述给你一个序列(数据可重复),你可以将其任意排序,最小化Σi=1n(前i个数的极差)给你一个序列(数据可重复), 你可以将其任意排序, 最小化 \\ \Sigma_{i = 1} ^ n (前i个数的极差)给你一个序列(数据可重复),你可以将其任意排序,最小化Σi=1n(前i个数的极差)思路0.排一下序1.首先我们不可能先选一个最大的,再选一个最小的, 如果这样选就得到了最大值, 就g了, 除非数据特殊2.那我们肯定是要循序渐进一点点增大极差,
2021-10-21 16:14:30
131
原创 【差值并查集(口胡算法)】 HDU7136 CCPC2021网络选拔赛重赛1011 Jumping Monkey
题面HDU7136 不放了思路把所有的点按照权值从小到大排序, 依次用并查集维护每次更新一个点, 把此点与其相邻的枚举过的点并为一个集合, 这样每次更新可以使这个集合的点的遍历数量都+1用num[]记录一个点可以合法遍历的点的数量, 且num[]仅对代表元生效用gap[]记录一个点于其代表元的差值, 非代表元的答案为 num[] - gap[]记得路径压缩, 不路径压缩——反正我没试过, 会T吧变量&数组 解释建图存图用的 :head[], idx, u, v, edg[]输入
2021-10-12 13:04:34
142
原创 【换根DP】Tree and Permutation
Tree and Permutation题目大意给你一颗n个点的树, 有边权,求这个东西:Σi=1nΣj=1ndis[i to j]∗(n−1)!\Sigma_{i = 1} ^n \Sigma_{j = 1}^n dis[i~to~j] * (n - 1) !Σi=1nΣj=1ndis[i to j]∗(n−1)!换根dp用换根dp算前面一坨, 然后 * (n - 1)!先dfs(类似树形dp)求任意一个点到所有点的距离part[a]。然后可以
2021-10-07 21:03:24
102
原创 Splay
luogu.com.cn P3391 文艺平衡树#include <cstdio>#include <algorithm>const int N = 100005;int n, m, rt, qx, qy;struct SplayNode{ int fa, son[2], size, rev, rt;}snode[N];inline void pushup(int x){ int son0 = snode[x].son[0], son1 = snode[
2021-09-18 14:20:33
73
原创 【树的直径】树形DP求解
思路每次记录每个子树从根到叶的最长的链, 然后把最长前2长的拼起来先更新D再更新dp, 否则会求出一条最长链*2void dfs(int x, int efr){ for(int e = head[x]; e; e = edg[e].nxt){ if((e ^ 1) == efr) continue; int y = edg[e].to; dfs(y, e); D = std::max(D, dp[x] + dp[y] + 1);
2021-09-13 12:13:34
116
原创 【状压DP】斯坦纳树
前言斯坦纳树常用于解决类似这样的最小代价联通问题:https://www.luogu.com.cn/problem/P4294思路tip1:对于一个结点, 通过状态压缩的思想,用一个整数sta表示这个结点与所有目标节点的联通状态, 在sta的二进制位中,若第x位为1,表示该结点与第x个目标结点联通,反之则为不连通用dp[i][sta]表示结点i联通sta状态的最小代价状态转移part1若结点i与状态sta1和sta2都联通,且sta1与sta2无重合结点(即sta1, sta2 是对sta1+
2021-09-05 22:16:25
293
原创 可持久化线段树【主席树】可持久化并查集【主席树+并查集】
笼统的主席树原理众所周知, 主席树是可以持久化的, 换言之你能知道你所维护信息的所有历史状态。 主席树是这样做的:1.首先建一颗空树,代表初始状态 (下图黑色) , 也就是第0次操作后的状态。tipA:你每次只对一个节点的数据进行更新,所以相当于更改了树上的一条链。2.我们不在原来的树上修改,而是创建若干个新的节点组成一条链代表树中修改后的各个节点 (下图红色) ,然后直接把这条链糊到树上, 并且让新链中的每个节点都连好它在书中应该连的节点 (下图蓝色) 。tipB:你会发现只要交换新旧链
2021-09-03 11:58:50
134
原创 Ubuntu下求生之路2Linux服务器搭建(官方战役,三方药抗)
先堆一点东西占个坑,日后补完资源和主要参考都是Sir大佬的https://github.com/SirPlease/L4D2-Competitive-Reworkzonemod v2.1 打开ai特感总结:问题解决了,说一下解决过程吧,可能造福以后遇到类似问题的人。没有大佬解答 于是自己开始玄学(我下的插件有很多版本,promod(好像是这个名字,太菜了没印象),zonemod2.1,zonemod1.9,apexmod啥的,我只修改了zonemod2.1。)..具体思路是暴力查找文件,ct
2021-07-07 21:18:17
4235
1
原创 【数位DP】 洛谷 P2602 [ZJOI2010]数字计数 P2657 [SCOI2009] windy 数
洛谷 P2602 [ZJOI2010]数字计数#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>#include <string>#include <queue>#include <vector>#include &l
2021-04-29 21:49:43
160
1
原创 【Trie树&AC自动机】P3879[TJOI2010]阅读理解 P3808 【模板】AC自动机(简单版)P3796 【模板】AC自动机(加强版)
洛谷 P3879[TJOI2010]阅读理解#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>#include <string>#include <queue>#include <vector>#include <
2021-04-23 18:07:33
127
原创 【树的直径 dfs dp】P4408 [NOI2003] 逃学的小孩
P4408 [NOI2003] 逃学的小孩#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>#include <string>#include <queue>#include <vector>#include <
2021-04-22 20:35:44
88
原创 linux学习
权限chmodchmod a+rwx 文件z 给所有人rwx文件z的权限chmod o-w 文件b 取消其他人w文件b的权限chmod u+w 文件c 给自己w文件c的权限软链接ln -s name newname 创建name的软链接nuwname -s表示soft软链接创建目录mkdir -m o-rwx -v -p aa/bb/cc 创建目录aa/bb/cc-p 需要时创建新目录的上层目录 即使存在也不会报错-m 设置权限 类似chmod-v 创建时显示
2021-04-20 21:54:04
100
原创 【屑】银行家算法 判断死锁 or 求解所有可行序列 代码
def initial(req = False): global order, vis , arr_lft, arr_need, arr_max, arr_alc, cnt MAX = [ [0,0,4,4] ,[2,7,5,0] ,[3,6,10,10] ,[0,9,8,4] ,[0,6,6,10] ] ALC = [ [0,0,3,2] ,[1,0,0,1]
2021-04-18 20:14:38
144
2
原创 【LCA练习 倍增 tarjin】 洛谷P3379【模板】最近公共祖先 P1967货车运输
洛谷P3379【模板】最近公共祖先构造fa数组的正确写法是这样的for(int i=1; i<=20; i++){fa[x][i] = fa[fa[x][i-1]][i-1];}然而第一遍错写成了这样for(int i=1; i<=20; i++){fa[x][i] = fa[father][i-1];}这显然是错误的,不是方法他的父亲的上2^i-1个节点,而是访问它的上2^i-1个节点的上2^i-1个节点引以为戒#include <iostream>#i
2021-04-17 15:53:16
136
1
原创 【二分图匹配 练习】洛谷P3386【模板】二分图最大匹配P2756飞行员配对方案问题P1129矩阵游戏P1559运动员最佳匹配问题P4014分配问题P1640连续攻击游戏
洛谷 P3386【模板】二分图最大匹配#include <iostream>#include <cstdio>#include <algorithm>#include <queue>#include <map>#include <stack>#include <string>#include <cstring>#include <vector>#include <cmath&
2021-04-16 21:51:04
123
原创 【单源最短路 spfa Dijkstra】 洛谷 P3371 【模板】单源最短路径(弱化版) ## lguou
洛谷 P3371 【模板】单源最短路径(弱化版)Dijkstra#include <cstdio>#include <iostream>#include <cstring>#include <cstdlib>#include <algorithm>#include <vector>#include <map>#include <set>#include <queue>#inclu
2021-04-14 18:43:24
148
1
原创 【tarjin算法练习 缩点,割点,割边】洛谷 P3387缩点模板P3388割点模板 HDU4738 caocao‘bridge
洛谷 P3387缩点模板vis数组是必要的,如果遇到vis[i]=false的点,说明此点对应的强连通已经被缩点过了,而访问的i的起点并不属于这一强连通分量。若这时执行low[x] = std::min(low[x],dfn[y]);可能会导致一些点在栈内无法弹出。#include <cstdio>#include <iostream>#include <cstring>#include <cstdlib>#include <algorith
2021-04-13 22:31:40
165
原创 sql学习记录(sql sever)
其实是补之前没交的sql作业1.非常基本的操作新建数据库create database L4C2新建表PID为主键create table L4C2.dbo.Person( PID nchar(15), PName nchar(25), PRole nchar(10), Lucky int, Ammo int primary key(PID))增加列alter table L4C2.dbo.Person add Ping int修改列修改列的数据类型alter t
2021-04-12 12:31:44
291
原创 【状压dp练习】洛谷P1896 [SCOI2005]互不侵犯 P2704 [NOI2001]炮兵阵地
可以把一种只有两种状态的一维的数据组用一个整数表示,其二进制的值可以表示每一个位置的状态。如:1010 表示第1、3个位置有,第2、4个位置没有。洛谷 P1896 [SCOI2005]互不侵犯init函数枚举所有的m位不存在两个相邻的1的整数,将整数的值记录在status数组中,将此数含有1的数量记录在cnt数组中dp[i][s][n] 表示进行道第i行时,在第s个状态,使用了n个国王的情况数。#include <cstdio>#include <iostream>#in
2021-04-07 19:28:47
140
原创 【线段树练习】 洛谷线段树模板1 CF1288E
洛谷 P3372 线段树模板1#include <bits/stdc++.h>const int N = 1e5+4;typedef long long LL;LL val[N<<2],lazy[N<<2];int qu[N];int n,m,x,y,k,op;int getMid(int l,int r){ return (l+r) >> 1;}void build(int l,int r,int rt){ if(l
2021-04-05 10:40:49
157
原创 【树状数组练习】洛谷 树状数组模板1、2 P1908 逆序对
洛谷 P3374 树状数组模板1#include <cstdio>#include <iostream>#include <cstring>#include <cstdlib>#include <algorithm>#include <vector>#include <map>#include <string>//typedef long long int LL;typedef std::pa
2021-04-05 10:36:32
120
原创 【折半搜索】 洛谷 P4799 [CEOI2015 Day2]世界冰球锦标赛
普通搜索在这道题中存在的问题一共最多有40场比赛,每一场比赛有看和不看2种选择,如果求看40场比赛一共有多少选择,最多有2^40种可能性,时间复杂度太高。折半搜索1.把这40场比赛拆开,看成2个20场的比赛分别进行常规搜索。但是这两次常规搜索得到的所有的可能性都要用数组记录下来。(数组中记录的是所有的可能性所花费的金钱,若金钱有相同的,也会重复记录下来,因为我们不是要找到所有的花费数目,而是找到所有的看比赛的可能性花费的金钱)2.把其中一个用于记录的数组排序。3.遍历另一个没排序的数组,假设其为s
2021-04-03 15:18:11
120
原创 【树形dp练习】洛谷 P2014选课 P1352没有上司的舞会P2016战略游戏
洛谷 P2014选课#include <iostream>#include <cstdio>#include <algorithm>#include <cstdlib>#include <cstring>#include <cmath>#include <queue>#include <vector>#include <stack>#include <map>type
2021-03-23 19:20:01
77
原创 【爬虫】 爬取云班课上老师发的视频资源 python
蒟蒻声明这个程序虽然可以差强人意地实现功能但是烂的一批,也不打算做出较大改动了。后面会总结一些不足之处,以警示以后。思路。1.通过抓包发现云班课的视频时m3u8的,即一个m3u8的文件中记录了数个ts类型视频的链接,这些ts视频的时常一般为10秒。想爬取某个视频只需要获取视频对应的m3u8文件,依次把m3u8文件中的ts文件下载并通过os.system()调用命令行把一系列的ts文件合并为mp42.步骤1是单独下载一个视频的思路,若想下载所有视频,只需要找出所有视频的m3u8,重复步骤1。单
2021-03-19 16:42:45
1558
4
原创 【区间DP练习】洛谷 P1880[NOI1995]石子合并 P1063能量项链P2654 原核生物培养
洛谷 P1880[NOI1995]石子合并https://www.luogu.com.cn/problem/P1880环形的石子合并,可以把环形拆开,在末尾接一份自己的复制当线形来做dp数组也需要在右端外接一份自己的复制犯错:因为dp公式会访问到j+1的下标,,刚开始用的if(j>=n)判断越界 ,在j=n-1时会访问到下标为n的位置导致越界,所以一直出错应该改为if(j+1>=n)#include <cstdio>#include <iostream>
2021-03-19 14:22:42
119
2
原创 【背包DP练习】洛谷 P5020货币系统 P1757通天之分组背包 P1064[NOIP2006 提高组]金明的预算方案 P5322 [BJOI2019]排兵布阵
洛谷 P5020货币系统https://www.luogu.com.cn/problem/P5020思路是把货币从小到大排序,然后按顺序依次完全背包dp,每次dp检查i-1种面值的货币能不能凑出第i种货币.最后四个样例数据范围比较大,但应该都不是需要时间特别长的,而是卡一些技巧。80分代码:修改一(不是亿)点点就可以满分#include <cstdio>#include <iostream>#include <cstring>#include <a
2021-03-17 19:48:32
202
原创 【01背包DP练习】洛谷 P1048采药 P1060开心的金明 P1855榨取kkksc03
洛谷 P1048采药https://www.luogu.com.cn/problem/P1048#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <cmath>#include <cstdlib>#include <queue>#include <map>#include <
2021-03-14 21:47:44
84
原创 【线形DP练习】洛谷 P1868饥饿的奶牛 P1091合唱队形 P1541乌龟棋 P1020导弹拦截
洛谷 P1868 饥饿的奶牛思路:dp[N]表示 在前i块草皮中最多能吃到几块sort 把所有区间按照右端的大小排序for 遍历0-区间中出现过的最大长度{dp[i] = dp[i-1] (继承上一个草皮的dp)若存在区间[x,y] 则dp[x] = max ( dp[y] , dp[x-1]+len([x,y]) )}#include <cstdio>#include <iostream>#include <cstring>#inclu
2021-03-14 10:15:00
137
原创 记忆化搜索(貌似,不太清楚是不是,自己摸索题的时候猜了一个) L3-025 那就别担心了 (30 分)
题目https://pintia.cn/problem-sets/994805046380707840/problems/1336215880692482060下图转自“英式没品笑话百科”的新浪微博 —— 所以无论有没有遇到难题,其实都不用担心。博主将这种逻辑推演称为“逻辑自洽”,即从某个命题出发的所有推理路径都会将结论引导到同一个最终命题(开玩笑的,千万别以为这是真正的逻辑自洽的定义……)。现给定一个更为复杂的逻辑推理图,本题就请你检查从一个给定命题到另一个命题的推理是否是“逻辑自洽”的,以及存在
2021-03-06 21:06:02
142
原创 整除分块
题目https://ac.nowcoder.com/acm/contest/11160/C1.莽环节(完全没有干货)一开始啥都不会只能自己瞎做,瞎做思路:这是100/i (i属于[1,100])的打表100 50 33 25 20 16 14 12 11 10 9 8 7 7 6 6 5 5 5 5 4 4 4 4 4 3 3 3 3 33 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1
2021-02-27 23:31:47
100
原创 筛法-素数
埃拉托斯特尼筛法埃拉托斯特尼筛法(The Sieve of Eratosthenes):• 设u[]为筛子,初始时区间中的所有数在筛子u[]中。按递增顺序搜索u[]中的最小数,将其倍数从u[]中筛去,最终筛中留下的数即为素数。• int i, j, k; • for (i=2; i<=n; i++) u[i]=true; //初始时所有数在筛中• for (i=2; i<=n; i++) //顺序搜索筛中的最小数• if (u[i]) {• for (j=2; ji<=n;
2021-02-12 17:35:56
210
原创 python 简单的颜色序列生成器
由来昨天画了这张图,自动分配的颜色比较深,而且总颜色数不多,这张图的颜色是自己一点一点写的,很麻烦,所以想制作一个简单的颜色序列生成器一劳永逸介绍我给这个文件取名为InterestingColorfulColor.py,把它放在python安装目录的Lib文件夹就可以随时用import语句导入,非常方便。例如:import InterestingColorfulColor as ICC目前这个文件的主要内容只有一个类:ColorOrderColorOrder类里给出了15种按照颜色深浅梯度
2021-02-09 20:41:48
3346
原创 python graphviz的使用 改日填坑
抄了半个大致模板 自己研究了研究了研究,现在先会画流程图 改日详细填坑from graphviz import Digraphfrom graphviz import Sourcedot = Digraph( name='try1', comment='', filename=None, directory=None, format="png", engine=None, encoding='utf8', graph_attr={'ra
2021-02-07 20:10:31
120
原创 (强行算法)对2019点美赛D题极端化的算法探讨、设计与遇到的问题(未完,但可能也到此为止)
卢浮宫 某建筑疏散问题不考虑残疾人,不考虑工作人员,不考虑一切麻烦事。只考虑一群正常人走出建筑,怎样最快。0. 铺垫定义假设某建筑有好几层,层与层之间有若干通道连接,将这些通道定义为窄道(如楼梯),出口有若干个,可以存在于任意一层,出口与外界之间也存在窄道(如门)(若人是源源不断的,则通过门和通过楼梯所需的平均时间近似相等)1.定义 单位时间选一个合适的时间长度当单位时间2.定义 单位距离单位时间内人按某个速度匀速行进的距离作为单位距离(eg:走楼梯和走平地在单位时间内走过的距离可能不同,但他
2021-01-12 23:46:19
505
1
原创 【学习记录】python matplotlib 自学入门(随缘更新)
貌似基础add_subplot 前两个参数表示把面板划分成怎样的形状(几行几列)第三个参数表示图在面板中的位置import matplotlib.pyplot as pltfig =plt.figure()ax1 = fig.add_subplot(2,2,1)ax2 = fig.add_subplot(2,2,2)fig,axes = plt.subplots(nrows= 3,ncols= 3)axes[1,1].set(title = 'middle')axes[0,2].set(
2021-01-10 17:37:24
233
2
原创 git github 初用
指定仓库的用户名和邮箱,–global表示这台机器的所有仓库都用这个用户名或邮箱wldcmzy@DESKTOP-UL0SE7R MINGW64 /D/test (master)$ git config --global user.name “wldcmzy”wldcmzy@DESKTOP-UL0SE7R MINGW64 /D/test (master)$ git config --global user.email “wldcmzy@163.com”将一个目录变为git可以管理的仓库cd
2020-12-16 12:12:46
106
1
原创 随机森林的应用简例
用jupyter lab 做的 太多了懒得排版%matplotlib inlineimport numpy as npimport pandas as pdfrom sklearn.model_selection import GridSearchCVfrom sklearn.ensemble import RandomForestClassifierdf_t = pd.read_excel(r'D:\EdgeDownloadPlace\复赛数据集\train.xlsx',header=Non
2020-11-12 10:07:43
720
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人