题目大意:
有两排的城市,一排N个城市,编号为1~N,一排M个城市,编号为1~M。这两排城市之间有K条路。
路都是直线连接,问:这些路,有多少道路是相交的,并且焦点不是城市所在的点,求出交点个数。
思路:
树状数组的思想。参考网上的图,先将所有边(u,v)按u升序排列,如果u相同,则按v升序排列。可
以看出来,路(u1,v1)和路(u2,v2)如果有交点的话,u1 > u2 并且 v1 < v2,或者 u1 v2,为了不重复计算,忽略后一种情况。如果排序完之后,可以发现:结果就是...
分类:
编程语言 时间:
2015-05-13 23:17:10
阅读次数:
165
oracle认为 null 最大。升序排列,默认情况下,null值排后面。降序排序,默认情况下,null值排前面。有几种办法改变这种情况:(1)用 nvl 函数或decode 函数 将null转换为一特定值(2)用case语法将null转换为一特定值(oracle9i以后版本支持。和sqlserve...
分类:
数据库 时间:
2015-05-13 19:31:56
阅读次数:
474
题目大意:
给你一个包含N个整数的序列,只能通过交换相邻的数字,最终变为升序顺序,问:最少需要多少次交换。
思路:
其实就是问冒泡排序的交换次数。其实就是求原序列的逆序数。用归并排序、线段树、树状数组都可以做。
但是如果用线段树和树状数组来做的话,因为元素个数是500000,但是元素值范围却是999999999,需
要先离散化。这里用间接排序的方法。用一个数组Arr[]存放原序列的值,另一个数组Id[]存放原序列编号
(1~N),对Id[]按Arr[]元素值的从大到小排序,得到Arr[]数组元素的相对大小...
分类:
编程语言 时间:
2015-05-13 16:50:31
阅读次数:
141
有一道SQL笔试题是这样子的:已知表信息如下:Department(depID, depName),depID 系编号,DepName系名Student(stuID, name, depID) 学生编号,姓名,系编号Score(stuID, category, score) 学生编码,科目,成绩找出每一个系的最高分,并且按系编号,学生编号升序排列,要求顺序输出以下信息:系编号,系名,学生编号,姓名...
分类:
数据库 时间:
2015-05-11 16:07:32
阅读次数:
224
#include
void init(int arr[],int len) //给数组赋值为10 9 8 7 6 5 4 3 2 1
{
int i = 0;
for (; i <= len; i++)
{
arr[i] = len - i;
}
}void sort(int arr[], int len) //按升序排列(冒泡排...
分类:
其他好文 时间:
2015-05-11 00:09:48
阅读次数:
96
仓储系统有张表,4000万数据,依照创建时间清理。创建时间上没有索引,只是数据是依照创建时间一条条的insert的。这样就写了个脚本依照id升序每次处理2000个,然后删除掉。这样仅仅要扫描到的数据满足时间条件,速度和有索引是一样的。一旦处理到不满足时间条件的数据,整个sql就会超时了,这样就不再处...
分类:
其他好文 时间:
2015-05-10 18:42:09
阅读次数:
82
问题描述:在数据加密和 数据压缩中常需要对特殊的字符串进行编码.给定的字母表A由26个小写英文字母组成,即A={a,b...z}.该字母表产生的长序字符串是指定字符串中 字母从左到右出现的次序与字母在字母表中出现的次序相同,且每个字符最多出现1次.例如,a,b,ab,bc,xyz,等字符串是升序字符...
分类:
其他好文 时间:
2015-05-10 01:00:48
阅读次数:
197
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增的排序的数组的一个旋转,输出旋转数组的最小元素。例如输入{1,2,3,4,5}的一个旋转为{3,4,5,1,2},该数组的最小值为1。算法思路:1.旋转数组的特点就是一个数组为两个有序的数组,这里以升序为例2.将数组...
分类:
编程语言 时间:
2015-05-09 22:03:20
阅读次数:
111
Map以按键/数值对的形式存储数据,和数组很类似,在数组中存在的索引,它们本身也是对象。 Map的接口 Map---实现Map Map.Entry--Map的内部类,描写叙述Map中的按键/数值对。 SortedMap---扩展Map,使按键保持升序排列 关于怎么使用,通常是选择Map的子类,而不直...
分类:
编程语言 时间:
2015-05-08 21:51:53
阅读次数:
156
题意:
给n个线段,问你覆盖满[1,T]内的每个点,最少需要多少条线段。
思路:
贪心,按照x坐标升序,y坐标降序排。
默认先放入第一条。
然后根据从属关系继续放线段。
注意的一点是 [1,2]和[3,4]就可以覆盖满[1,4]了。
然后注意因为默认放入了第一条,所第一条的状态要特判。
包括 第一条如果是[1,T]的话 输出1.
代码:
#include"cstdlib"
#i...
分类:
其他好文 时间:
2015-05-07 14:28:20
阅读次数:
86