问题描述 LG-SP 题解 发现\(n,k\)都非常小,尤其是\(k,k\le 5\),于是直接开\(5\)维进行\(\mathrm{DP}\) 用记忆化搜索实现. \(\mathrm{Code}\) #include<bits/stdc++.h> using namespace std; #define int long long template <typename Tp> void read(Tp &x){ x=0;char ch=1;int fh; while(ch…
题目来源:POJ:http://poj.org/problem?id=2279 SPOJ:https://www.spoj.com/problems/GNYR04H/ 题意翻译 题目描述 杨先生希望为他的班级拍照.学生将排成一行,每行不超过后面的行,并且行的左端对齐.例如,可以安排12名学生排列(从后到前)5,3,3和1名学生. X X X X X X X X X X X X 此外,杨先生希望每排学生安排高度从左到右减少.此外,学生身高应从后向前减少.想想看,杨先生看到,对于这个12人的例子,至…
传送门 Description 杨先生希望为他的班级拍照.学生将排成一行,每行不超过后面的行,并且行的左端对齐.例如,可以安排12名学生排列(从后到前)5,3,3和1名学生. X X X X X X X X X X X X 此外,杨先生希望每排学生安排高度从左到右减少.此外,学生身高应从后向前减少.想想看,杨先生看到,对于这个12人的例子,至少有两种安排学生的方式(数字代表高度,其中1代表最高): 1 2 3 4 5 1 5 8 11 12 6 7 8 2 6 9 9 10 11 3 7 10…
POJ2279 Mr Young's Picture Permutations 描述: 有N个学生合影,站成左对齐的k排,每行分别有N1,N2…NK个人,第一排站最后,第k排站之前.学生身高依次是1…N.在合影时候要求每一排从左到右递减,每一列从后面到前也递减,一共有多少总方案输入每组测试数据包含两行.第一行给出行数k. 第二行包含从后到前(n1,n2,…,nk)的行的长度,作为由单个空格分隔的十进制整数. 问题数据以0结束. N<=30, k<=5; 输出 输出每组数据的方案数 样例输入13…
2483: Pku2279 Mr. Young's Picture Permutations Time Limit: 1 Sec  Memory Limit: 128 MB Description   Mr. Young wishes to take a picture of his class. The students will stand in rows with each row no longer than the row behind it and the left ends of…
[题解]POJ2279 Mr.Young′s Picture Permutations dp 钦定从小往大放,然后直接dp. \(dp(t1,t2,t3,t4,t5)\)代表每一行多少人,判断边界就能dp. 然后你发现\(30^5\)开不下,但是你仔细观察由于它保证\(\sum < 30\)所以你只用开\(30^5 \div 5!\)就好了. 具体为什么我相信你会 //@winlere #include<iostream> #include<cstring> #include…
poj 2279 Mr. Young's Picture Permutations \(solution:\) 首先摘取一些关键词:(每行不超过它后面的行)(每排学生安排高度从左到右减少)(学生的高度应该从后面到前面减少).这个已经很提示我们轮廓线DP了.而且这一题的数据范围也十分的小:行数不超过五行,人数不多于三十人.这么小的数据范围基本上可以断定是DP了. 然后这种带限制条件的我们可以想办法满足,比如说身高问题我们一般都会采取填人的办法(这一题按身高从大到小填(当然反过来也可以)),然后我们…
Mr. Young's Picture Permutations 给出一个有k列的网格图,以及每列图形的高度\(n_i\),下端对齐,保证高度递减,设有n个网格,询问向其中填1~n保证每行每列单调递增的方案数,\(n\leq 30,k\leq 5\). 解 事实上,注意到k很小,我们就可以暴力状态了,而要表现单调递增,故维护一个从左至右边矮的阶梯. 以有5列为例,设\(f[a][b][c][d][e]\)表示第1列已经填的数字高度为a,第二列高度为b,...,第5列的高度为e的,现在填到数字\(…
[CF285E]Positions in Permutations(动态规划,容斥) 题面 CF 洛谷 题解 首先发现恰好很不好算,所以转成至少,这样子只需要确定完一部分数之后剩下随意补. 然后套一个二项式反演进行容斥就可以得到答案了. 考虑怎么算至少\(m\)个的贡献, 设\(f[i][j][S]\)表示当前填到了位置\(i\),一个有\(j\)个贡献,\(i\)和\(i+1\)的使用情况是\(S\)的方案数,每次枚举一下这个位置是填\(i+1\)还是\(i-1\)还是其他就可以进行转移了.…
Description Mr. Young wishes to take a picture of his class. The students will stand in rows with each row no longer than the row behind it and the left ends of the rows aligned. For instance, 12 students could be arranged in rows (from back to front…