题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5015 看到这个限时,我就知道这题不简单~~矩阵快速幂,找递推关系 我们假设第一列为: 23 a1 a2 a3 a4 则第二列为: 23*10+3 23*10+3+a1 23*10+3+a1+a2 23*10+3+a1+a2+a3 23*10+3+a1+a2+a3+a4 进一步转化可以得到: 代码: #include <iostream> #include <string.h> usin…
HDU 2527 :http://acm.hdu.edu.cn/showproblem.php?pid=2527 哈夫曼树,学完就忘得差不多了,题目的意思都没看懂,有时间复习下,看了别人的才知道是怎么回事. 贪心的题目,当总代价(要求最少)是由子代价累加或累乘出来,就可以考虑用哈夫曼来贪心. 题意: 就是给你一个字符串如:12 helloworld 统计出其中 d:1个,e:1个,h:1个,l:3个,o:2个,r:1个,w:1个,然后用一个数组保存起来a[7]={1,1,1,1,1,2,3};然…
http://acm.hdu.edu.cn/showproblem.php?pid=1078 题意: 一张n*n的格子表格,每个格子里有个数,每次能够水平或竖直走k个格子,允许上下左右走,每次走的格子上的数必须比上一个走的格子的数大,问最大的路径和. 记忆化搜索 #include <iostream> #include <string.h> #include <stdio.h> using namespace std; ][] = { {, },{ -, }, {, }…
#include <iostream> #include <algorithm> #include <string.h> using namespace std; ]; int main() { int N; ,, }; while (cin >> N) { memset(dp, , sizeof(dp)); ; i <= N; i++) dp[i] = ; ; i <= ; i++) { for (int j = a[i]; j <= N…
知识点:前缀树.典型的前缀树模板. 这是用next[26]数组的版本,超内存了.(后来发现,用C++交不会超,G++就会超) #include <iostream> #include <malloc.h> #include <string> using namespace std; typedef struct node{ int pass; ]; } *trieTree; trieTree init() { trieTree t = (trieTree)malloc(…
坑了老子半天,结果是 float 范围不够!!! 基本思想: 开一个符号栈,一个数字栈: 碰到数字就入栈,碰到符号就与栈顶符号进行对比,如果当前符号优先级小于栈顶符号,数字栈弹出两个数进行栈顶符号运算,并将结果压回数字栈: 如果当前符号优先级大于栈顶符号,再将当前符号入栈. 关于优先级,* / 比 + - 高是没得说的,然后规定两个*号(包括/号),前面的优先级更大.当然会造成一些问题(如:5 / 3 * 3会得出一个小数),但这是没办法的. 符号栈初始放置一个‘#’,并规定 ‘#’,优先级低于…
今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 55813    Accepted Submission(s): 30009 Problem Description “今年暑假不AC?” “是的.” “那你干什么呢?” “看世界杯呀,笨蛋!” “@#$%^&*%...”确实如此,世界杯来了,球迷的节日也来了,估计很多AC…
今年暑假不AC Problem Description “今年暑假不AC?”“是的.”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了.作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事).非常6+7.超级女生,以及王小丫的<开心辞典>等等,假设你已经知道了所有你喜欢看的电视节目的转播时间表,你会合理安排吗…
HDU2037 今年暑假不AC  贪心算法 大意: 每次测试数据输入一个n,然后输入n对的电视节目播放时间:开始时间及结束时间, 求这个人能看的最多的完整的节目数. 解题思路: 对于这道解题,是对每个节目的结束时间排序,目的是使剩余时间留下,再判断还能看几个节目.对节目时间的排序结束后,依次判断,这次要看的节目的开始时间是否大于上次看的节目的结束时间,若是大于,则这个节目时可以完整观看的,若是小于则是不能完整观看的,所以跳到下一个节目继续判断 . 例子: 12 1 3 3 4 0 7 3 8 1…
题目链接:https://www.luogu.org/problemnew/show/P2945 (原题 USACO) 要求钱最少,就是试着让M和B的离散程度最小(我自己脑补的,就是总体更接近,我不知道数学上这样该不该叫离散程度),那显而易见就是升序. 一开始想着可能有这种情况,有高度相同,但是对不上的,其实是没有差别的. 原高度:2 2 3 4 5 改高度:2 3 4 5 6 证明看这个:https://www.cnblogs.com/Leohh/p/7648607.html #include…