O(n^2),python超时,望accepted赐代码

P4924 [1007] 魔法少女小Scarlet

> 另外,请问洛谷不管是什么语言都是同一个时间限制吗? 是的,而且不会给任何语言多余时限。(其实时限都是按C++定的)
by cj180202 @ 2024-03-04 21:34:35


@[ZhangJianbo820](/user/1290600) 改用 `numpy`,使用一些模块函数,也可以提交 PyPy(不过对本题来说可能有点难搞)。 ```python import numpy as np n,m = map(int,input().split()) sq = [[i+n*j for i in range(1,n+1)]for j in range (n)] for i in range(m): temp = np.array(sq) x,y,r,z = map(int,input().split()) if z == 0: s_temp = np.rot90(temp[x-1-r:x+r,y-1-r:y+r],k=-1) else: s_temp = np.rot90(temp[x-1-r:x+r,y-1-r:y+r],k=1) temp[x-1-r:x+r,y-1-r:y+r] = s_temp sq = temp for j in sq: for k in j: print(k,end=' ') print() ``` 洛谷主要为 OI 选手服务,OI 选手主要写 编译语言为主,洛谷设置所有语言都是一个语言这个并没有错。 可是有些题目过不了,是因为这些题目对时间常数的包容性很差,过分强调具体的写法(而且是编译语言中的实现方式)。 AtCoder 和 CodeForces 也是所有语言统一一个时间,但是没有像洛谷的某些题目那样走极端。还是平台上的人都这样决定的吧,多说什么其实也不太容易改变。
by Terrible @ 2024-03-04 21:43:24


(代码是我从提交结果那里嫖来的)
by Terrible @ 2024-03-04 21:44:20


修正:洛谷主要为 OI 选手服务,OI 选手主要写编译语言,洛谷设置所有语言都是一个时间这个并没有错。 不得不说有些旧题只是卡得略微比较紧,题目搞出来的时候 Python 还没有现在这么火,也能够理解。
by Terrible @ 2024-03-04 21:50:21


@[Terrible](/user/195942) 收到,十分感谢
by ZhangJianbo820 @ 2024-03-04 21:50:52


@[cj180202](/user/709361) 好的,谢谢
by ZhangJianbo820 @ 2024-03-04 21:52:05


@[ZhangJianbo820](/user/1290600) 其实不见得在洛谷用 Python 写题必须拿 100 分,有时候拿部分分就足够说明对 Python 掌握比较到位了,自己心知肚明即可。 有些题虽然也用 Python 写复杂的语句解决,但是真的不太有必要(话说都到优化这个份上了,怎么不去写编译语言呢)。 另外 numpy 是一个外源模块,你可能需要了解你参加的比赛是否允许使用 numpy、pandas 等等这样的外源模块。
by Terrible @ 2024-03-04 21:54:47


@[Terrible](/user/195942) 你说得很在理。 关于比赛,只能用python内置的模块,所以numpy、pandas之类需要pip install的是不能使用的,这方面我也有数,谢谢关心。 关于语言,我是学过C/C++ C# Java之类的,但是用的最多的还是python,因为我主要是用pytorch,所以还是对python最熟悉。
by ZhangJianbo820 @ 2024-03-04 22:10:36


@[ZhangJianbo820](/user/1290600) 这个数据范围只用 Python 内置模块是过不了的,但是你用 PyPy3 交还是能过的...
by ZeroSky @ 2024-03-21 19:48:56


|