题目:有三层玻璃叠在一起,一束斜着照射的光纤从最上面射入,问有多少条光线反射n次。
分析:dp,分成奇偶两种状况考虑;
奇数情况:每个面的光线等于上次的本平面以上的点的反射;
偶数情况:每个面的光线等于上次的本平面一下的点的反射。
说明:(2011-09-19 01:29)。
#include
#include
long long F...
分类:
其他好文 时间:
2014-09-18 22:18:14
阅读次数:
200
思路:这题确实大帝做得很机智!字符串先求最长前缀,反的字符串再求一次最长前缀,然后就可以搞了。
每个子串出现的次数就是最长前缀的次数嘛!
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#include
#include
#include
#include
#include
#include...
分类:
其他好文 时间:
2014-09-18 22:17:34
阅读次数:
183
题目:110米栏,运动员可以用三种状态跑,1状态耗体力且跑得快,2状态不消耗体力,3状态恢复体力且跑得慢。
体力上限是M,且初始满体力,现在想知到最小的时间跑完全程。
分析:dp,完全背包。题目是一个物品体积可能为负数的背包,求背包即可。
不过,因为物品体积可能是负数,所以不管哪个方向背包都有后效性,直接用二维避免后效性。...
分类:
其他好文 时间:
2014-09-18 20:41:44
阅读次数:
277
题意:
一个物品重w效力t 给出所有n个物品 有q个询问 每个询问输出w的和为m同时t的和为s的方案
思路:
明显就是01背包 只不过一个东西在两个维度上有价值 由于w只有50因此可以状压
先想如何输出方案 利用f[i][j]表示sumw=i同时sumt=j时候装进包里的最后一个物品 那么输出这个物品后i和j都减去这个物品的w和t 就可以到达新的状态 这样可以一直到背包为...
分类:
其他好文 时间:
2014-09-16 20:42:21
阅读次数:
225
//我刚开始竟然用bfs做,不断的wa,bfs是用来求最短路的而这道题是求固定时间的
//剪纸奇偶剪枝加dfs
#include
#include
#include
#include
using namespace std;
#define N 10
char ma[N][N];
struct node {
int x,y,step;
}ss,tt;
int dis[4][2]={1,0,-1,...
分类:
其他好文 时间:
2014-09-16 17:26:50
阅读次数:
194
题目:n个叠放在一起的卡片,求使得他们同向的最小翻转次数,每次只能翻转最上面的k个。
分析:数学,贪心。每次翻转必然是不同情况(正,反)交接的地方(否则只会变得更糟);
记交接的地方的个数为m,那么翻转后交接的地方变为m-1或m;
(上面部分两端相同则为m-1,不同则为m)
因此一次翻转最多使得交接点减少1;所以每次翻...
分类:
其他好文 时间:
2014-09-16 12:44:30
阅读次数:
158
题目:只允许交换相邻元素的排序,统计将最小交换次数。
分析:分治,逆序数。在合并排序的过程中进行逆序对的求解。
合并A,B两个字串时利用两根指针作为计数;
当B中元素放入新数组时A中所剩元素一定大于B;
每次计数加和即可。
说明:置换群 可以用来计算任意最小交换。。。 (2011-09-20 14:25)
#in...
分类:
其他好文 时间:
2014-09-16 09:17:40
阅读次数:
173
题目:统计三角形个数。
分析:dp,数学公式。
递推公式:
正面:f[n] = f[n-1] + n*(n+1)/2 = f[n-1] + n*n/2 + n/2
=(n*(n+1)*(2*n+1)+3*n*(n+1))/12
反面:F[ n ]...
分类:
其他好文 时间:
2014-09-16 09:17:30
阅读次数:
149
题目:两个人到一个有很多岛屿组成的国家,求两人按相同顺序参观的最大岛屿数。
分析:dp,LIS,LCS。本题有两种解决方案,LCS,LIS。
LCS:对两人分别排序,找出编号的 LCS即可 T = O(n^2);
LIS:利用映射关系,将 LCS转化成 LIS即可 T = O(nlogn);
转化有点恶心,求出排序...
分类:
其他好文 时间:
2014-09-15 21:22:19
阅读次数:
195
题目:Pedro买了两块不同牌子的巧克力,他找到了一些小盒子,他准备把巧克力分开,放在小盒子里送给朋友;
为了不被朋友发现自己是为了省钱,每个小盒子中只能放相同牌子的巧克力,求分法。
分析:dp,01背包。
这里每个小盒子作为物品,其中第一块巧克力作为箱子,记录每个箱子的前驱(路径);
然后,枚举所有的第一块巧克力的可分状态,判断...
分类:
其他好文 时间:
2014-09-14 18:06:27
阅读次数:
258