自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 POJ - 3026 最小生成树 利用BFS建边 狂码150行WA系列

题目从 S 出发,去到达每一个 A ,求最小的总路径长度,空格是空地,# 是墙,并且在走的过程中我们可以在 S 或 A 点分裂,也就是从该点可以延伸出多条路径到其他点,但是每一次只能让其中的一个继续行走。也就是说 给每个S或者A都连上一条最短的路作为边,生成一个图,在图里找最小生成树!题解思路将每个S或者A都跑BFS最短路,然后存边,跑最小生成树。然后就是TLE。这题输入就有点狗,不知道什么地方又搞我,暂时没发现没过的样例。TLE代码#include <iostream>#in

2021-05-31 21:44:26 110

原创 POJ - 2031 POJ - 1751 最小生成树 部分免费路 注意免费路有重边 WA了一天了啊啊啊啊

题目题解思路两题都是安装题目要求建边,然后处理免费路。坑点因为免费路存在重边,当将免费边直接并入并查集时需要判断并入了再让树的节点树++。C++ double 用LF G++ 用 F 不然WA哭你其他的按照模板操作即可AC代码#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>using namespace std;int n,slo;

2021-05-31 21:33:34 88

原创 HDU - 1875 最小生成树 建边限制 WA精度 Kruskal

题目题解思路差点看错题目,我一开始以为是建树的限制浪费了挺多时间的。结果是建边的限制,直接套模板即可。坑点AC代码#include <iostream>#include <cstdio>#include <queue>#include <cmath>#include <algorithm>#include <vector>using namespace std;struct node{ int q

2021-05-31 17:33:35 102

原创 POJ - 2421 克鲁斯卡尔 最小生成树 在树中已连通部分免费边 水一水

题目题解思路对已连通的边直接并查集连接起来,然后其他的照搬模板。AC代码#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;const int maxn = 0x3f3f3f3f ;struct node{ int q,z,w;}mp[10100];int a[1000];int ans

2021-05-30 13:52:50 103

原创 POJ - 1287 最小生成树 板子 写了下克鲁斯卡尔(Kruskal)

题目题解思路克鲁斯卡尔思想先将边进行升序排序 。贪心的获取每一条边,用并查集的find检查是否在同一棵树上,不是同一棵树上的就合并,累加上这条边的权值,当合并的边数为节点总数-1时,最小生成树就形成了。AC代码#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;const int maxn = 0x3f

2021-05-28 18:56:32 84

原创 POJ - 1251 最小生成树模板题 prim 堆优化版 板子

题目题解思路不太想写前向星,所以用了vector存邻接表。采用堆优化,可以将时间复杂度降到nlogn 还是挺不错的 if ( vis[head[tmm.z][i].z] == 0 && dis[head[tmm.z][i].z] > head[tmm.z][i].w ) //发现某条边到树的距离 比 dis数组的小 而且 这条边的终点未被松弛操作过 dis[head[tmm.z][i].z] = head[tmm

2021-05-28 18:28:43 121

原创 POJ - 1753 DFS回溯法 类似八皇后问题 总感觉会超时就不敢写

题目题解思路时间复杂度 2 的16次方 。啊这,我太高估它了!对每个位置进行翻转或者不翻转的操作,翻转了记得回溯,当到遍历完所有位置时,检查有没有答案,如果有就更新,更新出来的答案还可以剪枝操作。看来以后要先算算时间复杂度了!!!AC代码#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <cmath>#includ

2021-05-28 17:31:02 145

原创 POJ - 1276 多重背包 二进制优化 转01背包 又写成贪心了

题目题解思路这题是裸的多重背包!贪心只在钱币成倍数时才能使用!例如此时需要 46 有 1张21 23张2 利用贪心的话会拿了21 导致最后只能输出 45 正确的思路应该是全拿2就有46了有关01背包有关多重背包的二进制优化实际上就是将物品乘以数量组成新的物品,然后进行01背包的 的 操作 。所谓的二进制优化就是将背包的数量变的最简分解,让其他的能被组合的数量不再分解。AC代码#include <iostream>#include <cstdio>#i

2021-05-28 16:14:06 76

原创 ACwing每日一题3565暴力 绝对值不等式 中位数思维

题目链接题解思路这里的用auto遍历 set 是C++11的特性。这里用了暴力法,回文满足的充分必要条件是数值关于中间位置上下左右对称,也就是行列对称。我们只要每次取这四个点(一般)取出它们4个的值的中位数每次累加即可。结论 :4个值中离4个值距离之和最近的必然是中位数。(绝对值不等式)这样我们只要保证每次取对称位置的点,直接让他们以最小的成本相等就行了。对边界要谨慎处理,行列分别循环到中心对称的位置。将对应的最多4个点的坐标导入set去重,因为行列有时存在奇偶情况,这样就只能2个点了,甚

2021-05-26 21:06:48 137

原创 POJ - 1456 利用并查集进行优化 + 贪心

题目题解思路必然是贪心,但是贪心策略想不出,还是太弱了,这题朴素贪心居然也能过,数据太弱了。从大佬的博客 看到的贪心策略。将商品的价格从大到小排序,每次让商品从过期时间往前选择,这样对其他商品造成的影响就是最小的。用朴素的方法的话,时间复杂度为 N平方 数据为1e4 应该要到极限才对。我们可以用并查集优化, 将空闲的时间连接起来,因为进行了路径压缩,所以能节省复杂度。将时间数组初始化为 -1 。每次使用时,对时间进行find,返回离节点最近的空闲时间,使用后将时间指向时间-1的节点。

2021-05-26 19:17:14 102

原创 HDU - 1272 并查集判定图是否为树 坑点挺多

题目题解思路当在已为同一棵树里再加边时,可以判断不为树。再加上树的性质 : 点的数量等于边数减一 (判定非连通图)这两个条件加上去就可以AC了坑点0 0 为Yes1 2 2 1 (自环)这条可以用第一个条件筛去 这样只要特判0 0即可!AC代码#include <iostream>#include <cstdio>#include <cstring>using namespace std;int a[100010];bool un[

2021-05-26 16:50:53 89

原创 POJ - 1984 曼哈顿距离 + 带权并查集 + 分解双权值

题目题解思路还没碰到过曼哈顿距离 了解下曼哈顿距离:表示两个点在标准坐标系上的绝对轴距之和很自然的想到将X,Y的距离分别存一个权值数组,因为两者都存在正负情况,这样的话就有4种情况,只用一个数组不好处理。先把关系存起来,因为询问时限制了使用关系的大小和顺序。(一开始没看懂题目意思)这样只要在合并的时候分清用权值合并哪个就好了。其他的就是带权并查集模板了。坑点这里的查询数C是不会往下减的 (也就是在查询时不用每次都初始化)多组输出,需要在每两组输出间空一行!AC代码#includ

2021-05-25 18:00:20 226

原创 POJ - 2912 石头剪刀布 带权并查集 + 枚举 写了挺久的

题目n个小伙伴进行猜拳有戏,除了一个比较聪明的家伙(小法官)以外,其他人只会出单一的一种,给出m中猜拳的结果,要求找出那个比较聪明的小伙伴序号,并且输出在第几次猜拳可以确定。(注意<,>,=前后可能有空格)法官可能不止一个,不止一个的时候输出 Can not determine法官可能不存在,不存在的时候输出 Impossible法官可以确定为一个时,输出法官的编号和在最少在第几次猜拳可以确定。题解思路因为没有比较好的翻译加上这题意思含糊不清导致写了很久。看了别人的题解,基本

2021-05-25 16:37:42 181

原创 POJ - 2492 带权并查集模板 多组输入切莫忘记初始化

题目题解思路0和1代表两种类型,当两个点权值差距为0时,就是找出BUG了。合并入树和压缩路径时对2取模即可。带权并查集模板坑点多组输入权值数组和祖先数组要初始化!AC代码#include <iostream>#include <cstdio>#include <map>using namespace std;int a[2010];int w[2010];int find2 (int x){ if ( x != a[x] )

2021-05-25 09:44:23 109

原创 POJ - 1733 带权并查集 模运算 利用map进行离散化 题目没看全导致疯狂WA

题目题解思路题目意思要开1e9的数组,但是这样会超限。要对输入的数据进行离散化处理。利用map构建一个hash映射。因为原来的序列的长度编号并没有对序列产生影响,例如 下图中1 10 1中 插入个 3 10 1 并此时3的编号为4,并没有让题目的数据关系产生改变!然后就是带权并查集了,根据之前的区间处理小技巧,要让左区间先自减,让两边闭合的区间变成左开右闭。然后就是维护这个树了,在两个点都在树里就能判断,没有就合并入树。因为题目只存在奇数或者偶数的情况,所以进行模运算,0代表偶数,1代表奇数。

2021-05-25 09:09:15 208 2

原创 ACwing 每日一题 3554. 二进制 auto 二进制转十进制 位运算 和闫总的思维差太多了

题目题解思路拿到题目知道是水题,但是我居然想着用char数组来模拟。这下坏了,用char得麻烦死,知道可以二进制转十进制,但是有点写不出,我就被卡了很久。看了wph大佬的代码,发现int数组直接就能做了,模拟进位就行了啊。再看闫总的代码,感受到了和大佬的差距。闫总直接存string,用auto枚举string的每一位,转成十进制,再写个从33位(因为可能32位加成了33位)开始十转二函数,33位为0就不输出,即可。感觉自己还是太弱了,水题也想的很复杂。要多提升思维啊!AC代码#includ

2021-05-24 20:00:52 104

原创 POJ - 1182 食物链 带权并查集 巧妙的模运算 大佬的思路

题目题解思路参考上一篇文章中大佬的带权并查集博客感觉这题能用一般并查集写,想了很久还是没有思路,换成带权并查集还是卡了很久。结果这题大佬讲了。运用模运算使权值的都在3一下,这样就可以代表分别输入哪个种类。再运用权值相减来判断是否合法。手模了几次。代码像是在维护一棵2层的树或者3层的树。一颗树树顶只有一个源点。当值没在树里是无法判断的,就有先合并进树的操作。这题卡cin和多组。AC代码#include <iostream>#include <cstdio>

2021-05-24 17:37:02 88

原创 HDU - 3038 带权并查集的学习 区间处理小技巧

题目题解思路有关带权并查集的学习 参考大佬的文章有关带权并查集的一些理解首先,带权需要多开一个带权的数组来处理权值。带权并查集的find 增加了对权值的更新 自带压缩路径int find2(int x){ if (x != a[x]) { int t = a[x]; //暂存父节点 a[x] = find2(a[x]); //寻找根节点并且合并 w[x] += w[t]; //找到根节点后 不断将根节点前的点的权值累加并更新 } //(递归思想) 最后x

2021-05-22 18:58:24 241 4

原创 HDU - 1213 并查集模板 统计无关的集合的数量 find请记得return

题目题解思路直接上并查集模板,初始化答案为 n ,每次合并的时候自减,最后输出就是正确答案了。可以理解为 每次合并一个人省了一条凳子 。一开始大家没有合并所以为 n 。AC代码#include <iostream>using namespace std;int a[1010];int ans ;int n,m;int find2(int x){ int r = x,t; while(r != a[r]) r = a[r] ; wh

2021-05-22 17:07:14 74

原创 POJ - 1611 并查集 模板 遍历累加 垃圾翻译坑人样例 我吐了

题目题解思路全部有关系的人都用并查集集合起来, 然后遍历父节点数组,有和0号一样的祖先的就累加即可,这里要压缩路径,以便以后的遍历父节点数组。这里翻译给了个坑人的样例,害我差点怀疑自己,翻译的样例不能信啊!!!!AC代码#include <iostream>#include <cstdio>#include <vector>#include <map>using namespace std;int n,m;int a[30010];i

2021-05-22 16:49:59 93

原创 POJ - 3169 差分约束 判负环 SPFA 图论 抽象最短路 邻接表

题目题解思路难点在用差分约束的条件建图,今天才学了点差分约束。结论 证明和有关差分约束的详解我们只要将题目的条件不等式符号,全转化为<=号,然后跑最短路,如果存在负环就是不能到达的,如果最短路跑不过去,那就是无限大。AC代码#include <cstdio>#include <iostream>#include <vector>#include <queue>using namespace std;int const

2021-05-22 14:46:55 94

原创 HDU - 1571 队列的运用 队列遍历小技巧 STL

题目链接题解思路用邻接矩阵存图,用队列来存上车的人,每次下车判断非空,判断有无一起下车的人(这里就需要遍历队列了),人满时不能入队,用指针记录车的位置,每次加上答案即可。遍历队列小技巧设置遍历次数(必须是常数)为原来的队列大小,用头入队尾再出队,这样遍历一遍头又变成尾。妙啊 tmp = q.front(); q.pop(); int k = q.size(); for

2021-05-21 17:39:16 219

原创 HDU - 1254 双BFS 坑题 被路径可重复卡了半天 还是想的太少了

题目链接题解思路一开始以为是水题,直接不考虑人对箱子BFS,激情一WA,认真看题后发现是双BFS!当箱子推的时候,人必须能在对应的位置上才能推。这时候就要对人BFS,此外人不能跑到箱子那个位置,所以我们对箱子BFS时要每次记录人和箱子的位置和箱子的步数。判断完发现还是WA了,太久没玩这个游戏了,箱子的位置时影响人能推的位置的,箱子是可以重复走一部分的路的。举例,此时人被困在墙里面只能向右边推箱子,人解放了之后把箱子推回去就可以到终点3了此题写起来虽然没有难度,但是想全方面还是挺难想的啊

2021-05-21 11:03:10 82 1

原创 HDU - 2709 DP 递推 找规律 找关系

题目题解思路DFS必然超时,考虑递推。手模几个找到规律。很容易想到奇偶分类,当为奇数是数值不变。当为偶数时就有点难搞了。将F(n)中含有1和全为2的幂次的子式分开,含有1的必然是F(n-1)中的式子加上+1。另外一部分全为2的幂次的子式,因为全为2的幂次,所以我们可以将子式都除以2,这样子式正好等于F(n/2)的子式。将两部分加起来就可以得到递推式了 dp[i] = (dp[i-1] + dp[i/2])%maxn;还是要多找规律!AC代码#include &

2021-05-21 10:39:03 99

原创 LightOJ - 1074 SPFA spfa判负环 + dfs染色法 + 最短路 有关染色法和负环的实验 多组输入切勿忘记初始化

题目题解思路1. 由于是立方差,所以存在负环,迪杰斯特拉就失效了。SPFA启动!2. 对于负环上的点,我们要进行染色处理(当这个点入队的次数大于N时,即用DFS跑出这个点能延申的所有区域)3. 负环,又叫负权回路,负权环,指的是一个图中存在一个环,里面包含的边的边权总和<0。4. 用染色法,将出现负环的点的连通分量全部染色,遇到被染色的点直接跳过!5. 多组样例,一定不要忘记初始化!!!关于 染色法因为存在负环导致1 2 3 4 的值都是假的 ,进而导致 5的值也是假的(尽管5不

2021-05-20 17:52:20 127

原创 AcWing每日一题2021.5.19 3483. 2的幂次方 递归 二进制

题目链接题解思路可以看出是递归,找到出口指数为1或者0的时候。因为是这个形式是有序的从大到小,所以我们先找出这个数 能用2的幂次 表示的最大的数 ( 利用位运算求出最大的数)此时求加号的处理需要特判,当数字不是第一次分解是才要加上加号。当取下来的数大于2,继续分解。例如8 用2(3)表示 二进制 1000利用位运算取出 i = 3; 即2的幂次的最大位。 2( dfs (3) )3 继续分解 二进制 112( 2 )此时 res 还是 string 还是空的 不+此时

2021-05-19 20:56:53 105

原创 POJ - 1511 链式前向星存邻接表 + 堆优化迪杰斯特拉+ 反向建图 图论 最短路

题目链接题解思路题目数据1e6,锁定(堆优化 迪杰斯特拉 )(nlogn)。边都是单向的,过去和回来走的路不同,所以我们要正反向建图两次,然后将dis的值全部加起来就行了!但是1e6貌似用不了vector(太占内存),只能 链式向前星!介绍下链式向前星int pot; // 标记边的数struct edge { //结构体存边 int to,next; //to和w是这个链表的数据 to指 这条边到的地方 w指权值 ll w; //next 是 指向下一

2021-05-18 21:41:22 161

原创 双BFS的迷宫 BFS

题目题解思路先让毒跑走完,能走的路,并且标记该点用的时间,再对人进行BFS(用毒走的时间进行限制)即可 。可以对毒进行剪枝操作,当该毒走到该点的时间小于之前走过的时间时,才能进行进一步操作。这样要对时间初始化最大值。 if ( dutime[tmm.x][tmm.y] > tmm.time) { dutime[tmm.x][tmm.y] = tmm.time;AC代码#include <iostream>#includ

2021-05-16 19:23:08 57

原创 HDU - 1114 完全背包 空间优化 求最小值

题目题解思路参考完全背包 超详细 讲解视频状态方程 不同于01背包当我们求最小值时 将第零列初始为0其他初始为最大值 ,每次取最小值。最大时,其他初始化为0,每次取最大即可。完全背包可以进行 空间优化 。因为 更新的时候要么就是从上边要么从之前小容量的值。这样就可以将二维降为一维! if ( k < z[i] ) dp[k] = dp[k]; else dp[k]

2021-05-15 14:50:16 248

原创 封印之门 抽象最短路 看懂题目

题目链接题解思路首先要看懂题目,一次操作只能改变一个字符,不是多个!!!这样我们可以抽象出题目是求每个字母到每个字母的最短路再扫一遍加起来!AC代码#include <iostream>#include <cstring>#include <cstdio>#include <vector>#include <queue>#include <map>#include <string>using

2021-05-14 16:51:38 91

原创 计蒜客 - A1603 二维前缀和 对边界要特殊处理 一点有多个星星!!!

题目链接题解思路看得出是前缀和,但是当时只会一维的。原来二维是动态规划思想 !前缀和和差分的讲解 参考 大佬的博客裸的二维前缀和对0边进行特殊处理即可,还有就是注意重边!!!WA了好久。AC代码#include <iostream>#include <cstring>#include <cstdio>#include <vector>#include <queue>#include <map>#includ

2021-05-14 11:08:35 127

原创 POJ - 3259 SPFA判断负环 队列优化 邻接表 超级源点 图论

题目链接题解思路当存在负环时,时间就能通过负环不断减去。这样就能回到截止之前。判断思路和正环类似,代码和最短路类似,取小的一方,当一个点被松弛超过 N次时 ,存在负环 。调了半天发现double存int变0了。AC代码#include <iostream>#include <cstdio>#include <vector>#include <cstring>#include <queue>using namespace s

2021-05-13 16:50:57 118

原创 POJ - 1860 最短路 SPFA 判断正环 模版 写了很久

题目题解思路题目不容易理解,用迪杰斯特拉好像不行,这里好像用源点出发容易理解点,用邻接表存图 (一开始佣金汇率输入反了 痛苦啊 )。因为每一步的有的钱兑换出来的钱是不一样的可能亏可能赚,所以最好就以源点出发来进行对钱的兑换,从存入dis数组。当一个dis的值被松弛的次数比 N还多时(在某个地方被多次松弛) 就存在正环 ! 就是不断加钱,刷钱的感觉。此时return即可!SPFA对每个点都可能多次入队 ,当可以松弛时,被松弛的点可能又入队,就可以多次松弛,这样就可以判断正环和负环!最短路也是行的

2021-05-13 11:33:58 134

原创 HDU 4725 层级最短路 思维建图 邻接表 堆优化迪杰斯特拉 真的难想 区域网络赛真题

题目题解思路知道是最短路,怎么建图呢?一开始想到每层来一个超级源点,但是方向不知道怎么确定,用双向边果然WA了(如果是双向边,那一层的都会变成0费连通了 )。翻了翻 大佬的博客大佬定义了一种规则,让这个超级源点实现了功能对于上下层的源点,进行 点 到 源点 单向连通对于本层源点进行 源点 到 点单向连通思考一下 如果反过来 也是可行的属实巧妙啊!然后就是跑最短路了,这里是10的5次方,朴素的迪杰斯特拉肯定会TLE,刚好没用过堆优化和邻接表,试试水!堆优化 记得重载运算符

2021-05-12 17:59:02 166 1

原创 POJ - 3660 确定排名 弗洛伊德 图论 打赢的人加打输的人总和为n-1

题目题解思路弗洛伊德当两个点产生一条路可以比 用第三个点和前两个点产生的合并路更短的话 松弛它。换到这题当 i 被 K 打败 但 i 打败了J 这样我们可以得出 K打败了J for (int i = 1 ;i <= n ; i++ ) for (int k = 1;k <= n ;k++ ) for (int j = 1; j<= n; j++) { if (mp[k][j]

2021-05-11 19:56:32 70

原创 POJ - 1062 昂贵的婚礼 超级源点 枚举区间 最短路 未优化的迪杰斯特拉实现 图论

题目题解思路此题难点应该在于建图吧,认真读题抽象出单向的图,然后建立个超级源点与每个点用原价相连。用源点跑最短路,dis[1]就是答案。但是坑就坑在区间!这题居然有比酋长地位高的人!!!所以区间未必以酋长为上限,当然酋长也有可能是下限!枚举区间在加入松弛点或者进行松弛的时候加入判断,然后更新每次的最小值即可! for (int j = lvmax - dins ;j <= lvmax + dins ; j++ ) //枚举区间下限j { in

2021-05-11 16:07:23 89

原创 POJ - 1797 最短路变式 求路径中 最大的最小边

题目题解思路求两点之间 路径中 最大的最小边和上一题有点类似,还是根据迪杰斯特拉的思想,如何保证此时路径最大呢? 我们只要在松弛的时候,每次取和原点的路径最大的点来进行松弛,就可以保证此时松弛出来的结果是最大的了。然后每次取最小的边即可。AC代码#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;const in

2021-05-09 17:16:05 264

原创 POJ - 2253 最短路变式 求路径中的最小的最大边 采用未优化的迪杰斯特拉 这题瞎改一波代码居然一波AC了 真神奇

题目题解思路首先用邻接矩阵存放每个点直接的距离,两块石头之间的青蛙距离被定义为两块石头之间所有可能路径上的最小必要跳跃距离,某条路径的必要跳跃距离即这条路径中单次跳跃的最远跳跃距离。算Alice和Bob石头之间的青蛙距离。核心代码 就在这里 其他和迪杰斯特拉模板 都 差不多 if ( mp[t1][j] < 999999 ) if ( dis[j] > max (dis[t1],mp [t1][j] ) ) {

2021-05-09 16:43:51 101

原创 HDU2082 母函数模板题 终于Ac了啊啊啊啊啊啊

题目链接题解思路直接用母函数把幂次小于等于 50 大于0的 系数全加起来即可。有关母函数 和 多项式乘法 的证明和讲解见 链接AC代码#include <bits/stdc++.h>using namespace std;#define ll long longint a[30];ll tmi[200];ll ans[200];int main(){ int t; cin>>t; while(t--) { me

2021-05-07 12:16:58 76

原创 HDU 2079 组合数学-母函数 多项式乘法求系数 初始化1

题目链接题解思路有关母函数的理解,我看了好久的博客,终于翻到一位能让我看明白的大佬的博客 地址幂次就是方法的权重,而系数就是该权重的方法总数!现在就是解决多项式乘法求系数的问题了。用3层循环,最外层记录现在处理的括号是哪个,中层循环,对应每个要被乘的幂次,内层循环处理括号内每个数和幂次相乘求出系数。中层还要有临时数组给最终数组输入值,再将临时数组清除。(因为在求幂系数的时候需要最终数组原有的系数再加上新增的系数,这样只能多取一个数组)有一点关键的是在求系数是要个幂次为0的系数初始化值为1, 不

2021-05-07 11:53:13 256

空空如也

空空如也

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

TA关注的人

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