题目连接: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
Floyd算法所有顶点对之间的最短路径问题是:对于给定的有向网络G=(V,E),要对G中任意两个顶点v,w(v不等于w),找出v到w的最短路径。当然我们可以n次执行DIJKSTRA算法,用FLOYD则更为直接,两种方法的时间复杂度都是一样的。1.定义概览Floyd-Warshall算法(Floyd-...
分类:
其他好文 时间:
2014-05-06 00:34:06
阅读次数:
333
思路:
以理发的次数当容量,源点到每个人建一条容量为2的边,人到他可达的每个时间点建一条边,每个时间点到汇点建一条容量为m的边。然后判断最大流是否等于2*n。代码: 1
#include 2 #include 3 #include 4 #include 5 #include ...
分类:
其他好文 时间:
2014-05-06 00:31:43
阅读次数:
259
一、后缀表达式求值
后缀表达式也叫逆波兰表达式,其求值过程可以用到栈来辅助存储。
假定待求值的后缀表达式为:6 5 2 3 + 8 * + 3 + *,则其求值过程如下:
(1)遍历表达式,遇到的数字首先放入栈中,依次读入6 5 2 3 此时栈如下所示:
(2)接着读到“+”,则从栈中弹出3和2,执行3+2,计算结果等于5,并将5压入到栈中。...
分类:
其他好文 时间:
2014-05-03 16:59:21
阅读次数:
309
题目详情我们要给每个字母配一个1-26之间的整数,具体怎么分配由你决定,但不同字母的完美度不同,而一个字符串的完美度等于它里面所有字母的完美度之和,且不在乎字母大小写,也就是说字母F和f的完美度是一样的。现在给定一个字符串,输出它的最大可能的完美度。例如:dad,你可以将26分配给d,25分配给a,这样整个字符串最大可能的完美度为77。函数头部Cint perfect(const char *s)...
分类:
其他好文 时间:
2014-05-03 16:57:02
阅读次数:
300
这就是数论坑的地方了把,有些题目真心偏到你无法想象,需要用到多项式欧几里德求多项式的最大公共多项式
题意:给你n个多项式,问他们有没有共同的根
先分析把,假设有多项式a,b,同时又有多项式k,r,令 a = k*b +r,应题目要求,令解为0,那么a = 0,同时b也要等于0,那么这时候要满足a=b=0 其实 r = 0,这时候就不需要去管k了,有没有发现跟那个扩展欧几里德有点相似的方程,这时...
分类:
其他好文 时间:
2014-05-02 21:46:47
阅读次数:
419
题目题意:有n1个o, n2个r, n3个z, n4个~, 求有多少种组合使
组合出来的字符串的任意前缀都满足 o的个数>=r的个数,r的个数>=z的个数 ……………………思路:递推,枚举用四重循环控制orz~的个数符合题意,
然后当前个数的orz~等于之前orz~分别少一个推过来的,所以相加上,注...
分类:
其他好文 时间:
2014-05-02 00:24:58
阅读次数:
318
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3415
题意:给出一个数环,要找出其中9长度小于等于K的和最大的子段。
思路:不能采用最暴力的枚举,题目的数据量是10^5,O(N^2)的枚举回去超时,本题采用的很巧妙的DP做法,是用单调队列优化的DP。
运用的是STL的deque,从i:1~a找到以其中以i为尾的符合条件的子段,并将i本身放入双向队...
分类:
其他好文 时间:
2014-05-01 08:32:53
阅读次数:
324
数学和数学计算
print 25+30/6 #25加上30除以6 和为39
print 100-25*3%4 #100减去25乘以3的积再除以4的余数,就是100-3=97
print 100%16 #100除以16的余数=4
print 1/4 #1除以4,然后因为是整数,所以四舍5入为0
print 1.0/4.0 ##1.0除以4.0,因为是浮点数,所以等于0.25
print 3+5...
分类:
编程语言 时间:
2014-05-01 08:22:53
阅读次数:
653
前序:
(二叉)堆数据结构是一种数组对象,它可以被视为一棵完全二叉树。树中每个节点与数组中存放该节点值的那个元素对应。
树的每一层都是填满的,最后一层除外。
树的根为a[1] (在这里是从1开始的,也可以从0开始),给定了某个节点的下标i,其父节点为i/2,左二子为2*i,右儿子为2*i+1。
二叉堆满足二个特性:
1.父结点的键值总是大于或等于(小于或等于)任何一个...
分类:
其他好文 时间:
2014-04-30 22:15:38
阅读次数:
434