Python 数组学习
luogu P2141 [NOIP2014 普及组] 珠心算测验
em,无话可说,蛮简单的,就是 python 语法的学习。
split 要多学学。
a=[0]*105
n=int(input())
ans=int(0)
b=[0]*105
a=[int(num) for num in input().split()]
for i in range(0,n):
for j in range(0,n):
for k in range(0,n):
if i==j or j==k or i==k or a[k]==a[j]:
continue
if a[i]==a[j]+a[k] and b[i]==0:
ans+=1
b[i]=1
print(ans)
二位数组的定义和运用
二维数组可以用最简单的定义,但不推荐,因为每改变一行,其他所有行都会改变。
比如说这个问题:Hello!
a=[[x]*n]*m
# n,m为大小
# x 为字符或数字
其实用这个比较好,方便实用。
a=[[x] * n for i in range(m)]
运用:
请输入这个地图,创造一个 mp 数组,若地图里是 '0',mp 数组相应值为 0,若地图里是 '*',mp 数组相应值为 1。
input:
4 5
00000
00*00
0*0*0
00*00
output:
0 0 0 0 0
0 0 1 0 0
0 1 0 1 0
0 0 1 0 0
Warning:If u use the first one that I gave u,ur output will like this:
0 0 1 0 0
0 0 1 0 0
0 0 1 0 0
0 0 1 0 0
code:
n,m=map(int,input().split())
f=[[0] * 505 for i in range(505)]
for i in range(1,n+1):
c=input()
for j in range(0,m):
if c[j]=='0':
f[i][j+1]=0
else:
f[i][j+1]=1
for i in range(1,n+1):
for j in range(1,m+1):
print(f[i][j],end=" ")
print()
注:这是一道 dfs 题的一部分,题目是 luogu P1506,简单题。

浙公网安备 33010602011771号