分玩具
已知 n 位小朋友对 m 件玩具的喜好(n ≤ m),现要将 m 件玩具分给 n 位小朋友,每位小朋友只能分到 1 件玩具,每件玩具也最多只能分给 1 位小朋友,并且还要求每位小朋友都能分到自己喜欢的玩具。
本题请你对任意 n 和 m 尝试列出所有满足要求的方案。
时间限制:5000
内存限制:65536
输入
输入第一行给出两个正整数 n 和 m(n ≤ m ≤ 8),即小朋友人数和玩具的数量。 随后 n 行,每行给出 m 个数字。其中第 i 行第 j 个数字为 1 表示第 i 位小朋友喜欢第 j 件玩具,为 0 则表示不喜欢。
输出
按升序列出所有满足要求的方案,格式为 (s1, … , sn)。其中 si 表示第 i 位小朋友分到了第 si 件玩具。 注:方案 (a1, … , an) < (b1, … , bn) 是指存在 1 ≤ k ≤ n,使得 ai = bi 对所有 1 ≤ i< k 成立,并且有 ak < bk。
样例输入
4 5 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1
样例输出
(2, 1, 3, 4) (2, 1, 3, 5) (2, 1, 4, 5) (2, 4, 1, 5) (2, 4, 3, 5) (5, 1, 3, 4) (5, 2, 1, 4) (5, 2, 3, 4)
相似题推荐
画作
题目描述
墙上,挂着一幅由 n×n 个彩色方格组成的画作。画作的内容可以用一个 n×n 的字符矩阵来表示。
现在想要将这幅画顺时针旋转 90 度后重新悬挂,请你他计算出旋转后的画作是什么样的。
输入格式
第一行,一个整数表示 n
接下来 n 行,每行 n 个字符。
输出格式
输出 n 行,每行 n 个字符,表示顺时针旋转 90 度后的矩阵。
输入样例#1
4 ooxx xoox xxxx xxxx
输出样例#1
xxxo xxoo xxox xxxx
输入样例#2
2 12 34
输出样例#2
31 42
说明提示
1≤n≤1000
花坛
题目描述
花坛里有 n 朵花,每朵花的编号为 1,2,…,n。初始时,所有花的高度都是 0。
现在给定一个数列 h={h1,h2,…,hn},你可以重复进行如下的浇水操作,每次操作:任选一段连续区间 [l,r],区间内每朵花高度加 1。可以无限重复该操作,使得第 k 朵花的最终高度恰好为 hk(1≤k≤n)。
求完成目标需要的最小操作浇水次数。
输入格式
第一行一个整数,表示花的数量 n
第二行 n 个整数,依次表示每朵花需要达到的目标高度 h1,h2,…,hn
输出格式
输出一个整数,表示达成目标所需的最少浇水操作次数。
输入样例#1
5 3 1 2 3 1
输出样例#1
5
输入样例#2
8 4 23 75 0 23 96 50 100
输出样例#2
221
说明提示
1≤n≤100
0≤hi≤100
所有输入均为整数
