题目:itertools.product()
题意:所有的(a[],b[])
思路:product用法
代码:
from itertools import product
a = map(int,input().split())
b = map(int,input().split())
print(*product(a,b))
from itertools import product
a = map(int,input().split())
b = map(int,input().split())
ls = list(product(a,b))
print(' '.join(map(str,ls)))
题目:itertools.permutations()
题意:任意两个字符
思路:permutation用法
代码:
from itertools import permutations
s,n = input().split(" ")
perm = list(permutations(s,int(n)))
perm.sort()
for i in perm:
print ("".join(i))
标程:
from itertools import *
S, k = raw_input().split()
for i in permutations(sorted(S),int(k)):
print("".join(i))
题目:itertools.combinations()
题意:小于n的任意个字符
思路:combinations用法
代码:
'''
-*- coding: utf-8 -*-
@Author : PlayerGuan
@Time : 2017/10/14 23:12
@Software: PyCharm Community Edition
@File : main.py
'''
from itertools import combinations
s,n = input().split(" ")
for i in range(1,int(n)+1):
for x in list(combinations(sorted(s),i)):
print(''.join(x))
题目:itertools.combinations_with_replacement()
题意:任意字符n次
思路:combinations_with_replacement用法
代码:
'''
-*- coding: utf-8 -*-
@Author : PlayerGuan
@Time : 2017/10/14 23:12
@Software: PyCharm Community Edition
@File : main.py
'''
from itertools import combinations_with_replacement
s,n = input().split(" ")
for x in list(combinations_with_replacement(sorted(s),int(n))):
print(''.join(x))
题目:Compress the String!
题意:输出连续字符及其数量
思路:groupby用法
代码:
'''
-*- coding: utf-8 -*-
@Author : PlayerGuan
@Time : 2017/10/14 23:12
@Software: PyCharm Community Edition
@File : main.py
'''
from itertools import groupby
print(' '.join('(%d, %s)' %(len(list(group)),key) for key, group in groupby(input())))
标程
from __future__ import print_function
from itertools import *
for i,j in groupby(map(int,list(raw_input()))):
print(tuple([len(list(j)), i]) ,end = " ")
题目:Iterables and Iterators
题意:让你找出长度m的全排列中含’a’的概率
思路:combinations用法
代码:
'''
-*- coding: utf-8 -*-
@Author : PlayerGuan
@Time : 2017/10/14 23:12
@Software: PyCharm Community Edition
@File : main.py
'''
from itertools import combinations
n = int(input())
s = input().split()
m = int(input())
cnt = 0
sum = 0
for x in list(combinations(s, m)):
sum += 1
if 'a' in x:
cnt += 1
print(cnt/sum)#好像division默认浮点数?
题目:Maximize It!
题意:给你n个序列,每个序列选一个数,使得加和取模最大
思路:枚举所有的数 product用法
看的别人代码才会写,py各种函数嵌套的太鬼畜了啊
其实想着肯定有算法能优化,不过懒得动脑子了
代码:
'''
-*- coding: utf-8 -*-
@Author : PlayerGuan
@Time : 2017/10/14 23:12
@Software: PyCharm Community Edition
@File : main.py
'''
from itertools import product
k,mod = map(int,input().split())
arrays = [map(int, input().split()[1:]) for _ in range(k)]
ans = map(lambda x : sum(i**2 for i in x) % mod ,product(*arrays))
print(max(ans))