摘要: 这题的状态推倒极富想象力,原来写过的代码又忘了如何去写了......题意:其实就和以前做过的一道我要长高一模一样,给定N个数字,现在要求连续的两个数字之差的绝对值乘以C最小,每个数字可以变大,变大所带来的开销为变量的平方. 状态方程为 dp[i][j] = min(dp[i-1][k] + C*|j-k| + (j-H[i]) ^ 2) if (j >= k) dp[i][j] = min(dp[i-1][k] - C*k) +C*j + (j-H[i])^2 if (j <= k) dp[i][j] = min(dp[i-1][k] + C*k) - C*j + (j-H[i]) 阅读全文
posted @ 2013-01-09 16:49 沐阳 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 变量和函数的属性包括数据类型和数据的存储类别,存储类别指数据在内存中存储方式(静态和动态),包含auto,static,register,extern四种。内存中。具体点来说内存分为三块:静态区,堆区,栈区。外部变量和全局变量存放在静态区,局部变量存放在栈区,动态开辟的内存存在堆区。 一、简要性比较extern 外部变量声明,是指这是一个已在别的地方定义过的对象,这里只是对变量的一次重复引用,不会产生新的变量。static 静态数据,数据存放在全局数据区,但作用域只是本 文件/函数 中,所以你可以在两个不同的文件/函数内部申明同名的static变量,但是 它们是两个不同的全局变量。如... 阅读全文
posted @ 2013-01-09 11:58 沐阳 阅读(11683) 评论(0) 推荐(0) 编辑
摘要: auto 这个这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。这个关键字不怎么多写,因为所有的变量默认就是auto的。register 这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中而不是通过内存寻址访问以提高效率。static 常见的两种用途: 1>统计函数被调用的次数; 2>减少局部数组建立和赋值的开销.变量的建立和赋值是需要一定的处理器开销的,特别是数组等含有较多元素的存储类型。在一些含有较多的变量并且被经常调用的函数中,可以将一些数组声明为static类型,以减少建立或者... 阅读全文
posted @ 2013-01-09 11:27 沐阳 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 请在(且只能在TC2.0)中运行下面代码,先不要看结果,想想会得到什么:#include<stdio.h>#include<stdlib.h>// 文章要求代码在Tc下运行 int main(int argn, char* argv[]){ char* szStringA = "Hello,world!"; char* szStringB = "Hello,world!"; *szStringA = '-'; // dev下上面的语句在执行过程中异常退出,说明dev并不允许改变字符串常量, dev下,如果查看szS 阅读全文
posted @ 2013-01-09 10:09 沐阳 阅读(1863) 评论(0) 推荐(0) 编辑