2016年4月20日

最大连续子序和

摘要: 最大连续子序列算是一个很经典的问题,它有多种算法可以实现,现在学习一下 算法一(暴力)O(N^3) 就是遍历完所有的子串,求出其中的最大值并保存。复杂度为O(N^3),臃肿且容易超时 代码如下: 其中site函数为计算的关键,我们将数组假设为一条线长,其计算顺序为: 总长: 计算中: 第一次: i 阅读全文

posted @ 2016-04-20 16:07 八云紫是小loli 阅读(311) 评论(0) 推荐(0) 编辑

2016年4月19日

UVA, 507 Jill Rides Again

摘要: 题意:首先输入N,表示接下来N组数据,再输入M,表示每组数据有M-1个数字,求数字最大子序和,而且打印出其起点和终点. 思路:动态规划,最大子序和 该题和 UVA, 10684 The jackpot 相似,只是多加了一个查找起点终点操作和输入数字的变化。 代码如下: 该题需注意同一大小的子序和,选 阅读全文

posted @ 2016-04-19 21:58 八云紫是小loli 阅读(261) 评论(0) 推荐(0) 编辑

UVA, 10684 The jackpot

摘要: 题意:首先输入一个N,代表后面N个继续输入的数字,求数字的最大子序列和 思路:动态规划,最大子序列和(最大子段和) 最大子序列和的转移方程:f[i]=max(f[i-1]+date[i],date[i])可以直接用…… 代码如下: 上面代码里使用了qsort函数,是一个排序挺方便的函数,先简单地用一 阅读全文

posted @ 2016-04-19 17:49 八云紫是小loli 阅读(236) 评论(0) 推荐(0) 编辑

UVA, 11129 An antiarithmetic permutation

摘要: 题意:读入一个数n,代表从0到n-1的数列,让你输出一个数列,这个数列的子序列均不为等差数列 思路:= =参考了网上大神的代码,得到的一个规律:将等差(?)数列按奇偶位置分成两个数列,再重复这一步骤,最后得到的数列一定是非等差数列,其实就是分治法 ps:分治法:将大的问题分为无数个小问题,解决后再将 阅读全文

posted @ 2016-04-19 15:41 八云紫是小loli 阅读(368) 评论(0) 推荐(0) 编辑

UVA, 374 Big Mod

摘要: 题意:给你三个数b,p,m,求b^p%m的值 思路:快速幂取模算法,分治法 下面代码: 阅读全文

posted @ 2016-04-19 11:59 八云紫是小loli 阅读(152) 评论(0) 推荐(0) 编辑

快速幂取模算法

摘要: RSA公钥的加密方法 即 a^b%c;当a,b值较大时,直接求值是很困难的,因而有以下算法: 1:利用公式 (a*b)%c=( (a%c)*b)%c) 对每一步进行处理,由公式可知……该算法仅处理了数据过大的问题,耗时依旧没有解决。 代码如下: 2:快速幂取模算法,利用二分法进行优化,即将每次res 阅读全文

posted @ 2016-04-19 11:55 八云紫是小loli 阅读(192) 评论(0) 推荐(0) 编辑

2016年4月18日

二叉树的建立与三种遍历

摘要: 树是一种数据结构,为什么叫它“树”,因为它倒过来就是一棵树 根在上,而叶在下 其概念主要有根、父、子、深、叶等, 如上图:A为这棵树的根 B为D的父,而D则为B的子 E、F、G互为兄弟, D也可以叫叶 这也是一棵深度为2的数 ps:A节点为深度0 所谓的N叉树即它每个(父)节点下有N个(子)节点 = 阅读全文

posted @ 2016-04-18 18:43 八云紫是小loli 阅读(216) 评论(0) 推荐(0) 编辑

并查集

摘要: 并查集是一种数据结构,便于查找同一特性的元素,因而是我们需要学习的 并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。常常在使用中以森林来表示。 集就是让每个元素构成一个单元素的集合,也就是按一定顺序将属于同一组的元素所在的集合合并。 摘自百科 下面代码: const int ma 阅读全文

posted @ 2016-04-18 14:29 八云紫是小loli 阅读(190) 评论(0) 推荐(0) 编辑

2016年4月16日

素数筛法

摘要: = =素数是一个很重要的块,所以筛法也是灰常重要的 首先 是传统筛法 第一版: ps:其实我个人感觉这个算法平常的一些题是够用的( ̄ε(# ̄)☆╰╮( ̄▽ ̄///)(快学习! 第二版: 相比于第一版,先去除了2以后的偶数,因为这些偶数根本不可能是素数嘛(~ ̄▽ ̄)~,( ̄ε(# ̄)☆╰(废话 嗯,容 阅读全文

posted @ 2016-04-16 10:48 八云紫是小loli 阅读(270) 评论(0) 推荐(0) 编辑

UVA, 967 Circular

摘要: 题意:给你一个区间,问其中是否存在素数变化位数后仍为素数 例:19937, 99371, 93719, 37199, 71993 问区间中有几个 思路:打印素数表,循环判断即可…… ps:( ̄ε(# ̄)(终于对了,…….超时是因为每次输入一个数重复查找前面满足circle的数 AC代码: 关于cir 阅读全文

posted @ 2016-04-16 09:10 八云紫是小loli 阅读(718) 评论(0) 推荐(0) 编辑

导航