上海邀请赛热身时候,C题是一个二分+贪心的题目。起初并不会,问了旁边的复旦大神。这几天无意发现VJ上一个专题。擦原来是一个经典类型。
二分+贪心
这类题目注意数据范围,1e8,1e9一般都是这样。
注意事项
二分法有很多写法,推荐用lf+1 < rf的写法。这个也符合计算机中数据存取的原则。对于浮点数,直接就循环100次,精度绝对够。
一般有两种类型,一种是询问最优,即数列中无重...
分类:
其他好文 时间:
2015-06-13 00:00:27
阅读次数:
317
拿到这个问题,我的第一反应是用贪心算法,优先满足不同种类多的,这样打的折扣比价多。但是,看了书中的分析发现,*我们设定的贪心策略实际上是有问题的, ie 在买 5 + 3 本的时候会出错。
看到这里,书上说可以利用改进的贪心算法,感觉如果换了相应的折扣数量,可能又会有不同的结果了。因而,没有深入的研究下去。
既然,贪心算法不可行,那就用动态规划呗。
这里的动态规划思路很简单不过写起来有些复杂。...
分类:
其他好文 时间:
2015-06-13 00:01:17
阅读次数:
423
对每个接口的请求记录log的方法有很多种,比如用filter、mvc interceptor、method interceptor等。如果需要记录请求消息的payload,前两种不适用。下面介绍第三种的实现方法。
第一步:引入包依赖
org.aspectj
aspectjweaver
1.8.6
com.fasterxml.ja...
分类:
其他好文 时间:
2015-06-12 23:59:17
阅读次数:
5962
关于Http协议:
1. Http协议概述
Htttp协议用于定义客户端与web服务器通讯的格式
Http是hypertext transfer protocol (超文本传输协议)
Http使用的请求-响应方式进行传输,一个请求对应一个响应,并且请求只能由客户端发起
Http协议的版本:Http/1.0 Http/1.1,其中1.0是一次请求发起一次连接就会断开。1.1请求发起连接不会...
分类:
Web程序 时间:
2015-06-13 00:00:39
阅读次数:
309
在一些不正规的网站,尤其是那些挂满广告的下载站,经常在你点击的下载链接之前,无论你点击网页的任何一处都会弹出新窗口。
这样的效果,可以轻松用JavaScript做到,还可以专门指定点击某一区域的Div,才触发打开新窗口的事件。
比如下图的效果:
在原网页中,指定一个Div,无论用户点击这个Div的任意区域,都会打开新窗口,而点击其它地方则不会。
在新窗口的地址栏不可以编辑,不能被调...
分类:
编程语言 时间:
2015-06-12 23:58:45
阅读次数:
421
超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是互联网上应用最为广泛的一种网络协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。
HTTP的发展是万维网协会(World Wide Web Con...
分类:
Web程序 时间:
2015-06-12 23:59:56
阅读次数:
386
用过jquery的人都会觉得jquery中的选择器$相当的方便吧,相比javascript自带的document.getElementById要灵活得多,但是并不是所有的项目都需要用到jquery这个库,但是我们又想要用到它的选择器,怎么办呢?最好的办法就是自己实现一个类似功能的函数。代码如下:
function $findChilds(parentNode, text)
{
//如果...
分类:
Web程序 时间:
2015-06-13 00:00:35
阅读次数:
327
问题描述:
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印出拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这3个数字能拍成的最小数字321323。
C++代码:void PrintMinNumber(int* numbers, int length)
{
if(numbers == NULL || length <= 0)...
分类:
编程语言 时间:
2015-06-13 00:00:52
阅读次数:
403
题目大意:给出n个点,要求你从最左边那个点走到最右边那个点,每个点都要被遍历过,且每个点只能走一次,问形成的最短距离是多少解题思路:用dp[i][j]表示第一个人走到了第i个点,第二个人走到了第j个点且已经遍历了1–max(i,j)的所有点的最短距离。因为dp[i][j] = dp[j][i]的,所以我们设i > j的
那么就有
当j < i-1 时,dp[i][j] = dp[i-1][j]...
分类:
其他好文 时间:
2015-06-13 00:01:03
阅读次数:
311
#include
#include
#include
#include
#define MAX 100
#define MAXVALUE 10000
typedef struct{
char ch;
int weight,flag;
int parent,lchild,rchild;
}HTNode;
typedef struct{
char ch;
i...
分类:
其他好文 时间:
2015-06-12 23:59:28
阅读次数:
437
#include
#include
#define MAX 30
#define N 30
#define M 10
#define NULL 0
typedef struct ebox{
int ivex,jvex;
struct ebox *ilink,*jlink;
}ebox,*pebox;
typedef struct vexbox{
char *data;
...
分类:
其他好文 时间:
2015-06-13 00:00:53
阅读次数:
352
/*----------------------------------------------------------------------------
功能: 获取某个节点下的所有ClassName为'sClass'的元素输入: oParent:要获取的class元素的父级节点 sClass:要获取的元素的class名称输出: 获取到的节点数组 -----...
分类:
Web程序 时间:
2015-06-12 23:58:03
阅读次数:
311
输入代码:
/*
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:sum123.cpp
*作 者:林海云
*完成日期:2015年6月12日
*版 本 号:v2.0
*
*问题描述:(1)先建立一个Point(点)类,包含数据成员x,y(坐标点);
(2)以Point为基类,派生出一个Circle(圆)类,增加数据成...
分类:
其他好文 时间:
2015-06-12 23:58:17
阅读次数:
313
因为linux入门基础是基于CentOS讲解的,讲的是CentOS上的软件包管理。ubuntu的软件包管理有这些:ubuntu软件包管理,包管理指南,ubuntu软件包管理。
linux软件管理:RPM软件包管理
源代码形式
绝大多数开源软件都是直接以源代码形式发布
源代码一般会被打包成tar.gz的归档压缩文件
程序源代码需要手动编译成二进制形式之后才能够运行使用
源代码基本编译...
分类:
系统相关 时间:
2015-06-12 23:59:32
阅读次数:
453
Python中的random模块用于生成随机数。
random.random函数原型 random.random()
生成一个范围在[0,1)的随机浮点数。import random
print random.random()random.uniform函数原型 random.uniform(a,b)
生成一个指定范围内的随机浮点数,两个参数一个是上限,一个是下限。如果a > b,则生成的随机数范...
分类:
编程语言 时间:
2015-06-12 23:56:37
阅读次数:
355
__LITTLE_ENDIAN_BITFIELD表示小端序,__BIG_ENDIAN_BITFIELD表示大端序。
/usr/include/linux/ip.h中有一段代码定义了ip首部的结构体,如下:
struct iphdr {
#if defined(__LITTLE_ENDIAN_BITFIELD)
__u8 ihl:4,
version:4;
#elif defined (_...
分类:
其他好文 时间:
2015-06-12 23:58:21
阅读次数:
360
原文链接地址:http://docs.oracle.com/javafx/2/ui_controls/table-view.htm#CJAGAAEE
在这一章,你将学习如:添加一个表格表、数据填充、编辑表格行等格组件 JavaFx的基本操作。
很多JavaFX SDK API种的类为在表格表单中呈现数据。在JavaFX 应用中对创建表格最重要的是TableView, TableCo...
分类:
编程语言 时间:
2015-06-12 23:58:38
阅读次数:
749