自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python之爬虫初探

Python 爬虫初探为什么选择Python?python爬虫具有先天优势,社区资源比较齐全,各种框架也完美支持,爬虫性能也得到极大提升。语法简洁,底层库比较健全。简单易学,代码重用性高,跨平台性。我还不太会Python想借此学习一下爬虫是什么?网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。基础知识概念URL(协议(服务方式) + IP地址(包括端口号) + 具体地址),即统一资源定位符

2022-01-10 21:11:13 907

原创 RxJava初探

RxJava

2022-01-07 16:04:42 2482 3

原创 Kotlin之lambda表达式

Kotlin高阶用法 ---- lambda表达式基本语法返回值lambda 表达式 总是返回函数体内部最后一行表达式的值作用域在java函数中内部定义一个匿名类或者lambda,内部类访问的函数局部变量必须是final的,内部类是无法修改函数局部变量的值。Kotlin的内部类或者lamda中,不仅可以访问final 的变量,也可以访问非final的变量,也就是说在lamda内部可以直接修改函数局部变量的值。...

2021-11-01 18:34:38 167 2

原创 Codeforces Round #720 (Div. 2) D. Nastia Plays with a Tree

D. Nastia Plays with a Tree题意:n个节点的树,用最少的操作次数使得每个节点的度数<=2保证最后也是一棵树。操作:选择一条已存在的边删掉在任意两个节点间添加一条边输出:最小的操作次数以及每次的删除边的节点以及加边的节点思路:看题解没写网络流解法,那我来写一下。首先看复杂度如果线性建边:O(n*sqrt(n))树是一个特殊的二分图,可以染色后保持原来的边不变且flow=1S——左部点 flow=2. 右部点——>T flow=2.这样跑出最大流之

2021-05-10 13:15:11 188

原创 小米手机安装Charles证书

小米手机安装Charles证书确保电脑已经配置好更改手机所连接Wi-Fi主机名(电脑IP)和端口(8888)用UC浏览器(自带浏览器????)打开网址chls.pro/ssl将下载的文件后缀改成crt并移到系统目录的Download目录下手机设置->加密与凭据->安装证书->CA证书->安装刚才那个文件GG(不得不吐槽现在手机保密性太高了,安装个证书都这么费劲。????)...

2021-04-07 11:03:03 1525

原创 Leetcode 题集

目录字典树(链表版)1-n的排列字典序第k大字典树(链表版)题目链接class Trie {public: /** Initialize your data structure here. */ bool ed; Trie* next[26]; Trie() { memset(next,0,sizeof next); ed=0; } /** Inserts a word into the trie. */

2021-01-25 22:17:29 105

原创 Codeforces Global Round 12 E. Capitalism【查分约束】

Codeforces Global Round 12 E. Capitalism【查分约束】题意: 给你n个点,m条边的无向图,现在有m个限制.每个点都有自己的属性值disop= =1,说明dis[u]+1=dis[v];op= =2,说明dis[u]+1=dis[v]或dis[v]+1=dis[u];让你最大化max(dis[1-n])-min(dis[1-n]),不满足限制条件输出NO,否则输出属性方案。思路: 看上去很明显的查分约束,首先是把等式转换成不等式,再根据三角不等式建边跑最短路。

2020-12-11 14:07:17 141

原创 The 14th Jilin Provincial Collegiate Programming Contest K Forager

K Forager题意:思路:代码:题目链接:题意:给你一个n*m的矩阵,矩阵上可以分为五类点。1.‘.’代表空地。2.‘ULRD’代表有一束射线从此处对应的方向发出。3.‘^<>v’代表方向转换器,(能吸收所有的射线并从对应的方向发出,你可以扭动这个转换器的出射方向,每次90degree,每次花费val[i][j],而且一旦方向确定,就不能中途改变了 )4.‘x’代表这里有一个宝石价值是c[i][j],射线可以照到但不能穿过该地方。5.‘#’代表墙体,射线不能穿过。问:你最多

2020-11-06 20:00:19 538 5

原创 UVA 1616 [二分+小数转分数输出]

UVA 1616 [二分+小数转分数输出]题目链接题意:保证线段之间不包含。思路:如果这题是输出小数,就是一个很明显的二分!!!难道要直接二分分数?很显然不合理。二分之后,小数转分数?(无限不循环小数你也转不过去啊)仔细观察之后会发现一件事,我们总是拿相交的线段对分母才有贡献,因为一个独立线段,直接就是mid/1,其他的就是mid/密集处,那么分母最大就是n。于是我们很容易用枚举分母的方法AC了这道题!!!注意精度设小一点。#include<bits/stdc++.h>usin

2020-10-07 19:50:48 238 6

原创 可撤销并查集

可撤销并查集一定要按秩合并优化,不能路径压缩,不然不能保存父亲节点信息。复杂度:O(log(n))struct dsu{ int pre[N],top,sz[N]; p stk[N]; void init(int n) { for(int i=1; i<=n; i++)pre[i]=i,sz[i]=1; top=0; } int find(int x) { if(x==pre[x])retur

2020-10-02 20:43:33 1556

原创 2-SAT(小结)

学习目标:2-SAT(小结)这个人讲的很好,我就不详细讲了学习内容:注意点1.适用范围:x1&x2=0,问给出 m 个关系表达式后,能否给这 n 个变量找出一个赋值的方法,使得满足所有的表达式;2.对于每个变量都只有两种取值:0 / 1,那么对于每个点,我们把每个变量拆成 true 点和 false 点;3.要注意只有关系明确的时候才能建边; 其中一个不成立则另一个一定成立(这是明确的关系);4.无解的情况:某一个变量的 false 能走到 true,从 true 也能走到 fals

2020-09-02 16:32:34 115

原创 2017 CCPC 秦皇岛 H Prime Set ZOJ 3988(网络流)

2017 CCPC 秦皇岛 H Prime Set ZOJ 3988题意:给一个数组,对于每两个数加起来为素数那么就是一个集合,求不超过k个集合的最多数是多少?思路:很容易想到n^2建边跑最大匹配,出现两个问题:1.两个集合中可能出现相同元素,这样最大匹配不是答案(比如:样例2)2.素数=奇数+偶数(奇偶建边),但是特例:1+1=2Solution:1.对于第一个问题,我们假设跑出来的最大匹配是ans,那么会有ans * 2个不重复元素,k-ans个和前面重复的和k-ans和前面不重复的,答案

2020-06-28 09:29:25 200

原创 Undirected Vertex Geography

Undirected Vertex Geography无向点地理问题在一个无向二分图上进行轮流移动棋子游戏,不能经过重复的点。当且仅当棋子在所有最大匹配上时,先手必胜。一个点在所有最大匹配上的条件:S到这个点有流量,且它不属于源点割集。 ac.Dinic(); ac.bfs(); for(int i=head[s]; i; i=edge[i].next) { int v=edge[i].to; if(v<=n1&&ed

2020-06-17 11:33:52 394

原创 codeforces 432D 【kmp+dp】||【后缀数组】

codeforces 432D 【kmp+dp】||【后缀数组】Description:给出一个字符串,求有多少种长度的前缀和后缀相等,并且得到的这个前缀在原字符串中出现的次数。 solution1:kmp+dp 求前缀出现的次数,原来就写过: https://blog.csdn.net/qq_43653111/article/details/103354633 现在找一下前缀后缀相等:很容易发现n,nxt[n]就是一个 再找找nxt[nxt[n]]也是,gg了 scanf("%s

2020-06-10 16:37:19 188

原创 后缀数组

后缀数组定义定理SA基本过程实例(子串=后缀的前缀)定义1.sa[i]就表示排名为i的后缀的起始位置的下标2.rk[i]就表示起始位置的下标为i的后缀的排名3.LCP(i,j)为suff(sa[i])与suff(sa[j])的最长公共前缀4.height[i]=LCP(i,i-1);为什么要有LCP呢? ????(后面会说)定理显而易见的1.LCP(i,j)=LCP(j,i);2.LCP(i,i)=len(sa[i])=n-sa[i]+1;其他定理的证明:SA基本过程目的是求s

2020-06-10 14:41:34 159

原创 CodeForces - 713C(经典DP)

CodeForces - 713C(经典DP)题意:给出一个长度为n的数列(n<=3000),每次操作可以把其中一个数增大1或者减小1,求最少操作次数使得数列严格单调递增。思路:1.首先如果是变成一个非递减的序列,该怎么做?我们很明显可以发现:最后这个非递减的序列一定只是原来序列排序之后的结果。假设dp[i][j]表示当前枚举到第i个数,让它变成第j大的数需要的最小花费,那么转移方程很显然就是:dp[i][j]=min(dp[i-1][k]+abs(a[i]-b[j]),dp[i][j]);

2020-05-21 15:55:44 318 1

原创 树上背包问题

树上背包问题引例1引例1金明的预算方案题意:01背包问题,某些物品有依赖关系,但是一个物品只能依赖一个物品,最多可被两个物品依赖,问你最大价值是多少?思路:很明显就是01背包的思路,分类讨论就好了/*▄███████▀▀▀▀▀▀███████▄░▐████▀▒▒▒▒▒▒▒▒▒▒▀██████▄░███▀▒▒▒ACCEPTED▒▒▒▒▀█████░▐██▒▒▒▒▒▒▒▒▒▒▒▒▒...

2020-05-06 11:31:58 339

原创 C - Array in the Pocket (ZOJ - 4102)

C - Array in the Pocket (ZOJ - 4102)题意:给你数组a,问你重新排列这个数组得到b,能使a[i]!=b[i]字典序最小的b数组。思路:贪心其实可以做!!!3 2 1 5 4 4 4 4 7手动模拟这个例子,很快可以得出3 2 1 5 4 4 4 4 71 3 2 4 5 7 x x x我们发现此时只有4能填,但是这个位置又不能填4,那么就得找一个...

2020-05-05 13:57:45 242 1

原创 林大5.1训练赛补题

林大5.1训练赛补题A.凸多边形曼哈顿E.矩阵快速幂I.线段dp

2020-05-04 22:01:35 136

原创 裴蜀定理

裴蜀定理裴蜀定理的定义和一些结论 1.我们设d=gcd(a,b)那么对于方程ax+by=d,一定存在一组整数解。 并且对于方程ax+by=z如果满足d∣z,那么方程一定有整数解,否则无整数解。 2.对于方程ax+by=1只有当整数a,b互质时,方程才有整数解。 3.对于方程ax+by=z,只有满足gcd(a,b)|z,方程才有整数解。 4.对于不定方程a1...

2020-04-30 12:08:21 1728

原创 Codeforces 1340 C (01BFS)

Codeforces 1340 C (01BFS)题意:你要从0走到n,红绿灯交替,绿灯可以随便走,红灯

2020-04-27 21:40:30 292

原创 P6186 [NOI Online 提高组]冒泡排序(民间数据)

P6186 [NOI Online 提高组]冒泡排序(民间数据)题意思路:1 .对于第二个操作,我们不妨模拟一下冒泡排序, 1 4 5 2 3—>1 4 2 3 5可以发现逆序对(5,2)(5,3)没了,再来一次1 4 2 3 5—>1 2 3 4 5逆序对(4,2)(4,3)没了。2 .可以发现与每个数左边比它大的数量有关 ,再来模拟上面的操作,pre[i]数组:0 0 0...

2020-04-21 11:15:41 211

原创 线段树解决偏序问题

E - Buses and People题意:给定 N 个三元组 (a,b,c),现有 M 个询问,每个询问给定一个三元组 (a’,b’,c’),求满足 a<=a’, b’<=b, c’<=c 的最小 c 对应的元组编号。思路:首先肯定离线排序处理,我们按照a排序,那么它之前的元组肯定都满足第一个条件。它之前的元组满足b’<=b,最小的c的下标怎么处理呢?题目说每...

2020-04-08 15:41:11 170

原创 The 13th Chinese Northeast Collegiate Programming Contest

The 13th Chinese Northeast Collegiate Programming Contest文章目录[The 13th Chinese Northeast Collegiate Programming Contest](https://codeforces.ml/gym/102220)J - Time LimitC - Line-line IntersectionB - B...

2020-04-03 21:10:40 227

原创 2018-2019 ACM-ICPC, Asia Nanjing Regional Contest

2018-2019 ACM-ICPC, Asia Nanjing Regional Contest文章目录A.Adrien and AustinJ.Prime GameI.Magic PotionG.Pyramid(补)D.Country MeowM.Mediocre String ProblemK.Kangaroo Puzzle(补)A.Adrien and Austin题意:n个一排石子...

2020-03-31 20:48:10 266

原创 最小割

最小割什么是最小割?一个割就是一组边的集合,将给集合边从图中边集合中移除,那么图被分割为两个部分,这两个部分之间没有任何边连接。如何找到这个最小割?当一个图被割分成两个部分时,不再存在S到T的通路,所以割的代价必定大于等于图的最大流(这个需要添加额外说明吗?应该不需要吧,算是非常明显的结论了吧)。那么也就是说,割的代码最小不能小于图的最大流,也就是割的代价等于图的最大流。例题1题意:每...

2020-03-23 17:29:20 3980

原创 [kuangbin带你飞]专题二十一 概率&期望

[kuangbin带你飞]专题二十一 概率&期望A.dp不行就推公式 在n个门前选择一扇门出去, 然后如果第i扇门的 Xi值是正的话,你会花费Xi时间后出去 , 如果Xi是负数的话你会花费-Xi时间后回到老地方,并且忘记了刚才的选择, 选择一扇门的概率是等概的。 求出去的期望。 设出去的期望是Y,那么可以写出一个式子 :Y = P1 * T1 + P2 * (T2 + Y...

2020-03-11 22:25:43 161

原创 概率dp总结

概率dp总结概率一般是正推,期望一般是逆推.很多题要推公式,不能上去就dp.可以利用矩阵快速幂加速,高斯消元解方程,待定系数法推公式。POJ3744题意:起点是1,每次有p的概率走一步,或者1-p的概率走两步,路径上会有地雷,问你走出去的概率。思路:dp[1]=1,dp[i]=dp[i-1] * p+dp[i-2]*(i-p);范围这么大,可以矩阵快速幂优化递推,当时路径上点...

2020-03-11 21:10:33 524

原创 数位dp习题整理——codeforces

数位dp习题整理——codeforces1.1800题意: 给出一个二进制数n,每次操作可以将这个数变为其二进制数位上所有1的和(3->2 ; 7->3),现在给出了一个数k,问不大于n的数中有几个数经过k次操作可以变成1。思路: 从题中我们可以看到,一次操作可以将一个数变化为其二进制 1 的个数,于是我们设 f[i] 表示二进制中有 i 个 1 的数需要几次变化才能到达 1 。...

2020-02-25 17:21:40 604

原创 Tarjan缩点解决环问题 codeforces

简介:tarjan是一种求强连通分量、双连通分量的常用算法,其拓展例如求缩点、割点、割桥以及2-SAT等都是非常实用的(tarjan orz)、1.点我题意:一个寝室里有n个房间和一个老鼠,老鼠一开始可能在任意一个房间,老鼠会从房间i跳到a[i]房间,问在哪些房间下陷阱可以用最小的代价抓到老鼠?思路:建完边之后发现这个图是有环有向图,我们直接tarjan强连通分量缩点重新建图,重构出来的图必...

2020-02-22 20:14:46 286 2

原创 HDU 4507 吉哥系列故事——恨7不成妻(数位DP)

与7不沾边的数需要满足三个条件。①不出现7②各位数和不是7的倍数③这个数不是7的倍数这三个条件都是基础的数位DP。但是这题要统计的不是符合条件个数,而是平方和。也就是说在DP时候,要重建每个数,算出平方,然后求和。需要维护三个值(推荐使用结构体), 假定dfs推出返回的结构体是next,当前结果的结构体是ans①符合条件数的个数 cnt②符合条件数的和 sum③符合添加数的平...

2020-02-16 11:36:27 149

原创 2020牛客寒假算法基础集训营第三场 E.牛牛的随机数【数位DP】

题目链接题意:从值域[l2,r2]中随机给出一个数字b。问你a⊕ b的数学期望。思路:首先要看每个区间的数字每位的0和1数量,每位对答案的贡献就是cnt1* cnt0*(1<<(i-1));那么我们怎么求区间内每位上0和1的个数呢?1.直接拆位数位dp,dp[i][j]代表枚举到第i位当前是j的1的方案数。2.还有一种拆位位运算算1-n内一共有多少1,不用数位dp取模少加个(...

2020-02-11 21:45:17 282

转载 差分约束

具体三类模型看这篇博客:添加链接描述写的很详细,我只给出对应例题的代码:建图技巧:1.a-b<=c ——> add(b,a,-c)spfa跑最短路2.a-b>=c ——> add(b,a,c)spfa跑最长路其他不等式或者等式可以转化成这种形式来做1、线性约束线性约束一般是在一维空间中给出一些变量(一般定义位置),然后告诉你某两个变量的约束关系,求两个变量a和...

2020-02-04 20:42:00 136

原创 North American Southeast Regional 2019 (Div 1) D - Swap Free

D - Swap Free题目链接:题意:找一个集合的最大子集,这个集合中不允许互斥,两个字符串能相互转化(串字符交换一次变成另一个串)就算互斥。思路:最大独立集定义:选出一些顶点使得这些顶点两两不相邻,则这些点构成的集合称为独立集。找出一个包含顶点数最多的独立集称为最大独立集。定理:最大独立集 = 所有顶点数 - 最小顶点覆盖 = 所有顶点数 - 最大匹配就是最大独立集模板题,建...

2020-01-19 18:11:43 3028

原创 North American Southeast Regional 2019 (Div 1) J. One of Each

J. One of Each题目链接题意:求a的子序列中字典序最小的1到k的排列思路:1.贪心错误做法:每遍历一个数字,就去查询上一个该数字出现的位置的下个数字是否比它小,如果小,那么本次出现的该数字就可以代替上一个数字.反例:7 47 42 4 3 1 3 2 4如果按照上一种做法最后序列应该是2 4 1 3但是很明显最后的 2,4可以代替之前的,所以这种贪心策略并不可取。2...

2020-01-18 18:25:53 368

原创 NOIP2013 货车运输【最大生成树+倍增LCA】

NOIP2013 货车运输【最大生成树+倍增LCA】题目链接题意:n个点,m条无向边,每条边都有边权w,q次询问,问你从x–>y的(路径上的最小边权中)最大是多少?0<=n,m,q<=1e5思路:两个点之间可能有多种路径可以到达,那就构成了一个环,环之间的点可以两两互相到达,那么我们是否可以在保证联通的情况下贪心的把某些最小的边删去,保证了答案尽可能大,那么这不就是最大生...

2020-01-17 13:42:01 230

原创 P1807 最长路 【spa||拓扑排序】

P1807 最长路 【spa||拓扑排序】题目链接题意: 求1-n的最长路,不能到达,输出-1;误解: 首先想到的是Dijkstra改松弛条件(WA),变负权值跑最短路(WA),但是发现一个事,首先如果我们改松弛条件,按Dijkstra算法,找第一个距离源点S最远的点时,找到的是与S直接相连的点A,这个距离在以后就不会改变了(因为已经标记为访问过状态)。但A与S的最远距离一般不是直连。而且D...

2019-12-10 10:09:10 224

原创 HDU 3336【前缀出现次数】dp+kmp

HDU 3336【前缀出现次数】dp+kmp 题意:求出字符串前缀出现的总次数,答案对1e4+7取模; 思路:我们先考虑kmp匹配前缀与自身,可惜是O(n*n)的复杂度,那么我们该怎样匹配呢?对于这样一个串, 我们可以很容易发现这样一件事cnt[s1]=cnt[s2]=cnt[s3]+1;我们初始化cnt[i]=1;然后从后往前累加cnt[nxt[i]]+=cnt[i],每出现一次长串,就...

2019-12-02 19:18:46 269

原创 HDU 1650&&3533 【IDA*和A*】

HDU 1650&&3533 【IDA * 和A*】引子:先说一下IDA* 和A*的内容以及用法。估价函数:估价函数假设用h(x)表示,到达目前状态的代价用g(x)表示,那么估计的完成代价为f(x)=g(x)+h(x)。如果f(x)大于题目所需,那么可以进行剪枝。需要注意的是,h(x)必须小于等于实际最优代价,满足此条件下越接近实际代价该估价函数越优。A *算法是什么?它...

2019-11-18 22:10:18 101

原创 HDU 3567[八数码升级版 BFS预处理+康托展开+映射]

HDU 3567[八数码升级版 BFS预处理+康托展开+映射]题意:给你一个八数码问题的始态和终态,让你求出步数最小且字典序最小的走法。思路:~~这一看不就是双向BFS吗?~~冷静分析,双向BFS不能保证字典序最小,那怎么办呢?我们可以这样想,根据0的位置不同,我们可以分为九种情况,至于其他数字的位置变化可以映射过去,比如说示例1中的12X453786我们就可以做这样的一个映射“12X34...

2019-11-13 20:42:48 169

空空如也

空空如也

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

TA关注的人

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