大意:每个测试用例是一个数组。找出xi和xj,(xi>xj),做运算令xi=xi-xj。可以做若干组这样的运算,使得最后的数组和最小。输出此和。
分析:用优先队列,每次找出最大的和次大的,处理后再加入此队列。注意多个相同的xi这种情况!...
分类:
其他好文 时间:
2014-05-07 07:19:27
阅读次数:
301
今天看一帖子,赵忠大哥的回复挺经典也很有用,记录下来!
在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。
在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可避开因局部数组大小超过默认堆栈大小1MB造成程序不能正常...
分类:
编程语言 时间:
2014-05-07 06:07:39
阅读次数:
378
权重随机在项目中经常用到,所以我把它抽象到一个工具类中。
一般实现随机权重有两种方式:
1. 使用一个数组存放权重对应的实际目标,比如A的权重是2,B的权重是3,那么数据长度为5, 数组前两个存放A,后三个存放B。
然后随机一个0-数据长度的数字,直接取数组对应下标的值就可以了。
优点:数据结构简单,算法搞笑,实现简单
缺点:当权重值比较大同时数据又比较多的时候,会浪费内存...
分类:
其他好文 时间:
2014-05-07 05:34:36
阅读次数:
262
java中byte数组与十六进制字符串相互转换。Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示。所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L)。...
分类:
编程语言 时间:
2014-05-07 05:22:28
阅读次数:
462
以前的模板和题目
白书例题,基本模板,多个串连接时的处理,二分加分组的处理。
注意n和m的值
n为字符个数
m为最大字符值+1
分组时,分出来的区间是[ ),左闭右开
idx[],的有效只是1-t-1,为t表示自己添加的字符
#include
#include
#include
#include
using namespace std;
const int maxn = ...
分类:
其他好文 时间:
2014-05-07 04:50:29
阅读次数:
250
一 线性表
1.1 数组
1.1.1 Remove Duplicates from Sorted Array
1.1.2 Remove Duplicates from Sorted Array II
1.1.3 Search in Rotated Sorted Array
1.1.4 Search in Rotated Sorted Array II
1.1.5 Median of...
分类:
其他好文 时间:
2014-05-07 04:24:26
阅读次数:
363
题目:
在数轴上有n个区间,每个区间都是连续的整数区间。现在要在数轴上任取一堆元素,构成一个集合V,要求每个区间和V的交集至少有两个不同的元素。求V的最小的元素个数。
问题分析:
可以使用贪心算法,最终结果肯定是小于大于2×n的,如果两个集合之间有相同的元素,那么选相同的元素必然会使结果更小,当我们以e排序后,如果有相同的必然是最后的元素。所以贪心的策略就是如果一个区间最...
分类:
其他好文 时间:
2014-05-07 04:04:23
阅读次数:
294
package com.array;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import...
分类:
编程语言 时间:
2014-05-07 03:45:11
阅读次数:
365
数值算法:解方程、微积分、数值分析 多用在工程设计
非数值算法:搜索、排序、拆分、合并 多用在系统
一、线性搜索
1.算法
1.1从头开始,依次将每一个元素与查找目标进行比较
1.2或者找到目标,或者找不到目标
2.评估
2.1平均时间复杂度:O(N),线性时间
2.2对数据没有任何规律性要求 穷举法
二、二分搜索(折半搜索)
1.算法
1.1假设表中...
分类:
其他好文 时间:
2014-05-06 15:36:44
阅读次数:
260