自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(726)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 【OpenJudge NOI】题解目录

【OpenJudge NOI】题解目录OJ链接:OpenJudge NOI以下为本人做的OJ题解针对每一道题我都会给出题目考点、解题思路、题解代码。必要时也会给出不同的解题方法。本人水平有限,如有不足之处,欢迎大家指正。如看过后还有不明白的地方,欢迎在评论区留言。作者:君义_noip1.1编程基础之输入输1 Hello, World!:点击这里2 输出第二个整数:点击这里3 对齐输出:点击这里4 输出保留3位小数的浮点数:点击这里5 输出保留12位小数的浮点数:点击这里6 空格分隔输

2021-01-16 15:57:24 48207 20

原创 【信息学奥赛一本通】题解目录

【信息学奥赛一本通】题解目录信息学奥赛一本通OJ以下本人做的OJ题解针对每一道题我都会给出题目考点、解题思路、题解代码。必要时也会给出不同的解题方法。本人水平有限,如有不足之处,欢迎大家指正。如看过后还有不明白的地方,欢迎在评论区留言。作者:君义_noip基础(一) C++语言第一章 C++语言入门1001 Hello,World!:点击这里1002 输出第二个整数:点击这里1003 对齐输出:点击这里1004 字符三角形:点击这里1005 地球人口承载力估计:点击这里第二章 顺序

2021-01-12 03:35:08 146976 38

原创 本空间介绍

本人从事信息学奥赛教学工作。将在该博客分享编程、算法知识以及OJ题解。主要涉及NOIP普及组难度的知识及习题相关OJ网址:信息学奥赛一本通OJOpenJudge NOI洛谷

2020-12-24 23:45:29 1219 1

原创 CSP-J 2024 入门级 第一轮试题(初赛)答案及解析

答:Cint是32位有符号整型,当机器数为0111 1111 1111 1111 1111 1111 1111 1111时,表示的数值最大,为231−1当机器数为1000 0000 0000 0000 0000 0000 0000 0000时,表示的数值最小,为−231因此int可以表示的数值范围为−231∼231−1,算出来的结果是−2147483648∼2147483647,选C。

2024-09-26 17:48:44 991

原创 CSP-J 2024 入门级 第一轮(初赛) 完善程序(2)

最后将i-1层汉诺塔从tmp柱临时经过src柱移动到tgt柱,第(4)空填tmp, src, tgt,选B。对于一般情况,应该先将i-1层汉诺塔从src柱临时经过tgt柱移动到tmp柱,第(3)空填src, tgt,tmp,选B。结合字面意义,可以得知调用dfs函数的意义是:将i层汉诺塔从src柱临时经过tmp柱移动到tgt柱,。在dfs函数中,move的实参应该传dfs函数中的src和tgt,第(2)空填src, tgt,选B。move函数的参数src、tgt表示要从src柱移动到tgt柱。

2024-09-26 17:45:54 429

原创 CSP-J 2024 入门级 第一轮(初赛) 完善程序(1)

(1) (判断平方数) 问题:给定一个正整数 n,判断这个数 是不是完全平方数,即存在一个正整数 x 使得 x 的平方等于 n。我们可以枚举所有可能的i,i最小时应该为1(因为当n为1时,x应该为1,此时判断出n是完全平方数),因此第(1)空填1,选A。根据主函数中isSquare的用法可知,isSquare函数的作用是判断num是否是完全平方数。的数字的平方都不为num,那么num不是完全平方数,返回false,第(5)空选D。如果一个正整数n是完全平方数,那么一定存在正整数i满足。当n是完全平方数时,

2024-09-26 17:18:13 383

原创 CSP-J 2024 入门级 第一轮(初赛) 阅读程序(3)

但递归实际上不会无限进行下去,每次递归调用都会在栈区占一定的空间,当栈区没有空间时,会发生栈溢出,产生运行时错误。可以通过c[a-1][b-1]推出c[a][b]。那么就可以通过c[0][0]推出c[1][1]再推出c[2][2]再推出c[3][3]。“无限递归”如果指的是一种表象,看起来在不停地递归调用,程序无法停止,那么该叙述是正确的。设c[a][b]的值为customFunction(a, b)的返回值。实参y是形参b的值,该函数的运行时间随着b的增大而增大,叙述正确。

2024-09-26 16:45:11 545 1

原创 CSP-J 2024 入门级 第一轮(初赛) 阅读程序(2)

类型的对象v,其中包含10个元素,每个元素都是3。也就是说v.size()为10,v[0]~v[9]都是3。将dp[i-1]改为dp[i-3]后,当i为2时,执行到这一句。的下标为-1,数组下标越界,会产生运行时错误,而不是编译错误。输出min(dp[3], dp[2])=15,叙述正确。输出min(dp[3], dp[2]) = 10,选A。输出min(dp[10], dp[9])=6,选A。输出min(dp[7], dp[6])=30,选B。最后结果为:dp[n]和dp[n-1]的较小值。

2024-09-26 12:57:57 961

原创 CSP-J 2024 入门级 第一轮(初赛) 阅读程序(1)

isPrime函数一定会返回false,那么isPrime函数就失去了判断n是否为质数的功能,因此将不能正确计算10以内的质数个数和加和,选A。输入20时,countPrimes函数返回的仍然是1~20中的质数个数,有。的所有整数,如果存在n的约数,那么n不是质数。countPrimes函数统计1~n中的质数个数。如果枚举从2到n的所有数字,那么当i为n时,一定有。sumPrimes函数统计1~n中的质数加和。isPrime函数判断传入的n是否是质数。,所以i从2循环到n/2和i从2循环到。

2024-09-26 12:15:45 954

原创 CSP-S 2024 提高级 第一轮试题(初赛)答案及解析

1.在 Linux 系统中,如果你想显示当前工作目录的路径,应该使用哪个命令?( )A. pwdB. cdC. lsD. echo答:Apwd (英文全拼:print work directory) 命令用于显示工作目录。cd (英文全拼:change directory)命令用于改变当前工作目录的命令,切换到指定的路径。ls (英文全拼: list directory contents)命令用于显示指定工作目录下之内容。

2024-09-26 01:27:52 851

原创 CSP-S 2024 提高级 第一轮(初赛) 完善程序(2)

如果终点b

2024-09-26 01:19:31 684

原创 CSP-S 2024 提高级 第一轮(初赛) 完善程序(1)

以及已知b数组的下标范围为[0, n),那么可知upper_bound的意义是:在左闭右开区间[a, an)指向的序列范围内找ai的上界,也就是大于ai的最小值的最小下标,这和STL中upper_bound的参数概念相同。而后遍历a数组,在a数组中选出元素a[i],而后看一下在b中有多少个元素与a[i]相加的结果都是小于等于sum的。在加和小于等于mid的数对的个数为k个的前提下,当mid不断减小直到最小时,mid就是第k小的数对的加和。第(2)空填需要满足的条件,二分求的是大于ai的最小值。

2024-09-25 23:27:41 777

原创 CSP-S 2024 提高级 第一轮(初赛) 阅读程序(3)

的认定是不同的,两个基数也不同,不同串经过两种哈希过程得到相同哈希值都相等的概率很小,我们可以认为不会出现哈希冲突。solve函数中,i从n到1循环,将h[i]的哈希值设为H(p[i]),可以理解为生成一个长为1的串,如果p[i]为true,串就是"1";(见【题目考点】4)观察solve函数,i从n循环到1,循环内无论是H类对象的构造函数,还是H类对象的+运算,都是O(1)复杂度。因此该循环的复杂度是。lb为序列的下界,ub为序列的上界,下界与上界的类型为指针或迭代器,表示左闭右开区间[lb, ub)。

2024-09-25 22:18:20 933

原创 CSP-S 2024 提高级 第一轮(初赛) 阅读程序(2)

例:如j为0,s[i]为’1’,那么k = (j

2024-09-25 01:20:30 1031

原创 CSP-S 2024 提高级 第一轮(初赛) 阅读程序(1)

前面的下标i选择大于等于pivot的元素,后面的下标j选择小于等于pivot的元素,二者交换。选择c[0]为标杆元素,从前向后找第一个大于等于c[0]的元素是c[0],从后向前找第一个小于等于c[0]的元素为c[4],二者交换,由于二者的数值都为5,所以c数组从数值角度来看没有变化。当B不是A的子集时,a ^ b表示的是在A中但不在B中的元素,以及在B中但不在A中元素构成的集合,即。表示在X中但不在Y中的元素,以及在Y中但不在X中元素构成的集合,也就是。,也就是在集合Y中但不在集合X中的元素构成的集合。

2024-09-24 22:18:45 1125

原创 CSP-S 2023 提高级 第一轮(初赛) 完善程序(2)

观察选项,A和C中涉及到了a[i]或a[i-1],pre的下标i和a的下标i之间存在pre[i] == a[mid+i]这样的关系,而pre[i]和a[i]没有直接关系,表达式中不应该出现a。例如,当原序列为 [1,2,1,2]时,要计算子序列 [1]、[2]、[1]、[2]、[1,2]、[2,1]、[1,2]、[1,2,1]、[2,1,2]、[1,2,1,2]的最大值之和,答案为 18。,pre[i]更新后的意义为pre[0]~pre[i]的最大值,也就是a数组区间[mid, mid+i]的最大值。

2024-09-18 09:50:41 766

原创 CSP-S 2023 提高级 第一轮(初赛) 完善程序(1)

根据拓扑排序的算法,如果v的入度减少1后入队,而现在是在v的入度减少前判断,如果满足该条件就将v添加进Q,那么此时应该填的条件为v的入度为1,则把Q加入顺序表Q。而后遍历u的邻接点v,对于每个顶点v,都有f[v]个从v出发的路径,根据拓扑排序的顺序,此时f[v]的值已经确定了。先对cand进行从小到大的排序,根据主函数中的代码,cand要么是Q,要么是E[u],vector中保存的都是顶点编号,因此此处是根据顶点编号从小到大排序。,也就是代码中的LIM,因此f[u]的最大值如果超过LIM,就是设为LIM。

2024-09-16 21:06:18 961

原创 CSP-J 2019 入门级 第一轮(初赛) 完善程序(1)

结合划分子矩阵的方案,可以知道,(x, y+step)是右上方子矩阵的左上角位置,(x+step, y)是左下方子矩阵的左上角的位置,因此第(2)空应该填左上方子矩阵左上角位置(x, y),选D。当前函数传入t,指的是当前矩阵左上角值为t,而后前三次递归调用传入的都是t,表示左上、右上、左下的子矩阵的左上角的值和整个矩阵左上角的值相同,第四题递归调用时传入的是!的矩阵,其中左上、右上、左下的子矩阵的左上角的值和整个矩阵左上角的值相同,只有右下方子矩阵左上角的值与整个矩阵左上角的值不同。

2024-09-16 10:31:38 1049

原创 CSP-S 2023 提高级 第一轮(初赛) 阅读程序(3)

而后进行二分,二分的的范围(也就是起始时上界减下界)为h-g,h为a中最大值减最小值,该题说a中最大值减(最小值加1)为A,所以A为h-1(另一种理解可以理解为A=h+1,但都不影响结果),该二分查找的比较次数为。也就是说,数对(a[j], a[i]),(a[j+1], a[i]),…因此差值最小为5,该题正确。当遍历到第i元素a[i]时,只要a[i]和a[j]的差值大于m,j就增加。下一次循环i增加,看当前a[j]和a[i]是否满足a[i]-a[j]

2024-09-14 17:25:09 1290 1

原创 CSP-S 2023 提高级 第一轮(初赛) 阅读程序(2)

而将g[j]设为k,即为将g[j]设为i,不符合g[j]表示j的最小质因数在j中的幂的概念,接下来再计算结果很可能不一样。的数字,所有合数已经在上述埃筛过程中设好了f和g数组的值,质数还没有设,把质数i的最小质因数设为i,最小质因数的幂也设为i。接下来for冒号遍历顺序表d,k就是按顺序每次取出的d中的元素,即保存在其中的i的幂。i从1到n循环,先看1的贡献,再看2的贡献,。的时候,发现j是k的倍数,因此j分解质因数后,其最小质因数的幂为k。观察j遍历的顺序,先取较大的i的幂,再取较小的i的幂,当k为。

2024-09-13 14:19:51 1257

原创 CSP-S 2023 提高级 第一轮(初赛) 阅读程序(1)

由于一些计算过程中机器数中的1比较少,表示一个机器数可以不用写出机器数的每一位,只需要标出其有1的位置即可。输入的x不超过65535,说明输入的数字在unsigned short可以表示的数字范围内。6.当输入为 64 时,执行完第 5 行后 x 的值为()。的低6位为0,为了保证结果为0,那么x的低6位也为0。的第13到第16位为0,那么x的第13到16位为0。的第7到12位为0,那么x的第7到12位也为0。6. 当输入为 512 时,输出为()。5.当输入为 512 时,输出为()。

2024-09-13 12:00:49 868

原创 CSP-J 2021 入门级 第一轮 完善程序(1)

判断当前数1还是数0的变量应该是p(就剩下p变量没有用了),p为1表示应该数1,p为0表示应该数0。因此第(2)空应该填p为1,作为判断条件,p为1、p为真、或只写p的效果是一样的。第(4)空为p的变化,p应该是如果是0就变1,如果是1就变0,从0号开始,依次0,1,0,1,…i是F数组的下标,应该对F数组进行循环遍历,直到只有一个元素还在,i遍历到n-1时,i的下一个位置是0,因此第(5)空应该填i的变化方式,即。如果F[i]为0,也就是i还在,那么接下来就该考虑第i人是否数到1,如果数到1就该离开。

2024-09-11 18:11:11 557

原创 CSP-J 2019 入门级 第一轮(初赛) 阅读程序(3)

最好情况下,每次选出的最小值的位置在区间的中点,这样将整个区间分为两个子区间,遍历两个子区间的长度加和为n。对于长为i的区间,如果a数组最小值下标为区间的第x位置,则将其分为长为x-1和长为i-x两段区间,两段区间生成的树的结点层数加和分别为。最坏情况下,每次选出的最小值在区间的左端或右端,这样下一次面对的区间的长度是上一次面对的区间长度减1。为了使结果最大,那么应该让第1层的值为1,第2层的值为2,。整个区间不断一分为二,直到每个区间长度为1,也就是在求n除以2多少次后为1,除的次数为。

2024-09-11 12:46:41 942

原创 CSP-S 2022 提高级 第一轮试题(初赛)答案及解析

答: Bls的作用是列出当前目录中的所有文件cd是切换目录cp是复制文件Linux中没有all命令答:Areal: 总的运行时间,从命令开始执行到结束的时间,包括等待CPU时间和其他进程时间。user: 用户CPU时间,即在用户态下花费的时间,不包括用于内核操作的时间。sys: 系统CPU时间,即在内核态下花费的时间,比如执行系统调用所花费的时间。秒表计时的时长接近于程序运行的总时间,即real后面显示的时间。

2024-09-08 18:05:41 2834

原创 CSP-S 2022 提高级 第一轮 完善程序(2)

就说明从当前容器1有x升水容器2有y升水经过一次操作后使得容器1有M升水容器2有N升水,而后不断操作直到某容器有c升水的操作步数和从当前容器1有x升水容器2有y升水不断操作直到某容器有c升水的最少操作步数。求出),加上刚才的一次操作得到的操作序列,就是一个备选的从容器1有x升水容器2有y升水的情况下经过不断操作直到某容器有c升水的操作序列。如果该操作序列的步数比已知的最小步数。相同,那么该操作就是可行的,输出这一次的操作,然后再输出从容器1有M升水容器2有N升水,到某容器有c升水的操作序列。

2024-09-08 17:57:09 1349

原创 CSP-S 2022 提高级 第一轮 完善程序(1)

如果left1不为0,即p1不为0,由于p1+p2=k,有p2=k-p1,其在a2中的下标为k-p1-1即k-left1-1。如果left2不为0,即p2不为0,由于p1+p2=k,有p1=k-p2,其在a1中的下标为k-p2-1即k-left2-1。如果left1为0,即p1为0,那么由于p1+p2=k,p2必须为k,其在a2中的下标为k-1,所以返回a2[k-1]。如果left2为0,即p2为0,那么由于p1+p2=k,p1必须为k,其在a1中的下标为k-1,所以返回a1[k-1]。

2024-09-07 00:39:51 1204

原创 CSP-S 2022 提高级 第一轮 阅读程序(3)

而后从高位到低位遍历,输出分离出的各个数字,对于大于等于10的数字,将其转为大写字母输出,其中’A’表示10,'B’表示11,……假设输入的 n 在 int 范围内,k 为不小于 2 且不大于 36 的正整数,完成下面的判断题和单选题:。则a除以-b的实数商为-c,-c和c是相反数,相反数向零取整的结果也互为相反数,所以-c向零取整为-q。,结合m初值为0,可以看出这是在做数组填充,填充的数在ans数组中的下标范围是0~m-1。,而后n变为n除以k的商并将符号取反,将取出的数字从后向前排列,即为结果。

2024-09-06 17:31:39 1383 1

原创 CSP-S 2022 提高级 第一轮 阅读程序(2)

最后一次按第m-1位从小到大排序,每次排序使用的是计数排序的方法,共有基数个数个桶(即k个桶,也就是指。,对于val数组中第i为数字相同的各个数值,在val数组中靠后的数值,赋值到temp数组中也应该是靠后的。因为有进行n次的循环(第29、31、35行),该题没有给出n是多少,n的大小会影响运算次数,因此无法只靠k的大小决定运算次数。而后j从0~n-1循环,n是数值个数,为val数组的长度,因此这一次循环是遍历val数组。接下来下一个第i位的数字为x的val数组中的数值,可以认为是排序后的第。

2024-09-06 14:09:17 1384

原创 洛谷 P1379 八数码难题

则每个布局共有9个位置:(1,1), (1,2), (1,3), (2,1), (2,2), (2,3), (3,1), (3,2), (3,3)。再次移动后,又可以达到几种布局,所有的布局(状态)构成一个解空间树。在广搜过程中,需要判断当前布局是否是先前已经出现过的布局,如果先前已经出现过,则不需要将该状态入队。设set或unordered_set类型的vis,如果某布局已经出现,则将该布局转为整数加入vis。9个数字构成的3乘3布局作为一个状态,每次移动数字后,布局发生改变。

2024-09-04 12:00:08 394

原创 OpenJudge NOI 1.1 01:Hello, World!

【代码】OpenJudge NOI 1.1 01:Hello, World!

2024-07-19 16:35:44 548

原创 数学取模相关概念

(当b为long long类型时,需要自己写求long long类型绝对值的函数)。C++/Java/C#/JavaScript中,整除商为实数商向0取整。,由于数学中余数不能为负,所以将等式调整为余数大于等于0。数学中(以及python中),整除商为实数商向下取整。综合以上所有情况,在各种情况下都满足。因此两种整除定义下的余数不同。数学中的余数一定是非负整数。该式叫做带余除法,记余数。商向0取整,则除法等式为。,mod为数学取余运算。数学中整除及余数的定义。,%为C++取模运算。商向下取整,除法等式为。

2024-06-18 12:42:19 1143

原创 随机生成序列的某一排列

随机生成1~n的某一排列,要求生成每种可能的排列的概率相同。中的随机某元素交换,最后a数组即为随机生成的某一排列。对于任意给定的排列,按照上述算法得到该排列的概率都是。第1次交换,在第1~n个数中选择。第2次交换,在第2~n个数中选择。第n次交换,在第n~n个数中选择。给定数值分别为1~n的序列a,循环变量i从1到n,每次循环将。原序列a,每个元素的值分别为。根据乘法原理,生成排列。

2024-05-29 17:43:25 933

原创 证明:每次循环执行i = (i-1)&s可以枚举s表示集合的所有非空子集i

状态压缩:使用二进制数表示一个集合的情况,第i位为1表示第i元素在集合中,为0表示不在集合中。已知i表示的集合是s表示的集合的子集,枚举s的所有子集i可以写为。

2024-04-23 00:22:40 501

原创 证明:有依赖背包结点数优化后为O(n^2)

洛谷 P2014 [CTSC1997] 选课 使用结点数优化。表示根结点为u的树的根结点加上前i个子树的结点数。设结点u有k个子树1、2、3、…设根结点为u的树的结点数量为n,表示以u为根的树的结点数。证明:上述代码的复杂度为。每个子树的结点数分别为。

2024-04-10 22:18:01 1182

原创 线段树相关概念证明

设该线段树根结点表示区间长度为k,k一定是奇数,左子树区间长度。的满二叉树,顺序存储结构需要的空间为高度为。因此表示线段树的数组长度一般设为4N。综上,区间长度为n的线段树的高度为。所以高为h的满二叉树的结点数为。,线段树结点最多时为高度为。高为h的满二叉树的结点数为。对于线段树中任何分支结点。因此右子树是满二叉树。,这与上述情况相悖。的满二叉树的结点数。

2024-03-01 02:11:06 1066

原创 证明:如果一个字符串的最小循环节是不完全循环节,那么该字符串没有完全循环节

s[i]或sis_isi​表示字符串的第i个字符,从0开始。使用python切片写法表示字符串的子串s[x:y]表示字符串s下标范围为左闭右开区间[x, y)中的字符s[:y]等价于s[0:y]s[x:]等价于s[x:n]循环节:若某个字符串是由某个子串循环多次构成的,那么就称该子串为原串的循环节。(本文中循环节循环次数满足大于1次)sisikTsi​sikT​,k是整数。完全循环节:字符串由若干完整的循环节构成,这样的循环节叫完全循环节。

2023-12-28 16:07:37 1245

原创 洛谷 P1181 数列分段 Section I

每次从第1个未被选择的数字开始,选择尽量长的满足加和小于等于m的子段。表示数字序列的第i个数字。顺序遍历数组,对于每个元素。记整个数字序列为数组a,

2023-11-17 17:18:13 569

原创 信息学奥赛一本通 1435:【例题3】曲线 | 洛谷 洛谷 P1883 函数

已知f(x),g(x)两个函数的较大值h(x)=max(f(x),g(x))是下凸函数,那么多个函数的最大值。【注】:r与l差值很小时结束循环,对于一般的结果保留几位小数的问题(比如保留5位,8位等),将差值取为。已知f(x),g(x)为下凸函数,证明h(x)=max(f(x),g(x))是一个下凸函数。在定义域[0,1000]中是下凸函数(单谷函数),因此可以使用三分求单谷函数的极小值点。,即为所有二次函数当自变量为x时的所有函数值的最大值。,所以所有的二次函数都是开口向上的,为下凸函数。

2023-11-17 14:39:43 686

原创 信息学奥赛一本通 2077:【21CSPJ普及组】小熊的果篮(fruit) | 洛谷 P7912 [CSP-J 2021] 小熊的果篮

交替在st0与st1中选择数字,下一次在另一个集合中选择出的数字要比上一次选择出的数字更大,并删除数字。如果当前fruit链表在删除数字后,成为空链表,那么需要在block链表中删除该空链表,并判断前一个链表和后一个链表的水果种类是否相同,如果相同,则合并两个单链表(即把后一个链表接到前一个链表的后面)。每次遍历block链表,在block链表中的每个“块”中(fruit链表)取第一个数字输出,并删除fruit链表中的第一个数字。创建一个block双向链表,block链表中的每个元素都是一个“块”。

2023-10-09 20:08:48 1179

原创 洛谷 P1148 拱猪计分

设布尔数组h,用来记录是否有牌Hi。设布尔变量s12, d10, c10,表示是否存在S、D和C牌。D10与D11都可能出现,D10作用与D11相同。如果D10与D11同时出现,只算有1张D牌。当H1~H13都有,但D或S只有1个时:D牌作用:-100分,S牌作用:+100分。按照题目描述,根据该玩家手中存在的牌的种类,计算分数。

2023-10-04 14:33:30 692

七段码 HUSTOJ 题目导出文件

七段码 HUSTOJ 题目导出文件

2023-03-14

Java控制台猜数字游戏

文曲星上有过的那种猜数字游戏,输入一个数字,返回A,B作为线索。用最基础的控制台编程实现。 该程序应用了输入,输出,异常处理,正则表达式,字符串处理等基本操作语句,做这个小程序,对初学者掌握基本语句很有帮助。

2011-06-28

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

TA关注的人

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