鱼C论坛

 找回密码
 立即注册
查看: 4065|回复: 33

[已解决]鱼C论坛python精英挑战赛(02期)

[复制链接]
发表于 2017-6-20 00:28:57 | 显示全部楼层 |阅读模式
100鱼币
本帖最后由 jerryxjr1220 于 2017-6-20 14:42 编辑

Python的编程技能还是要靠平时不断地练习才能提高,为了提高大家的积极性,特别设立了这个精英挑战赛,希望大家多多参与!

本期挑战赛限时3天,截止日:6月22日24时,参赛人员:python论坛任何人员(包括版主)。

截止日后,从所有提交的解答中评选出最优秀的解答,奖励100鱼币。评选依据:答案正确,用时较短,代码优雅。

另外,如果有创意的解题方法,会酌情追加奖励!

本期题目:非负整数进制转换

我们按照62进制的 [ 0 ~ 9, A ~ Z, a ~ z]的顺序 与 [ 0 ~ 61]一一对应。如果<62进制,则靠前匹配。如36进制 [0 ~9, A ~ Z]与[0 ~ 35]一一对应。

那么,36进制的“FISHC”如果转化成16进制就应当是“18DCFB0”。 62进制的“FISHC”如果转化成26进制就应当是“J0GO26”。

显然,“18DCFB0”至少是16进制,因为“F"表示15。

现在请设计一个进制计算函数Calc(rawdata,newdata),输出原始的进制n和转化后的进制m,如Calc(“FISHC”,“18DCFB0”)-> (36,16)。

注意若输出有多个答案,应当遵循n和m都尽可能小的原则。n和m的取值范围:2<=m, n<=62。rawdata和newdata为字符串格式,字符串长度1 ~ 128位.

测试数据集:
  1. Test = [('A', '11'),
  2.         ('18', '18'),
  3.         ('ABC', '41I'),
  4.         ('3d8B', '254731'),
  5.         ('FISHC', '18DCFB0'),
  6.         ('python', 'B1687AEA1'),
  7.         ('10110111010010010010101000101010', '11TIFA8BPMTL0'),
  8.         ('10110111010010010010101000101010010101010101010010101001010100101101010101010010101001010100101010101010010101001010010101001010', '5Zr1zn3pm5znjGepqkPmDC')]
复制代码


本期挑战的题目已经降低难度,欢迎大家积极参与!

@SixPy @冬雪雪冬 @~风介~ @小甲鱼
最佳答案
2017-6-20 00:28:58
  1. import string
  2. a = string.printable[:62]
  3. a = a[:10] + a[-26:] + a[10:36]
  4. str_table = dict((a[i],i) for i in range(len(a)))

  5. def convert(a, n):
  6.     x = 0
  7.     for each in a:
  8.         x += str_table[each]
  9.         x*= n
  10.     return x//n

  11. def findmax(a):
  12.     mmax = 0
  13.     for each in a:
  14.         if str_table[each] > mmax:
  15.             mmax = str_table[each]
  16.     return mmax + 1

  17. def calc(a, b):
  18.     m = findmax(a)
  19.     n = findmax(b)
  20.     for i in range(m, 63):
  21.         for j in range(n, 63):
  22.             if convert(a, i) == convert(b, j):
  23.                 print((i, j))
  24.                 return i, j

  25.    
  26. Test = [('A', '11'),
  27.         ('18', '18'),
  28.         ('ABC', '41I'),
  29.         ('3d8B', '254731'),
  30.         ('FISHC', '18DCFB0'),
  31.         ('python', 'B1687AEA1'),
  32.         ('10110111010010010010101000101010', '11TIFA8BPMTL0'),
  33.         ('10110111010010010010101000101010010101010101010010101001010100101101010101010010101001010100101010101010010101001010010101001010', '5Zr1zn3pm5znjGepqkPmDC')]

  34. for each in Test:
  35.     calc(each[0], each[1])
复制代码

结果是
(11, 9)
(9, 9)
(16, 26)
(40, 10)
(36, 16)
(62, 16)
(4, 36)
(2, 62)

最佳答案

查看完整内容

结果是 (11, 9) (9, 9) (16, 26) (40, 10) (36, 16) (62, 16) (4, 36) (2, 62)

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-20 00:28:58 | 显示全部楼层    本楼为最佳答案   
  1. import string
  2. a = string.printable[:62]
  3. a = a[:10] + a[-26:] + a[10:36]
  4. str_table = dict((a[i],i) for i in range(len(a)))

  5. def convert(a, n):
  6.     x = 0
  7.     for each in a:
  8.         x += str_table[each]
  9.         x*= n
  10.     return x//n

  11. def findmax(a):
  12.     mmax = 0
  13.     for each in a:
  14.         if str_table[each] > mmax:
  15.             mmax = str_table[each]
  16.     return mmax + 1

  17. def calc(a, b):
  18.     m = findmax(a)
  19.     n = findmax(b)
  20.     for i in range(m, 63):
  21.         for j in range(n, 63):
  22.             if convert(a, i) == convert(b, j):
  23.                 print((i, j))
  24.                 return i, j

  25.    
  26. Test = [('A', '11'),
  27.         ('18', '18'),
  28.         ('ABC', '41I'),
  29.         ('3d8B', '254731'),
  30.         ('FISHC', '18DCFB0'),
  31.         ('python', 'B1687AEA1'),
  32.         ('10110111010010010010101000101010', '11TIFA8BPMTL0'),
  33.         ('10110111010010010010101000101010010101010101010010101001010100101101010101010010101001010100101010101010010101001010010101001010', '5Zr1zn3pm5znjGepqkPmDC')]

  34. for each in Test:
  35.     calc(each[0], each[1])
复制代码

结果是
(11, 9)
(9, 9)
(16, 26)
(40, 10)
(36, 16)
(62, 16)
(4, 36)
(2, 62)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-6-20 09:12:58 | 显示全部楼层
02期开赛啦,这次题目相对简单很多,希望大家多多参与!凡是答题都有奖励!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-20 14:27:31 | 显示全部楼层
可否给大家多一些测试数据?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-6-20 14:41:22 | 显示全部楼层
冬雪雪冬 发表于 2017-6-20 14:27
可否给大家多一些测试数据?

好的,我把测试数据都放上来好了。
大家可以先自行验证。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-20 14:41:43 From FishC Mobile | 显示全部楼层
本帖最后由 lh625243422 于 2017-6-20 14:44 编辑

回家修改优化后发代码

1497940863169..jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-6-20 14:49:00 From FishC Mobile | 显示全部楼层
lh625243422 发表于 2017-6-20 14:41
回家修改优化后发代码

递归的话要当心递归深度限制
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-20 14:55:37 From FishC Mobile | 显示全部楼层
恩,可以改成循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-20 16:38:10 | 显示全部楼层
等待第三期
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-20 17:39:11 | 显示全部楼层
本帖最后由 lh625243422 于 2017-6-20 20:39 编辑
  1. import sys
  2. sys.setrecursionlimit(10000)#设置递归最大次数
  3. #生成单个字符对应的10进制数
  4. d={}
  5. for i in range(10):
  6.     d[chr(48+i)]=i  
  7. for i in range(26):
  8.     d[chr(65+i)]=i+10   
  9. for i in range(26):
  10.     d[chr(97+i)]=i+36
  11.    
  12. def R2d(s,R):    #转为10进制数
  13.     if len(s)==1:
  14.         return d[s[0]]*(R)**0
  15.     else:
  16.         return d[s[0]]*(R)**(len(s)-1)+R2d(s[1:],R)

  17. def minR(s):     #确定最小进制
  18.     num=[]
  19.     for i in s:
  20.         num.append(d[i])
  21.     return max(num)+1

  22. def all_d(s):    #所有的R进制数转为10进制的列表
  23.     Ld=[]
  24.     for i in range(minR(s),63):
  25.         Ld.append(R2d(s,i))
  26.     return Ld

  27. def nm(s1,s2):   #所有的(n,m)组合
  28.     L1=all_d(s1)
  29.     L2=all_d(s2)
  30.     mm=[]
  31.     for i in L1:
  32.         if i in L2:
  33.             mm.append((L1.index(i)+minR(s1),L2.index(i)+minR(s2)))
  34.     return mm

  35. def min_nm(s1,s2):  #所有的(n,m)组合中(n+m)最小的
  36.     sum_nm=[]
  37.     nm_copy=nm(s1,s2).copy()
  38.     if nm_copy:
  39.         for n,m in nm_copy:
  40.            sum_nm.append(n+m)
  41.         print(nm_copy[sum_nm.index(min(sum_nm))])
  42.     else:
  43.         print('无结果')
  44. min_nm('python','B1687AEA1')


  45. Test = [('A', '11'),
  46.         ('18', '18'),
  47.         ('ABC', '41I'),
  48.         ('3d8B', '254731'),
  49.         ('FISHC', '18DCFB0'),
  50.         ('python', 'B1687AEA1'),
  51.         ('10110111010010010010101000101010', '11TIFA8BPMTL0'),
  52.         ('10110111010010010010101000101010010101010101010010101001010100101101010101010010101001010100101010101010010101001010010101001010', '5Zr1zn3pm5znjGepqkPmDC')]

  53. for s1,s2 in Test:
  54.     min_nm(s1,s2)
复制代码

min_nm(s1,s2)等同于题目的“Calc(rawstr,newstr)"(s1->rawstr,s2-->newstr)
结果为(62, 16)
Test的结果:(11, 9)
(9, 9)
(16, 26)
(40, 10)
(36, 16)
(62, 16)
(4, 36)
(2, 62)

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +2 收起 理由
jerryxjr1220 + 5 + 5 + 2 答题奖励

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-20 19:19:43 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-6-20 19:55:37 | 显示全部楼层
SixPy 发表于 2017-6-20 19:19
http://bbs.fishc.com/forum.php?mod=redirect&goto=findpost&ptid=77596&pid=2692832
以前写过 十进制 转 ...

嗯,进制转换原理都是相通的。
这题只不过是反过来运用,告诉你转化后的结果,求是什么进制的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-20 19:57:28 | 显示全部楼层
先这样吧,最后一个在计算的时候竟然在自动科学记数法并且还四舍五入,很生气
还没又找到方法,让它不使用科学记数法,心累,先交着

  1. from math import pow

  2. ##设置一个题目里面的62进制的列表
  3. def make_table():
  4.     table = []
  5.     for i in range(48,58):
  6.         table.append(chr(i))
  7.     for i in range(65,91):
  8.         table.append(chr(i))
  9.     for i in range(97,123):
  10.         table.append(chr(i))
  11.     return table

  12. ##判断高进制的字符串是哪一个,目的是:比较的时候以高进制的为主体
  13. def judge_high(rawData,newData):
  14.     ##如果位数相同,那么最高位小的,便是高进制的
  15.     if len(rawData) is len(newData):        
  16.         if rawData[0] > newData[0]:
  17.             return (newData,rawData)
  18.         else:
  19.             return (newData,rawData)
  20.     ##如果位数不相同,位数小的便是高进制的
  21.     else:
  22.         if len(rawData) > len(newData):
  23.             return (newData,rawData)
  24.         else:
  25.             return (rawData,newData)
  26.         
  27. ##判断高低进制字符串起始比较的进制大小
  28. def judge_system(highData,lessData):
  29.     table = make_table()
  30.     highMaxSys = table.index(max(highData))
  31.     lessMaxSys = table.index(max(lessData))
  32.     ##高进制字符串最大元素小于低进制字符串最大元素的时候
  33.     if highMaxSys < lessMaxSys:
  34.         highMaxSys = lessMaxSys + 1
  35.     return (highMaxSys + 1,lessMaxSys + 1)

  36. ## 计算字符串转化到十进制是多少
  37. def compute(data,sys):
  38.     table = make_table()
  39.     temp = 0
  40.     for i in range(len(data)):
  41.         temp += table.index(data[i]) * pow(sys,len(data)-i-1)
  42.     return temp

  43. ##  进行十进制的比较,相等的话返回进制数
  44. def compare(highData,lessData,highSys,lessSys):
  45.     for i in range(highSys,63):
  46.         for j in range(lessSys,i+1):
  47.             if compute(highData,i) == compute(lessData,j):
  48.                 return (i,j)
  49.             
  50. def Calc(rawdata,newdata):
  51.     table = make_table()
  52.     if rawdata is newdata: ##两字符串相同的情况
  53.         return (table.index(max(rawdata))+1,table.index(max(rawdata))+1)
  54.     else:
  55.         highData,lessData = judge_high(rawdata,newdata)##判断谁是高进制字符串
  56.         highSys,lessSys = judge_system(highData,lessData)##判断高低字符串最低比较进制
  57.         ##若存在进制之间的转换,则返回对应进制数
  58.         try:
  59.             n,m = compare(highData,lessData,highSys,lessSys)
  60.         except:
  61.             return '无法进行转换'
  62.         
  63.         if highData == rawdata:
  64.             return (n,m)
  65.         else:
  66.             return (m,n)

  67. Test = [('A', '11'),
  68.         ('18', '18'),
  69.         ('ABC', '41I'),
  70.         ('3d8B', '254731'),
  71.         ('FISHC', '18DCFB0'),
  72.         ('python', 'B1687AEA1'),
  73.         ('10110111010010010010101000101010', '11TIFA8BPMTL0'),
  74.         ('10110111010010010010101000101010010101010101010010101001010100101101010101010010101001010100101010101010010101001010010101001010', '5Zr1zn3pm5znjGepqkPmDC')]

  75. for i in range(len(Test)):
  76.     print(Calc(Test[i][0],Test[i][1]))
复制代码
  1. (11, 9)
  2. (9, 9)
  3. (16, 26)
  4. (40, 10)
  5. (36, 16)
  6. (62, 16)
  7. (4, 36)
  8. 无法进行转换
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-20 20:03:17 From FishC Mobile | 显示全部楼层
jerryxjr1220 发表于 2017-6-20 14:49
递归的话要当心递归深度限制

这个递归深度和字符串长度一致,不会出现无线递归吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-20 20:06:49 From FishC Mobile | 显示全部楼层
本帖最后由 lh625243422 于 2017-6-20 20:34 编辑
Teagle 发表于 2017-6-20 19:57
先这样吧,最后一个在计算的时候竟然在自动科学记数法并且还四舍五入,很生气  
还没又找 ...


数据太大浮点误差?
  1. #temp += table.index(data[i]) * pow(sys,len(data)-i-1)
  2.         temp += table.index(data[i]) * sys**(len(data)-i-1)
复制代码

结果出来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-20 20:13:41 From FishC Mobile | 显示全部楼层
本帖最后由 lh625243422 于 2017-6-20 21:11 编辑

不要用pow试试
是math.pow的锅
你的第一句可以去掉,因为pow是内置函数的,结果也是整数

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-20 21:55:50 | 显示全部楼层
本帖最后由 SixPy 于 2017-6-20 22:21 编辑

  1. NumSys62='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'

  2. def cov_sys10(num:str, sys:int)->int:
  3.     return sum(n*sys**i for i,n in
  4.                enumerate(NumSys62.index(c)
  5.                for c in reversed(num)))

  6. def get_numsys(num:str)->int:
  7.     return NumSys62.index(max(num))+1
  8.    
  9. def covall2sys10(num:str)->dict:   
  10.     return {cov_sys10(num,sys):sys for sys in range(get_numsys(num),63)}

  11. def Calc(num1:str,num2:str)->(int,int):
  12.     s1 = get_numsys(num1)
  13.     if num1==num2:
  14.         return (s1,s1)
  15.     s2 = get_numsys(num2)
  16.     swap = False
  17.     if s1<s2 :
  18.         swap = True
  19.         s1,s2 = s2,s1
  20.         num1,num2 = num2,num1
  21.    
  22.     d = covall2sys10(num1) if len(num1)>1 else {cov_sys10(num1,s1):s1}
  23.     for sys in range(s2,63):
  24.         n10 = cov_sys10(num2, sys)
  25.         if n10 in d:
  26.             return  (sys,d[n10])if swap else (d[n10],sys)

  27.         
  28.    
  29. Test = [('A', '11'),
  30.         ('18', '18'),
  31.         ('ABC', '41I'),
  32.         ('3d8B', '254731'),
  33.         ('FISHC', '18DCFB0'),
  34.         ('python', 'B1687AEA1'),
  35.         ('10110111010010010010101000101010', '11TIFA8BPMTL0'),
  36.         ('101101110100100100101010001010100'
  37.          '101010101010100101010010101001011'
  38.          '010101010100101010010101001010101'
  39.          '01010010101001010010101001010',
  40.          '5Zr1zn3pm5znjGepqkPmDC')]

  41. for n1,n2 in Test:
  42.     print(Calc(n1,n2))

复制代码
  1. (11, 9)
  2. (9, 9)
  3. (16, 26)
  4. (40, 10)
  5. (36, 16)
  6. (62, 16)
  7. (4, 36)
  8. (2, 62)
复制代码

评分

参与人数 1贡献 +2 收起 理由
wei_Y + 2 学习,函数注释。

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-20 22:08:49 | 显示全部楼层

写得好精简,各种推导式,学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-6-20 22:14:47 | 显示全部楼层

这题我觉得对你来说太easy了
我比较想看你上一期挑战赛题目的解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-20 22:17:30 | 显示全部楼层
  1. import time
  2. ti=time.time()
  3. def to10(jzx,num):#转化为10进制,返回十进制数值
  4.     total=0
  5.     for i in range(len(num)):
  6.         total+=zd[num[i]]*(jzx**(len(num)-i-1))
  7.     return total
  8.    

  9. def zh(zf): #转换zh,将字符转换为一个列表(十进制表示的数,进制x),用于比较,变量为字符zf
  10.     total=[]
  11.     zf=str(zf)#以防传入数字
  12.     if min([i in zd for i in zf]):#判断是否含有非法字符,如果有,最小值为0
  13.         minn=max([zd[i] for i in zf])+1#按字典顺序找到代表最大进制的字符,以此作为最低进制进行判断
  14.         #return [[to10(i,zf),i] for i in range(max([zd[i] for i in zf])+1,63)]#返回所有列表
  15.     else:
  16.         return '非法字符'
  17.     for i in range(minn,63):
  18.         total.append([to10(i,zf),i])
  19.         
  20.     return total  #返回所有列表
  21.    
  22. def calc(t1):
  23.    
  24.     x1=zh(t1[0])#生成两个列表,储存从最小进制到62进制的进制及对应的十进制数
  25.     x2=zh(t1[1])
  26.    
  27.     c=[] #临时
  28.    
  29.     for i in x1:#比较十进制数是否一致
  30.         for j in x2:
  31.             if i[0]==j[0]:
  32.                 c.append((i[1],j[1]))
  33.         if c!=[]:#有一致的退出,即最小值
  34.             break
  35.     return c if c!=[] else '无法匹配'


  36.    
  37. zd={} #生成字典zd,
  38. z='0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z'.split()
  39. for i in range(62):
  40.     zd[z[i]]=i
  41.    
  42. Test = [('A', '11'),
  43.         ('18', '18'),
  44.         ('ABC', '41I'),
  45.         ('3d8B', '254731'),
  46.         ('FISHC', '18DCFB0'),
  47.         ('python', 'B1687AEA1'),
  48.         ('10110111010010010010101000101010', '11TIFA8BPMTL0'),
  49.         ('10110111010010010010101000101010010101010101010010101001010100101101010101010010101001010100101010101010010101001010010101001010', '5Zr1zn3pm5znjGepqkPmDC')]


  50. for i in Test:
  51.     print(calc(i))

  52. print(time.time()-ti)
复制代码

以上是完整版的,以防未来的我回头看时看不懂
  1. import time
  2. ti=time.time()
  3. def to10(jzx,num):#转化为10进制,返回十进制数值

  4.     return sum([zd[num[i]]*(jzx**(len(num)-i-1)) for i in range(len(num))])


  5. def zh(zf): #转换zh,将字符转换为一个列表(十进制表示的数,进制x),用于比较,变量为字符zf
  6.     zf=str(zf)#以防传入数字
  7.     if min([i in zd for i in zf]):#判断是否含有非法字符,如果有,最小值为0
  8.         return [[to10(i,zf),i] for i in range(max([zd[i] for i in zf])+1,63)]#返回所有列表
  9.     else:
  10.         return '非法字符'
  11.    
  12. def calc(t1):
  13.    
  14.     x1=zh(t1[0])#生成两个列表,储存从最小进制到62进制的进制及对应的十进制数
  15.     x2=zh(t1[1])
  16.    
  17.     c=[] #临时
  18.    
  19.     for i in x1:#比较十进制数是否一致
  20.         for j in x2:
  21.             if i[0]==j[0]:
  22.                 c.append((i[1],j[1]))
  23.         if c!=[]:#有一致的退出,即最小值
  24.             break
  25.     return c if c!=[] else '无法匹配'


  26.    
  27. zd={} #生成字典zd,
  28. z='0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z'.split()
  29. for i in range(62):
  30.     zd[z[i]]=i
  31.    
  32. Test = [('A', '11'),
  33.         ('18', '18'),
  34.         ('ABC', '41I'),
  35.         ('3d8B', '254731'),
  36.         ('FISHC', '18DCFB0'),
  37.         ('python', 'B1687AEA1'),
  38.         ('10110111010010010010101000101010', '11TIFA8BPMTL0'),
  39.         ('10110111010010010010101000101010010101010101010010101001010100101101010101010010101001010100101010101010010101001010010101001010', '5Zr1zn3pm5znjGepqkPmDC')]


  40. for i in Test:
  41.     print(calc(i))

  42. print(time.time()-ti)
复制代码


以上是简写版的

我的答案是:
[(11, 9)]
[(9, 9)]
[(16, 26)]
[(40, 10)]
[(36, 16)]
[(62, 16)]
[(4, 36)]
[(2, 62)]

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +2 收起 理由
jerryxjr1220 + 5 + 5 + 2 答题奖励

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 19:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表