自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ACM-ICPC 2018 徐州赛区网络预赛

文章目录ACM-ICPC 2018 徐州赛区网络预赛A. Hard to prepareB. BE, GE or NED. Easy MathF. Features TrackG.TraceH. Ryuji doesn't want to studyI. Characters with HashJ. Maze DesignerK. Morgana NetACM-ICPC 2018 徐州赛区网络预赛 A. Hard to prepare B. BE, GE or NE C. Cacti Lotter

2020-09-24 14:44:05 1896

原创 java在acm中的运用

文章目录java在acm中的运用1. 输入2. 输出3. 字符串处理4. 高精度5. 进制转换6. 排序7. 其他注意java在acm中的运用1. 输入格式Scanner cin = new Scanner (new BufferedInputStream(System.in));// 当然也可以直接 Scanner cin = new Scanner(System.in);只是加Buffer可能会快一些读数类型1. 读一个整数:int n = cin.nextInt()//相当于scanf

2020-09-24 14:29:54 166

原创 交换数字问题

交换数字问题问题1:问: 把1~N的任意排列,只交换相邻的数字,问最少交换多少次使得数列为1、2、3、4…N结论: 总的交换次数为逆序对数目问题2:问: 把1~N的任意排列,只交换相邻的数字,问每个数最少交换多少次,最终能够使得数列为1、2、3、4…N结论: 每个数字需要交换的次数为:a[i]前比它大的数字的数目+a[i]后比它小的数字的数目问题3:问: 把1~N的任意排列,可以交换任意两个数字,问最少交换多少次使得数列为1、2、3、4…N结论: 把每个数字x向a[x]连一条边,则会形成很

2020-09-24 14:29:24 470

原创 对数问题

对数问题1. c++中的log函数引入#include以e为底:log(n)以10为底:log10(n)以m为底:log(n)/log(m)2. 计算公式loga(MN)=logaM+logaNlog_a(MN)=log_aM+log_aNloga​(MN)=loga​M+loga​Nloga(MN)=logaM−logaNlog_a(\frac{M}{N})=log_aM-log_aNloga​(NM​)=loga​M−loga​Nloga(Mn)=nlogaMlog_a(M^n)=

2020-09-24 14:27:51 220

原创 备忘录

文章目录备忘录1.memset初始化问题2.类型转换2.1 利用streamstring来实现安全的类型转换2.2 利用函数实现3. 利用streamstring可以实现以空格进行分割字符串4. 排序去重5. 取整问题备忘录1.memset初始化问题memset一般使用值为0,-1,0x3f, 0xc00初始化数组为0-1初始化数组为-10x3f初始化数组为10611095670xc0初始化数组为-1061109568测试程序#include <bits/stdc++.h>

2020-09-24 14:27:20 73

原创 kmp

文章目录kmp1.算法分析1.1 符号介绍1.2 算法思想1.3 算法原理1.3 时间复杂度2. 基本性质2.1 border的传递性2.2 失配树2.3 循环节2. 典型例题2.1 字符串匹配2.1.1 一维字符串匹配2.1.2 二维字符串匹配2.2 失配树问题(周期、循环节问题)2.2.1 失配树版题2.2.2 求最小border2.2.3 求border数目kmp1.算法分析1.1 符号介绍周期0 < p < |s|, s[i] = s[i + p],满足这个条件,p称为s的周

2020-09-24 14:26:19 466

原创 最小生成树

文章目录最小生成树1. 算法分析2. 板子2.1 prime算法2.2 kruskal算法3. 典型例题3.1 同时有点权和边权的最小生成树3.2 选定边集最小生成树3.3 最大边最小--生成树/森林3.4 最优比率生成树3.5 寻找存在于所有最小生成树的边3.6 最小生成树恢复成完全图3.7 最小生成森林3.8 最短路径树3.8.1 求最短路径树的数目3.8.2 最短路径树必经边3.9 次小生成树3.10 杂题最小生成树1. 算法分析mst性质最小生成树的题目都是无向图;连通图必存在最小

2020-09-24 14:24:53 287

原创 最短路

文章目录最短路1. 算法分析1.1 图论最短/长路模型1.2 图论建模技巧2. 板子2.1 dijkstra朴素版本求最短路 (O(n2)):适合稠密图,用邻接矩阵存储,不能处理有负权边情况2.2 dijkstra堆优化版本求最短路 (O(mlogn)):与边数有关,适合稀疏图,使用邻接表存储,不能处理有负权边情况2.3 dijkstra双端队列优化版本求最短路 O(m+n):边权为01特殊情况2.4 dijkstra有条件约束求最短路 (O(mlogn)):补充一个数组作为约束条件2.5 bellman_

2020-09-23 00:14:01 278 1

原创 最大团

文章目录最大团1.算法分析2. 典型例题2.1 板子题2.2 二分+最大团2.3一般无向图最大独立集最大团1.算法分析概念: 当G′是图G的子图,且G′是关于V′的完全图时,子图G’为图G的团;当G’是团,且不是其他团的子集时,G’为图G的极大团;当G’是极大团时,且点数最多,G’为图G最大团一般无向图的最大独立集=补图的最大团求最大团使用Bron–Kerbosch算法,时间O(3^(n/3))基本思想就是dfs+剪枝2. 典型例题2.1 板子题ZOJ 1492 Maximum Cliqu

2020-09-23 00:07:40 100

原创 有向图强连通分量

文章目录有向图强连通分量1 基本概念1.1 名词解释1.2 重要性质1.3 结论2. 板子3. 例题3.1 tarjan + 缩点 + 度3.2 tarjan + 缩点 + dp3.2.1 求最长链、求方案数3.2.2 求解差分约束3.2.3 求解必经点问题有向图强连通分量1 基本概念1.1 名词解释强连通分量:如果有向图中任意两点都有互相可达的路径,则此图为强连通图。有向图G的极大强连通子图称为G的强连通分量(SCC)(单点肯定都是scc,但要使scc尽可能大,所以能大尽量大)dfn[x]数组:

2020-09-23 00:03:33 748

原创 无向图双连通分量

文章目录无向图双连通分量1.算法分析2. 算法模板3. 典型例题3.1 求桥和边dcc3.2 割点2.3 求点dcc无向图双连通分量1.算法分析几个重要概念:1.割点:无向连通图中,去掉一个顶点及其和它相邻的所有边,图中的连通分量数增加,则该顶点称为割点2.桥(割边):无向连通图中,去掉一条边,图中的连通分量数增加,则这条边称为桥或者割边3.双连通分量(DCC):1)边双连通:若一个无向连通图中去掉任意一条边都不会改变此图的连通性,即不存在桥,那么称作边双连通图e-DCC2)点双连通:若一个

2020-09-23 00:03:03 361

原创 拓扑排序

文章目录拓扑排序1. 算法分析1.1 特点分析1.2 使用场景2. 例题2.1 求出拓扑序2.1.1 一般拓扑序2.1.2 求出字典序最大/最小的拓扑序2.2 判断图中是否有环2.3 拓扑排序+dp2.3.1 求最短路\最长路2.3.2 求可达性拓扑排序1. 算法分析1.1 特点分析    拓扑排序可以在线性的时间复杂度 O(n + m) 内完成求出拓扑序的操作,对象是有向无环图。拓扑图的性质如下:有向图才有拓扑序有向无环图必定存在拓扑序存在拓扑序 <=> 无环有向无环图至少

2020-09-22 23:56:38 428

原创 负环与差分约束

文章目录负环与差分约束1. 基本概念、方法1.1 负环1.1.1 spfa 判负环/正环1.1.2 tarjan+缩点 判断正环/负环1.1.3 拓扑排序 判断正环/负环1.2 差分约束2. 例题2.1 负环/正环判定2.1.1 spfa判断负环/正环2.1.2 tarjan求scc+缩点判断正环/负环2.1.3 拓扑排序判断正环/负环2.2 差分约束2.2.1 spfa差分约束2.2.2 tarjan求scc + 缩点 + dp 差分约束2.2.3 拓扑排序 差分约束负环与差分约束1. 基本概念、方法

2020-09-21 22:53:27 365

原创 匹配问题

文章目录二分匹配1. 算法分析1.1 几个重要概念1.2 二分图判定1.3 二分图点覆盖、独立集和最小路径点覆盖1.3.1 二分图的点覆盖1.3.2 二分图的独立集1.3.3 DAG的最小路径点覆盖1.3.4 DAG的最小路径可重复点覆盖2. 模板2.1 染色法判断是否为二分图2.2 匈牙利算法找最大匹配3. 典型例题3.1 染色问题3.2 二分匹配问题3.3 二分图的点覆盖集3.4 二分图的点独立集3.5 DAG的最小路径覆盖二分匹配1. 算法分析1.1 几个重要概念1.交替路:从一个未匹配点出发

2020-09-21 22:47:56 982

原创 带花树匹配

文章目录带花树匹配1.算法分析2. 算法模板3. 典型例题3.1 第一个应用3.2 第二个应用带花树匹配1.算法分析2. 算法模板#include<iostream>#include<cstdio>#include<cstdlib>#include<string>#include<cstring>#include<cmath>#include<ctime>#include<algorithm&gt

2020-09-21 22:46:31 102

原创 2-sat

文章目录2-sat1.算法分析2. 板子3. 典型例题3.1 已知点与点关系3.2 未知点与点关系2-sat1.算法分析    有 n 个变量x[1…n],每个变量的可能取值为1或0(或称i和~i必取到其中1个)。    给定 m 个约束条件,每个约束条件形如:若 x[i] 取 i(或者~i),则 x[j] 必取 j(或者~j)    判定是否存在对每个变量的合法赋值,使所有约束都被满足判定方法:建立 2N 个点有向图,i 和 ~i 一般设为 i 和 i+N对于每个约束条件连2条有向边

2020-09-21 22:46:00 206

原创 deque

deque1.初始化① 初始化一个双端队列deque <int> dq② 复制一个双端队列deque <int> dq2(dq);2.求长度(时间复杂度为O(1))a.size();3.判空(时间复杂度为O(1))a.empty();4.清空a.clear();5.随机访问a.front(); // 取第一个数a.back(); // 取最后一个数a[10]; // 取第11个元素,下标为106.删除元素/插入元素vector<

2020-09-21 22:45:43 76

原创 bitset

bitset1.初始化一个bitsetbitset <8> b(6); // 把数字6初始化为一个8位的二进制2.以二进制输出bitsetcout << b << endl; // 结果:000001103.取反cout << ~b << endl; // 把b的所有位取反cout << b.flip() << endl; // 把b的所有位取反cout << b.flip(0) &l

2020-09-21 22:43:02 77

原创 区间问题

文章目录区间问题1. 算法分析2. 典型例题区间问题1. 算法分析区间问题很多时候都需要思考是用区间的左端点还是右端点排序,选择合适的排序方法来使用2. 典型例题AcWing 905. 区间选点题意: 给定N个闭区间[ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。位于区间端点上的点也算作区间内。1≤N≤105,−109≤ai≤bi≤109题解: 本题按照区间右端点从小到大排序,右端点从小到大排序是因为为了尽可能少选点,每次选择区间的右端点

2020-09-21 15:26:38 412

原创 不等式

文章目录不等式1. 算法分析1.1 排序不等式1.2 绝对值不等式2. 典型例题2.1 排序不等式2.2 绝对值不等式不等式1. 算法分析1.1 排序不等式排序不等式如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1SMwIoxB-1600673149385)(https://i.loli.net/2020/08/31/yvsVhPHbqXKNLDZ.png)]1.2 绝对值不等式求f(x) = |x1 - x| + |x2 - x| + … + |xn -

2020-09-21 15:26:08 135

原创 floodfill

floodfill1.算法分析floodfill就是求出连通块的算法,一般可以采用dfs或者bfs,但是dfs容易爆栈,故而采用bfs为佳2. 例题acwing1097池塘计数题意:一块N * M的土地,其中有’W’和’.‘组成,’.'为土地,'W’为水,水的八个方向可以连在一起形成池塘,问一块土地上有多少个池塘? N,M~1e3代码:#include <bits/stdc++.h>using namespace std;int const N = 1e3 + 10;i

2020-09-21 15:25:37 74

原创 dfs连通性模型

dfs连通性模型1. 算法分析使用dfs来判断是否两个点连通,也可以通过dfs来做计数2. 例题acwing1112迷宫题意:T个测试样例,每个测试样例输入一个N,表示网格大小。网格为N*N的二维网格,给定起点和终点,问起点能否到达终点代码:#include <bits/stdc++.h>using namespace std;int const N = 1e2 + 10;int T, n, sx, sy, ex, ey, st[N][N];char a[N][N];

2020-09-21 15:24:53 214

原创 bfs最短路与最小步数模型

文章目录bfs最短路与最小步数模型1. 算法分析2. 例题2.1 最短路2.2 最小步数2.2.1 基础最小步数模型2.2.3 有条件的最小步数模型2.2.3 卡内存+有条件的最小步数模式2.2.4 思维最小步数bfs最短路与最小步数模型1. 算法分析最短路:从A点走到B点的最小距离最小步数:从状态A到状态B的最小变化数,本质就是最短路2. 例题2.1 最短路acwing1076迷宫问题题意:给定N*N数组,每个元素只有0和1,求从(0, 0)走到(n - 1, n - 1)的最短路,输出

2020-09-20 01:19:28 250

原创 双向bfs和双向dfs

双向bfs和双向dfs1. 算法分析当进行的变换是可逆的时候,且规定步数的上限时,可以使用双向dfs或双向bfs从源点和终点一起搜索。这样可以把时间从O(n)->O(n/2)如果dfs调栈超过1e5时,那么考虑双向bfs写法技巧双向dfs第一个dfs先搜索前一半的空间,打表存储所有可达的值第二个dfs搜索后一半的空间,然后查询是否在前一半空间中出现过双向bfs维护两个队列,当两个队列均非空时才能继续进行循环。循环内不断对元素较少的那个队列进行bfs操作2. 例题2.1

2020-09-20 01:17:37 518

原创 双端队列广搜

文章目录双端队列广搜1. 算法分析2. 例题双端队列广搜1. 算法分析双端队列广搜算法只适用于边权只有0和1的情况,本质上是对dijkstra堆优化版本的再次优化。由于dijkstra堆优化版本每次要把最小值从队头拿出,然后更新其他值后插入队列。而当边权只有0和1时,当处理的边权为0,那么更新完仍然为最小值,直接放入队头;为1则插入队尾。2. 例题acwing175电路维修题意:有一个R*C的电路板,电路板的如下:初始在左上角,现在要走到右下角。只有当线路连通才能走,问最少要改变几个电路节

2020-09-20 01:16:39 134

原创 多源bfs

文章目录多源bfs1.算法分析2.例题多源bfs1.算法分析多源bfs就是一开始有很多的源头,不只一个源点。处理的方法:一开始直接把所有源点放入队列;或者建立一个虚拟源点,虚拟源点到每个源点的距离为02.例题acwing173矩阵距离题意:给定一个N行M列的01矩阵A,A[i][j] 与 A[k][l] 之间的曼哈顿距离定义为:dist(A[i][j],A[k][l])=|i−k|+|j−l|输出一个N行M列的整数矩阵B,其中:B[i][j]=min(1≤x≤N,1≤y≤M,A[x][y

2020-09-20 01:15:48 206

原创 迭代加深

迭代加深1. 算法分析迭代加深就是防止答案在比较浅的层时,dfs搜索到很深而找不到答案的情况,通过设置一个最大迭代深度来解决这个情况2. 例题acwing170加成序列题意:满足如下条件的序列X(序列中元素被标号为1、2、3…m)被称为“加成序列”:1、X[1]=12、X[m]=n3、X[1]<X[2]<…<X[m-1]<X[m]4、对于每个 k(2≤k≤m)都存在两个整数 i 和 j (1≤i,j≤k−1,i 和 j 可相等),使得X[k]=X[i]+X[j]。

2020-09-20 01:15:15 609

原创 组合计数

文章目录组合计数1. 算法分析1.1 组合数/排列数1.2 错排数1.3 卡特兰数2. 板子2.1 a、b小(a、b~1e4),模数大2.2 a、b大(a、b~1e8),模数大2.3 a、b大(a、b~1e18),模数小2.4 a、b大(a、b~1e7),模数没有3. 例题3.1 组合数/排列数/乘法原理/加法原理3.2 错排数3.3 卡特兰数组合计数1. 算法分析1.1 组合数/排列数C[a][b]:从a里面选b个的方案递推:C[a][b] = C[a-1][b]+C[a-1][b-1] 可以

2020-09-20 01:14:16 476

原创 质数与约数

文章目录质数与约数1. 算法分析1.1 基本概念1.2 常用公式和性质1.2.1 质数1.2.2 约数2. 板子2.1 质数2.1.1 素数判定2.1.2 质因数分解2.1.3 筛素数2.2 约数2.2.1 求x相关2.2.2 求1~N相关2.1.3 gcd3. 例题质数与约数1. 算法分析1.1 基本概念质数: 作为最小单位,无法再进行拆分约数: 8的约数有1,2,4,81.2 常用公式和性质1.2.1 质数重要结论int范围内最多只有10个不重复质因子,且所有质数的次数总和不能超过3

2020-09-20 01:06:36 509 1

原创 list

bitset1.初始化一个bitsetbitset <8> b(6); // 把数字6初始化为一个8位的二进制2.以二进制输出bitsetcout << b << endl; // 结果:000001103.取反cout << ~b << endl; // 把b的所有位取反cout << b.flip() << endl; // 把b的所有位取反cout << b.flip(0) &l

2020-09-20 01:06:22 60

原创 algorithm

文章目录algorithm1. 二分查找1.1 lower_bound()1.2 upper_bound()1.3 binary_search()2. findalgorithm1. 二分查找1.1 lower_bound()用法: lower_bound(a.begin(), a.end(), k)查找a数组中出现大于等于k的第一个位置,返回迭代器时间复杂度: O(logN)举例:假设有a[5]={0,2,3,3,5},对于要查找的整型数valval = 2, i = 1;val =

2020-09-20 01:04:51 100

原创 置换群

文章目录置换群1.1 算法分析1.1.1 群1.1.1.1 群的定义1.1.1.2 子群1.1.1.3 置换1.1.2 轨道与稳定化子定理1.1.3 Burnside 引理与polay定理1.1.3.1 Burnside 引理1.1.3.2 polay定理1.2 典型例题置换群1.1 算法分析置换群通常用来解决一些涉及“本质不同”的计数问题,例如用 3 种颜色给一个立方体染色,求本质不同的方案数(经过翻转后相同的两种方案视为同一种)。1.1.1 群1.1.1.1 群的定义若集合 S≠∅S \n

2020-09-20 01:04:13 1026 1

原创 线性筛法

文章目录线性筛法1. 算法分析1.1 线性筛求素数1.2 线性筛求欧拉函数1.3 线性筛求莫比乌斯函数1.4 线性筛求约数个数1.5 线性筛求约束和2. 模板2.1 线性筛求素数2.2 线性筛求欧拉函数2.3 线性筛求莫比乌斯函数2.4 线性筛求约数个数2.5 线性筛求约数和线性筛法1. 算法分析关键思想:每个数字都被它的最小质因数筛掉1.1 线性筛求素数i % pj = 0i\ \%\ p_j \ =\ 0i % pj​&nbsp

2020-09-19 18:45:00 2823

原创 高斯消元小结

文章目录线性空间1.算法分析1.1 高斯消元1.2 线性基2.模板2.1 高斯消元2.1.1 解累加方程2.1.1.1 整数系数2.1.1.2 浮点数系数2.1.2 解异或方程2.2 线性基3.例题3.1 高斯消元3.2 线性基线性空间1.算法分析1.1 高斯消元模拟线性代数的运算1.2 线性基     线性基的本质是用一个数x的尽可能高位的1来代表x    线性基是向量空间的一组基,通常可以解决有关异或的一些题目。    通俗一点的讲法就是由一个集合构造出来的另一个集合,它有以下几个性质:

2020-09-19 18:44:29 301

原创 同余式

文章目录同余式1. 算法分析1.1 同余式常用定理1.1.1 欧拉公式/费马小定理1.1.2 威尔逊公式1.1.3 扩展欧几里得1.2 乘法逆元1.3 求解同余式1.3.1 求解一次同余式1.3.2 求解高次同余式1.4 中国剩余定理1.5 思维同余性质2.板子2.1 同余式常用定理2.2 乘法逆元2.3 求解同余式2.4 中国剩余定理3. 例题3.1 同余式常用定理3.2 求解同余式3.3 中国剩余定理3.4 思维同余性质同余式1. 算法分析1.1 同余式常用定理1.1.1 欧拉公式/费马小定理

2020-09-19 18:41:41 780 2

原创 快速幂和快速乘

文章目录快速幂和快速乘1. 算法分析1.1 快速幂1.2 快速乘2. 板子快速幂和快速乘1. 算法分析1.1 快速幂计算a ^ k % p把k拆成二进制表示形式,比如k等于5的时候,k = (101)2 = c1 * 1 + c2 * 0 + c3 * 1预处理a ^ c1, a ^ c2, …, a ^ ct这样计算a^k%p时,答案即为res = (a^c1) * (a^c3)1.2 快速乘a * (2 ^ 0) = (2 ^ 0) * a;a * (2 ^ 1) = (2 ^ 1)

2020-09-19 18:39:57 115

原创 矩阵乘法

文章目录矩阵乘法1. 算法分析2. 板子3. 例题3.1 直接处理矩阵运算3.2 斐波那契数列+矩阵快速幂矩阵乘法1. 算法分析利用快速幂的方法来优化矩阵的乘法,使得计算矩阵A(N*N)的M次方的时间优化到O(N3logM)常用技巧一般如果能够把式子写成 Kn = Kn-1+t,那就能使用矩阵快速幂处理,设Fn=[fn, fn+1, kn], Fn+1=[fn+1, fn+2, kn+1],那么Fn+1=FnA (A为矩阵)2. 板子计算ax#include <bits/stdc+

2020-09-19 00:28:54 317

原创 积性函数&数论分块&迪利克雷卷积&杜教筛&莫比乌斯函数及其反演

文章目录积性函数&数论分块&迪利克雷卷积&杜教筛&莫比乌斯函数及其反演1. 算法分析1.1 积性函数1.1.1 定义1.1.2 常见积性函数1.1.3 常见完全积性函数1.2 迪利克雷卷积1.3 数论分块1.4 杜教筛1.5 莫比乌斯反演1.6 数论公式推导套路小结2. 板子2.1 数论分块(整除分块)2.1.1 一维分块2.1.2 二维分块2.2 筛法求莫比乌斯函数3. 典型例题3.1 数论分块3.2 杜教筛3.3 莫比乌斯函数积性函数&数论分块&迪利克雷

2020-09-19 00:25:36 370 1

原创 互质与欧拉函数

文章目录互质与欧拉函数1. 算法分析2. 板子3. 例题互质与欧拉函数1. 算法分析基本概念欧拉函数:1~N中与N互质的数的个数在算术基本定理中:N = (p1a1) * (p2a2) * … *(pmam)一个数的欧拉函数: φ(N)=N * (1-1/p1) * (1-1/p2) * … * (1-1/pm)且φ(1) = φ(2) = 1重要结论1~N中,(x, y) = 1的对数为: 前1~N的欧拉函数的前缀和 * 2 - 1常用思路很多求gcd(x, y)=p的问题,最后都需

2020-09-19 00:24:37 655 1

原创 概率与期望

文章目录概率与期望1. 算法分析2. 例题2.1 期望的线性2.2 DAG期望2.3 无向图期望概率与期望1. 算法分析数学期望的性质设X是随机变量,C是常数,则E(CX)=CE(X)。设X,Y是任意两个随机变量,则有E(X+Y)=E(X)+E(Y)。设X,Y是相互独立的随机变量,则有E(XY)=E(X)E(Y)。设C为常数,则E(C)=C。特点分析数学期望的题目一般都是DAG,起点唯一,终点很多的情况,这种情况下一般都是dp处理,从终点往起点做dp,答案就是f[1].解法可以直接递

2020-09-19 00:23:25 311

空空如也

空空如也

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

TA关注的人

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