很简单的暴力枚举,却卡了我那么长时间,可见我的基本功不够扎实。两个数相乘等于一个数6*n,那么我枚举其中一个乘数就行了,而且枚举到sqrt(6*n)就行了,这个是暴力法解题中很常用的性质。这道题找出a和b中最小的那个,然后开始枚举,一直枚举到sqrt(6*n)的向上取整。这样所有可能是答案的情况都有...
分类:
其他好文 时间:
2014-09-24 00:31:35
阅读次数:
198
题目大意:有长度为N的颜色段,共有m种颜色,要将其划分成若干段,每一段的费用为这一段的不同颜色的数目的平方。求最小总费用。
Sol:
首先我们注意到答案不超过n,因为我们显然可以将每一个划分为一段,答案为n.
于是每一段的颜色总数不超过sqrt(n).
因此我们维护最后出现的sqrt(n)种颜色最后出现的位置,进行转移。
总的时间复杂度为O(n*sqrt(n)).
Co...
分类:
其他好文 时间:
2014-09-22 10:59:52
阅读次数:
274
SICP 习题 1.46 要求我们写一个过程iterative-improve,它以两个过程为参数,其中一个参数用来检测猜测是否足够好,另一个参数用来改进猜测。过程iterative-improve应该返回另一个过程,所返回的过程接收一个参数作为初始猜测,然后不断改进猜测直到结果足够好。题目还要求我们使用iterative-improve重写1.1.7的sqrt过程和1.3.3节的fixed-po...
分类:
其他好文 时间:
2014-09-21 00:46:49
阅读次数:
443
已知三点坐标,算圆面积。使用初等几何知识,根据海伦公式s = sqrt(p(p - a)(p - b)(p - c)) 和 外接圆直径 d = a * b * c / (2s) 来直接计算。 1 #include 2 #include 3 #include 4 #include 5 #inc...
分类:
其他好文 时间:
2014-09-20 21:10:29
阅读次数:
213
最小能被1至n整除的数 代码(C)本文地址: http://blog.csdn.net/caroline_wendy最小能被1至n整除的数, 就是1至n所有素数的乘积.求1至n所有素数的方法, 合数最大的质数因子, 只能在sqrt(n)以内, 可以减少遍历的范围.时间复杂度为O(n). O(sqrt(n)*sqrt(n)).代码:/*
* main.cpp
*
* Created on:...
分类:
其他好文 时间:
2014-09-20 17:37:49
阅读次数:
244
C语言的math.h中有个函数: double pow(double n,double m);计算n的m次方C语言的math.h中有个函数: double sqrt(double n);计算根号n的值(对n进行开根)C语言中的字符串: char *name="zh"; 输出的时候使用...
分类:
其他好文 时间:
2014-09-19 18:55:05
阅读次数:
165
Implement int sqrt(int x).难度:76,用二分查找。要求是知道结果的范围,取定左界和右界,然后每次砍掉不满足条件的一半,知道左界和右界相遇。算法的时间复杂度是O(logx),空间复杂度是O(1)。 1 public class Solution { 2 public ...
分类:
其他好文 时间:
2014-09-19 13:45:15
阅读次数:
122
题目地址:HDU 2256
思路:
(sqrt(2)+sqrt(3))^2*n=(5+2*sqrt(6))^n;
这时要注意到(5+2*sqrt(6))^n总可以表示成an+bn*sqrt(6);
an+bn*(sqrt(6))=(5+2*sqrt(6))*(a(n-1)+b(n-1)*sqrt(6))
=(5*a(n-1)+12*b(n-...
分类:
其他好文 时间:
2014-09-18 20:46:04
阅读次数:
141
本题目要求计算下列分段函数f(x)的值:注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。输入格式:输入在一行中给出实数x。输出格式:在一行中按“f(x) = result”的格式输出,其中x与result都保留两位小数。输入样例1:10输出样例1:f(10.00) ...
分类:
其他好文 时间:
2014-09-18 14:30:33
阅读次数:
893
由题意我们可以知道,花费最多为n。
所以单次最多涂掉sqrt(n)种颜色。
dp[i]:涂到第i个位置,之前的花费最少为多少。
biao[i][j]:在第i个位置,往前涂j-1种颜色,涂到哪个位置。
vis[i]:i颜色最后出现的位置,不存在等于-1。
我们先离散化颜色。
然后很显然转移方程:
dp[i]=min(dp[i],dp[biao[i][j]]+(j+1)*(j+1));
...
分类:
其他好文 时间:
2014-09-17 16:56:22
阅读次数:
201