链接: https://vjudge.net/problem/LightOJ-1246 题意: You are given a rectangular board. You are asked to draw M horizontal lines and N vertical lines in that board, so that the whole board will be divided into (M+1) x (N+1) cells. So, there will be M+1 ro…
http://lightoj.com/volume_showproblem.php?problem=1246 题意 有个(M+1)*(N+1)的棋盘,用k种颜色给它涂色,要求曼哈顿距离为奇数的格子之间不能涂相同的颜色,每个格子都必须有颜色,问可行的方案数. 分析 经一波分析,根据曼哈顿距离为奇数这一信息,可以将棋盘分为两部分,也就是相邻格子不能有相同颜色.一种颜色只能在一个部分中出现.现在考虑对一个部分的格子操作, dp[i][j]表示i个格子选择用了j种颜色的方案数,于是可以得到这样的递推式:…
1246 - Colorful Board    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB You are given a rectangular board. You are asked to draw M horizontal lines and N vertical lines in that board, so that the whole board will be divide…
传送门 一页书的书 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte总提交 : 53            测试通过 : 10  题目描述 一页书前辈作为一位得道高僧,在他无悔的生涯中创作了许多经典,被世人称作百世经纶.这一天有m个粉丝来膜拜书大,书大很开心,决定送他们每人一本经典.已知一页书一共创作了n部作品,每部作品分别有a1.a2…an份藏本,那么书大一共可以有多少种送书的选择呢?(由于计算结果可能很大,请把结果对…
https://www.bnuoj.com/v3/contest_show.php?cid=9148#problem/I [题意] 给定n个操作数和n-1个操作符,组成一个数学式子.每次可以选择两个相邻操作数及中间的操作符进行运算,如a-b变成一个数(a-b),直到这个式子变成一个数.同一个初始式子可以进行不同的操作,最后的结果也可能不同.最后求不同操作得到结果的和(mod 1000 000 007) 对于两个操作,只要存在一步是不同的,这两个操作就被认为是不同的. [思路] 总体思路是区间dp…
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1095 题解:其实是一道简单的组合数只要推导一下错排就行了.在这里就推导一下错排 dp[i]=(i-1)*dp[i-2](表示新加的那个数放到i-1中的某一个位置然后那个被放位置的数放在i这个位置就是i-2的错排)+(i-1)*dp[i-1](表示新加的那个数放到i-1中的某一个位置然后用那个位置被占的数代替i这个位置的数就是i-1的错排) #include <iostream…
DP? Problem Description Figure 1 shows the Yang Hui Triangle. We number the row from top to bottom 0,1,2,…and the column from left to right 0,1,2,….If using C(n,k) represents the number of row n, column k. The Yang Hui Triangle has a regular pattern…
testB 输入文件: testB.in  输出文件testB.out 时限3000ms 问题描述: 定义这样一个序列(a1,b1),(a2,b2),…,(ak,bk)如果这个序列是方序列的话必须满足下面两个条件: (1)1<=a1<=b1<a2<=b2<….<ak<=bk<=n .其中n是给定的正整数. (2)b1-a1,b2-a2,….,bk-ak两两互不相同. 现在方老师想知道给定n的情况下有多少种不同的长度为k的方序列. 答案取模10^9+7 输入描…
题目链接:http://lightoj.com/volume_showproblem.php?problem=1032 #include <cstdio> #include <cstring> #include <iostream> #include <cmath> #include <algorithm> #include <queue> #include <vector> using namespace std; ;…
题目大意: 给你一个n然后是n个数. 然后是n-1个操作符,操作符是插入在两个数字之间的. 由于你不同的运算顺序,会产生不同的结果. 比如: 1 + 1 * 2 有两种  (1+1)*2   或者  1+(1*2) 1 *  2 * 3  也是两种即使结果是一样的  (1*2)*3  或者 1*(2*3) 问这所有不同的组合加起来的和对 1e9+7取余是多少.   这个其实就是区间DP了 dp[i][j] 代表的是区间  i 到 j 的和 枚举dp[i][j] 之间所有的子区间 假如是乘法: t…