摘要:
题意:有b个blocks,每个blocks都有n个相同的0~9的数字,如果从第一个block选1,从第二个block选2,那么就构成12,问对于给定的n,b有多少种构成方案使最后模x的余数为k。分析:dp+矩阵快速幂。 假如现在的数是m,模x余数是n,那么再从下一个block中选一... 阅读全文
摘要:
题意:用1*2和2*1的方块将给定长宽的矩形填满。问有多少种放法,对称的算两种。分析:状态压缩dp 首先用0表示前一行没有竖块占用这个位置,而1表示该位置和他上方的位置放了一个竖块,从而压缩状态。接下来一行一行的看,每一行都只受上一行的影响,同时影响着下一行的状态,那么如何将现在的... 阅读全文
摘要:
题意:一系列m个1~n区间,每个区间固定对某个子区间进行排序,顺序选择若干区间,使最终覆盖所有区间。分析: computes the length of the shortest subsequence of the initial sequence of sorters sti... 阅读全文
摘要:
题意:求n*n矩阵的幂和分析:逐个加起来时间复杂度太高,通过在矩阵中套个矩阵和,再利用矩阵快速幂,最后时间复杂度为O(n3logn)代码:#include#include#includeusing namespace std;typedef long long ll;const i... 阅读全文
摘要:
题意:用红绿蓝黄四种颜色对一序列n个方块涂色,求出绿和红色方块数同时为偶数的染色方案数。mod=10007分析:dp+矩阵快速幂 首先明确有三种状态:红和绿均为偶数红和绿只有一个为奇数红和绿均为奇数设前三种方案数分别为ai,bi,ci,则可以得到以下递推式: ai+1=2∗ai+b... 阅读全文
摘要:
题意:用红绿蓝黄四种颜色对一序列n个方块涂色,求出绿和红色方块数同时为偶数的染色方案数。mod=10007分析:dp+矩阵快速幂 首先明确有三种状态:红和绿均为偶数红和绿只有一个为奇数红和绿均为奇数设前三种方案数分别为ai,bi,ci,则可以得到以下递推式: ai+1=2∗ai+b... 阅读全文
摘要:
题意:一共有m个城市,城市之间有双向路连接,一个人有n张马车票,一张马车票只能走一条路,走一条路的时间为这条路的长度除以使用的马车票上规定的马车数,问这个人从a出发到b最少使用时间。分析:状态压缩dp,用dp[i][j]表示到达j城市的最小时间,其中i为剩余车票的集合。集合i使用状... 阅读全文
摘要:
题意:一共有m个城市,城市之间有双向路连接,一个人有n张马车票,一张马车票只能走一条路,走一条路的时间为这条路的长度除以使用的马车票上规定的马车数,问这个人从a出发到b最少使用时间。分析:状态压缩dp,用dp[i][j]表示到达j城市的最小时间,其中i为剩余车票的集合。集合i使用状... 阅读全文
摘要:
POJ 2104为例(主席树入门题)思想:可持久化线段树,也叫作函数式线段树,也叫主席树(高大上)。 可持久化数据结构(Persistent data structure):利用函数式编程的思想使其支持询问历史版本、同时充分利用它们之间的共同数据来减少时间和空间消耗。 主席树... 阅读全文
摘要:
POJ 2104为例思想:《挑战程序设计竞赛》中介绍的方法。 分桶法:把一排物品或者平面分成桶,每个桶分别维护自己内部的信息,已达到高效计算的目的。设一共有n个数,每b个分到一个桶里,并对桶内元素进行排序。给定区间,求小于x的数的个数对于完全包含在区间内的桶,直接二分查找满足条件... 阅读全文