题目连接:Codeforces 413D 2048
题目大意:2048的游戏,两个相同的数x可以变成一个2*x,先给出n,表示在一个1*n的矩阵上面玩2048,规定每次向左移动,并且每次出现一个,给出序列n,表示出现的块的值,0表示既可以是2也可以是4,问说有多少种可能,使得游戏结束后的最大块的值大于等于2^k。
解题思路:dp[i][j][x]表示第i个位置,值为j,x表示先...
分类:
其他好文 时间:
2014-07-22 23:02:13
阅读次数:
254
题目来源:POJ 3882 Stammering Aliens
题意:给你m一个一个字符串 求至少出现m次的最长字符串 可以在字符串中重叠出现
思路:二分长度l 然后从height数组中找长度大于等于l的前缀
#include
#include
#include
using namespace std;
const int maxn = 40010;
char s[maxn];
in...
分类:
其他好文 时间:
2014-05-01 17:36:34
阅读次数:
334
1. = 小于等于,大于等于 ( 大于小于>b?a:b;
a>b是真值的话,就给:左边的数给c,即c=a,如是假值就给右边数c=b
分类:
编程语言 时间:
2014-04-30 04:34:55
阅读次数:
401
最直观的解法,排序之后取下标为k的值即可。但是此处采取的方法为类似快速排序分块的方法,利用一个支点将序列分为两个子序列(支点左边的值小于支点的值,支点右边大于等于支点的值)。如果支点下标等于k,则支点就是查找的值,如果支点的下标大于k,则在左子序列里继续寻找,如果支点下标小于k,则继续在支点右子序列...
分类:
其他好文 时间:
2014-04-28 14:20:26
阅读次数:
458
【插入排序】
数组前k-1个元素已经有序,如何确定第k个元素的插入位置,使得这k个元素有序。
方法1:从左到右扫描扫描这个有序子数组,直到遇到第一个大于等于A[k]的元素,然后把A[k]插在这个元素的前面。
方法2:从右到左扫描这个有序子数组,直到遇到第一个小于等于A[k]的元素,然后把A[k]插在这个元素的后面。
【希尔排序】
先将数组分组,分别对每组进行插入排序,依次减少分组数进行插...
分类:
其他好文 时间:
2014-04-27 22:46:19
阅读次数:
267