自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 asyncio gather函数的用法

asyncio.gather()是Python的异步库中的一个函数,用于并发执行多个协程。它封装了多个协程,使这些协程可以并发执行,等待所有协程执行结束后才返回结果,并将所有协程的返回值合并到一个列表中返回。比如,如果我们有两个函数func1和func2,我们可以使用asyncio.gather(func1(), func2())来并发执行它们。这个函数会一直运行,直到所有的协程都执行完成。每个协程可以使用await来暂停执行并将控制权交给其他协程,这使得协程可以在等待IO操作完成的同时,运行其他代码

2023-07-14 15:41:28 1081

原创 asyncio底层逻辑

本文主要介绍了Python中的迭代器和asyncio模块。迭代器是Python中的一个重要概念,用于处理数据流,可以将多个迭代器串联起来,形成数据流,每次只能通过一个数据。生成器函数是一种特殊的迭代器,可以将一个函数等价于一个对象,每次迭代返回yield后面的数据,并在函数结束时抛出StopIteration。使用yield可以简化定义可迭代数据类型时需要定义迭代器的过程。在协程中,可以使用send语句向函数传入参数,但最好只使用send,因为第一次迭代必须使用send(None)。

2023-07-13 22:10:29 126

原创 YAML入门

可以解决大多数python配置文件中遇到的YAML,入门

2023-07-07 22:00:35 82

原创 virtualenv的使用

virtualenv的基本使用

2023-07-06 21:44:10 53

原创 threading 和 multiprocessing的使用

多进程的函数简单入门

2023-07-06 21:41:01 48

原创 beta distribution

beta 分布直观理解

2023-01-03 15:46:09 110 1

原创 论文的引用

论文引用不同的类型文章的举例

2022-11-18 14:47:50 112

原创 pandas 数据预处理demo

打工代码留做纪念

2022-07-20 20:20:45 201

原创 GoogLeNet的pytorch实现和调参

GoogLeNet的pytorch实现与调参

2022-07-11 21:34:48 487

原创 Multi-class Classification

吴恩达机器学习ex3多分类问题

2022-06-24 22:26:21 405

原创 SVD奇异值分解

奇异值分解,matlab

2022-06-20 12:29:01 211

原创 矩阵求导

简单的矩阵求导

2022-06-17 10:03:47 64

原创 Codeforces Round #774 (Div. 2)

C,D,E题

2022-03-05 15:40:03 703 7

原创 folium函数总结

folium是一个简单的python地图可视化库folium的基础地图绘制,热力图绘制,密度,标记等

2022-02-16 22:59:26 2952 4

原创 matplolib函数总结

matplotlib常用绘制函数 , matplotlib 常见窗口,参数,图形设置

2022-02-11 16:57:13 1239

原创 numpy函数总结

numpy常见函数 , 常见使用方法 , 语法

2022-02-09 15:39:51 934

原创 AtCoder Beginner Contest 226

AtCoder Beginner Contest 226 - AtCoderB - Counting Arrays这个题目就是看有几个不同的序列,然后可以使用哈希来做,然后用mapmapmap来存,sum=sum∗137+47+a[i]sum=sum*137+47+a[i]sum=sum∗137+47+a[i],然后这样子貌似就可以过了,然后其实还可以转换成字符串,将空格转换成逗号然后再放在mapmapmap里面去重,或者用setsetset也行的,听说用vectorvectorvector存起来,然后

2021-11-09 19:43:53 164

原创 素数判断相关算法

基础素数判断 , 欧拉筛 , Miller_Rabin

2021-10-30 10:28:25 175

原创 Codeforces Round #746 (Div. 2)

Hemose Shopping可以注意到有一些数字是可以与别人换位置的,有一些是不能的,然后可以与别人换位置的还有这样一个性质,aaa和bbb不能换,但是他们两个都可以和ccc换,所以可以通过媒介来将aaa,bbb来换位置,所以第一个不能换位置的开始的位置就是max(1,n−x+1)max(1,n-x+1)max(1,n−x+1),结束的位置就是min(x,n)min(x,n)min(x,n).这个区间的数不能挪动位置,所以先排序,然后看看这个区间的每个数是不是原来的就行了#include<cst

2021-10-13 20:59:38 93

原创 Codeforces Round #747 (Div. 2)

Consecutive Sum Riddle因为lll可以是负数,而且这个题是一个AAA题,所以必然是一个比较∗∗**∗∗的构造题,因为lll可以是负数,所以可以存在抵消的操作,所以就直接输出−n+1,n-n+1,n−n+1,n就行了.#include<cstdio>#include<algorithm>#include<cstring>#define int long longusing namespace std;int T,n;signed main

2021-10-13 20:54:53 93

原创 数据结构基本模板复习

这就一篇简短模板博客,没有什么解说的,就是一些注意事项,准备后期写一点技巧性的东西比如线段树合并,李超线段树,动态开点,010101线段树,用于维护乘法数论,二维的树,分块,莫队,线段树优化建图,lctlctlct之类的,看情况学习一点点其他的奇怪的树或者说图(像仙人掌这种).模板1: 并查集三个核心函数int getf(int x){return fa[x]==x?x:getf(fa[x]);}void merge(int v,int u){ int temp1,temp2; temp1=ge

2021-09-15 17:06:29 171

原创 Codeforces Global Round 16

MIN-MEX Cut我们发现,所有的111都可以直接切出来,把它单独弄,因为只有111的集合mex=0mex=0mex=0,加起来就相当于没有,只是这个000要注意一下,分情况就好了全是111,答案就是000,全是000,答案就是111.000只有连续的一段,答案就是111,因为111的那部分等于000,只用看000这一段000有连续的很多段,大于等于222段.这种情况答案就是222了不可能答案大于222,因为所有看作一个,答案最多就是222.#include<cstdio>

2021-09-15 16:36:27 116

原创 Codeforces Round #742 (Div. 2)

MEXor Mixupmexmexmex意思就是不在集合里面最小的正整数.所以给出一个mexmexmex那么他前面的所有的东西都是要选上的,然后前面的这些所有的异或之和(假设为xxx)就可以预处理然后用O1O1O1的计算出来,因为给出的必须异或和为yyy,所以我们还差一个z=x xor yz=x\ xor \ yz=x xor y,也就是z xor x=yz \ xor \ x=yz xor x=y,然后就是分情况了:z=

2021-09-14 20:56:44 92

原创 整除分块

引入问题:∑i=1n⌊ni⌋\sum_{i=1}^n\lfloor \frac{n}{i}\rfloor∑i=1n​⌊in​⌋,其中n<=109n<=10^9n<=109暴力:for(int i=1;i<=n;i++) ans+=n/i;//有手就行这个的时间复杂度是n2n^2n2正解:i/ji/ji/j最终的答案一定是单调递减的而且可能还有一段是连续的一段数字.比如202020除下来的结果就是20,10,6,5,4,3,2,2,2,2,1,1,1,1,1,1,1,

2021-09-01 22:33:24 483 8

原创 并查集

模板: 并查集三个核心函数int getf(int x){return fa[x]==x?x:getf(fa[x]);}void merge(int v,int u){ int temp1,temp2; temp1=getf(v); temp2=getf(u); if(temp2<temp1) swap(temp2,temp1); if(temp1!=temp2) fa[temp2]=temp1;}bool find(int u,int v){ int temp1,temp2;

2021-08-23 22:46:17 214 2

原创 斜率优化dp

斜率优化例题1:洛谷P2365 任务安排我们先使用前缀和的方式,将t[i]t[i]t[i]和c[i]c[i]c[i]​​预处理,f[i]f[i]f[i]表示前面iii个整好之后的花费,然后得到方程式:f[i]=minj=0i−1{f[j]+t[i]∗(c[i]−c[j])+s∗(c[n]−c[j])}f[i]=min_{j=0}^{i-1}\{f[j]+t[i]*(c[i]-c[j])+s*(c[n]-c[j]) \}f[i]=minj=0i−1​{f[j]+t[i]∗(c[i]−c[j])+s∗

2021-08-21 22:35:12 81

原创 [学习笔记] 背包九讲

01背包问题题目:有NNN件物品和一个容量为VVV的背包。第iii件物品的费用是c[ic[ic[i],价值是w[i]w[i]w[i]​​。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。解答f[i][v]f[i][v]f[i][v]表示前面iii个物品放进空间为vvv的背包获得的最大收益f[i][v]=max(f[i−1][v],f[i−1][v−c[i]]+w[i])f[i][v]=max(f[i-1][v],f[i-1][v-c[i]]+w[i])f[i][v]=m

2021-08-21 22:26:28 168

原创 UCF Local Programming Contest Final Round2020

d - Food Display Arrangement就是贪心,设这些数字的起点和终点分别是lil_ili​和rir_iri​,假设已经进行完删除操作了,那么剩下的数字种类就是越多越好,所以贪心的选择更多的“线段”.(可以跑最长路,但是我没调出来)#include<cstdio>#include<algorithm>#include<cstring>#include<map>#define maxn 100100using namespace

2021-08-19 22:26:01 167

原创 ICPC Mid-Central USA Region 2019

b - Convoy首先根据贪心来说,肯定让更熟悉城市的人来开车,即tit_iti​小的人,所以先对所有的时间进行排序然后再来考虑怎么求答案的问题,由于每个人的tit_iti​都有可能不同,所以说有时候一个人跑完两圈了,另外一个人可能一圈都没有跑完,所以直接求答案可能会有一定的难度.考虑二分出需要多少时间(x)(x)(x),然后每次来checkcheckcheck一下这个时间行不行,用x/a[i]x/a[i]x/a[i]得到可以走几趟,单数趟和双数趟是不一样的,因为单数是到了体育场,双数是家,a[i

2021-08-19 20:12:25 449 8

原创 Codeforces Round #739 (Div. 3)

D - Make a Power of Two题目关键信息: 随便删除,只能在右边加,前导零不自动删除因为要看看到底操作几次就可以变得和2k  (0≤k≤63)2^k\ \ (0\le k\le 63)2k  (0≤k≤63)相等,拿到题我们就先想暴力一点的做法,判断时间复杂度,再考虑优化.所以最暴力的就是直接枚举2k2^k2k,再与nnn来作比较,看看需要操作几次计算时间复杂度:104∗63∗910^4*63*9104∗63∗9<108−910^{8-

2021-08-19 17:05:50 125

空空如也

空空如也

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

TA关注的人

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