#26466: [Python]AC75%卻一直TLE,不然就MemoryError,能否請版主更改一下邊界呢?


406490150@gms.tku.edu.tw (我是朱朱)

學校 : 國立交通大學
編號 : 139794
來源 : [140.113.236.122]
最後登入時間 :
2022-09-03 11:13:16
e288. 互補CP -- APCS | From: [36.238.32.16] | 發表日期 : 2021-08-08 16:42

AC 75%卻一直TLE,不然就MemoryError,能否請版主更改一下邊界呢?

還是APCS類的題目都這麼硬,用Python自然就會遇到這種狀況呢?

 

原本想直接用Frozenset但MemErr,改用int 及 bitwise operation卻TLE,我想Python對位元操作不是原生,應該是沒辦法加速的

我認為以Python的角度出發,提到「去除重複」第一直覺就是set,但MemErr卻阻擋了這樣的操作,是非常不直觀的

不僅如此,set還可以做差集運算,以及Counter還能接受frozenset作為鍵值,改用bitwise operation似乎也遠離了Python的直覺

 

# MemErr 75%, AC 25%
from sys import stdin
from collections import Counter

caracters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijkl'

mn = map(intnext(stdin).split())
caracters = frozenset(caracters[:m])

CPs = Counter(frozenset(linefor line in map(str.stripstdin))

ans = 0
while CPs:
    cp1_keycp1_val = CPs.popitem()
    ans += cp1_val * CPs.pop(caracters - cp1_key0)

print(ans)

----------------------------------------------------------------------------------
# TLE 25%, AC 75%
from sys import stdin
from collections import Counter

caracters = '\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijkl'

mn = map(intnext(stdin).split())
CPs = Counter(sum(1 << caracters.index(sfor s in set(line))-1 for line in stdin)

mistrynum = int('1'*(m+1), 2)-1
ans = 0
while CPs:
    cp1_keycp1_val = CPs.popitem()
    ans += cp1_val * CPs.pop(mistrynum ^ cp1_key0)

print(ans)
 
#26467: Re:[Python]AC75%卻一直TLE,不然就MemoryError,能否請版主更改一下邊界呢?


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [114.42.154.168]
最後登入時間 :
2024-04-27 22:14:03
e288. 互補CP -- APCS | From: [118.170.107.156] | 發表日期 : 2021-08-08 17:01

台中一中的網站,有ㄧ題跟這題一模一樣,測資比較小,可以去看看。

 
#26470: Re:[Python]AC75%卻一直TLE,不然就MemoryError,能否請版主更改一下邊界呢?


406490150@gms.tku.edu.tw (我是朱朱)

學校 : 國立交通大學
編號 : 139794
來源 : [140.113.236.122]
最後登入時間 :
2022-09-03 11:13:16
e288. 互補CP -- APCS | From: [36.238.157.163] | 發表日期 : 2021-08-08 19:44

台中一中的網站,有ㄧ題跟這題一模一樣,測資比較小,可以去看看。


如果david先生你有認識網站負責人的話,或許可以跟他建議一下,下面是我的一些抱怨:

我是覺得這個網站宣稱是「高中生解題」系統,應該要親近於新手,而不是限制多多,這樣使用Python的人都解不了什麼題目,解題目都要解的很畸形才能AC,背離了Python的簡潔。有些Python新版本的功能可以加速但只有Python 3.6有時也很綁手綁腳。常常看到有人在討論區問為什麼Python不能過,實在不能說他們的邏輯或演算法有誤,但就是被時限或記憶體限制卡住了,這些新手會喜歡解題嗎?

另外這個網站也該與時俱進,解題的分享、程式碼解答的分享都不夠直覺,要有參與感才會更有動力繼續遊玩,一直把人帶離此網站實在不是很OK,應該要想辦法在站內就能解決這些問題,中文練習網站很少又對Python不太支援,實在覺得很可惜。也可能是我對這個網站的源起不夠了解,才會有這樣的感想

 

 
#26471: Re:[Python]AC75%卻一直TLE,不然就MemoryError,能否請版主更改一下邊界呢?


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [114.42.154.168]
最後登入時間 :
2024-04-27 22:14:03
e288. 互補CP -- APCS | From: [118.170.107.156] | 發表日期 : 2021-08-08 20:25

1. 我不認識站長,你要自己向他建議。

2. 我很喜歡在這練習,這網站不錯

3. 我不是要把你帶離網站,讓你誤會了,不好意思,

只是碰巧看到一樣的題目,

可以去試試那題 (我常會和同好,討論某一題)

4. 這裡你只要解題超過門檻,也可以自己出題,

誰出了什麼題目,只要合於規範,站長不會干涉的 ,所以應該是建議題主  

 

 

 

 

 
#26472: Re:[Python]AC75%卻一直TLE,不然就MemoryError,能否請版主更改一下邊界呢?


406490150@gms.tku.edu.tw (我是朱朱)

學校 : 國立交通大學
編號 : 139794
來源 : [140.113.236.122]
最後登入時間 :
2022-09-03 11:13:16
e288. 互補CP -- APCS | From: [36.238.157.163] | 發表日期 : 2021-08-08 20:34

1. 我不認識站長,你要自己向他建議。

2. 我很喜歡在這練習,這網站不錯

3. 我不是要把你帶離網站,讓你誤會了,不好意思,

只是碰巧看到一樣的題目,

可以去試試那題 (我常會和同好,討論某一題)

4. 這裡你只要解題超過門檻,也可以自己出題,

誰出了什麼題目,只要合於規範,站長不會干涉的 ,所以應該是建議題主  

 

 

 

 


沒有,我不是怪您,只是覺得網站可以再更好

 
ZeroJudge Forum