该题即是昨天没有做出来的题目,想了很久,想出了一个普通的做法,提交发现超时了。思想是新建一个数组,保存每个元素与后面的元素相乘后得到的最大值,然后再在该数组中选出最大的值,返回。【笨死发现行不通后决定还是求教度娘了。果然大神无处不在,该题可运用动态规划思想解决。考虑到正负数相乘后会出现的各种结果,采...
分类:
其他好文 时间:
2014-11-02 00:29:13
阅读次数:
276
题目可以转化成求关于t的同余方程的最小非负数解:x+m*t≡y+n*t (mod L)该方程又可以转化成:k*L+(n-m)*t=x-y利用扩展欧几里得可以解决这个问题:eg:对于方程ax+by=c设tm=gcd(a,b)若c%tm!=0,则该方程无整数解。否则,列出方程:a*x0+b*y0=tm易...
分类:
其他好文 时间:
2014-11-01 19:10:39
阅读次数:
206
Java 位运算之美。
Java 的<> 都是带符号移位。在不溢出的情况下,相当于乘以或除以2.在溢出的情况下,也就是符号位被移出,此时就会发生正数变负数,负数变正数的错误情况。...
分类:
其他好文 时间:
2014-10-31 15:50:07
阅读次数:
147
首先,你要记住并且不要问为什么:“在计算机中,所有的数据,最终都是使用二进制数表达的。”还要记住并且不要问为什么:“在计算机中,正数是直接用原码来表示和存储的。”要记住并且不要问为什么:“在计算机中,负数是以它的补码(即它的反码+1)来表示和存储的。”对于允许..
分类:
其他好文 时间:
2014-10-31 06:31:02
阅读次数:
182
HDU 1533 Going Home
题目链接
题意:就是一个H要对应一个m,使得总曼哈顿距离最小
思路:KM完美匹配,由于是要最小,所以边权建负数来处理即可
代码:
#include
#include
#include
#include
using namespace std;
const int MAXNODE = 105;
typedef int ...
分类:
其他好文 时间:
2014-10-30 22:37:26
阅读次数:
242
int printf(const char *format, ...); 向默认的标准输出设备按照规定格式输出信息,返回值为打印的字符个数,不包括结束符。例如正常执行printf("1234");printf("%d",1234)返回值都为4,输出失败(没有输出全部字符)则返回负数。
int fprintf(FILE *stream, const char *format, ...);向指定的...
分类:
其他好文 时间:
2014-10-30 11:53:36
阅读次数:
163
定义和用法slice() 方法可从已有的数组中返回选定的元素。语法arrayObject.slice(start,end)参数描述start必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。end可选。规定从何...
分类:
其他好文 时间:
2014-10-30 11:00:10
阅读次数:
209
最大连续子序列之和问题描述为:数组中里有正数也有负数,连续的一个或多个整数组成一个子数组,每个子数组都有一个和,求所有子数组的和的最大值。分析,对数组a进行一遍扫描,sum[i] 为前i个元素中,包含第i个元素且和最大的连续子数组,MaxSum保存当前子数组中最大和,对于a[i+1]来说,sum.....
分类:
其他好文 时间:
2014-10-30 01:47:35
阅读次数:
234
要考虑的东西实在也挺多的。总结如下:1 前面空格分隔符号的时候2 第一个符号位处理+ -3 遇到非数字字符退出4 为正数的时候,大于INT_MAX上溢5 为负数的时候, 小于INT_MIN下溢6 为空字符串或者空指针的时候 1 int atoi(const char *str) 2 {...
分类:
其他好文 时间:
2014-10-29 23:39:06
阅读次数:
444
定义和用法slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。语法stringObject.slice(start,end)参数描述start要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数...
分类:
编程语言 时间:
2014-10-29 18:54:20
阅读次数:
204