算法学习
wanber.wangbo
这个作者很懒,什么都没留下…
展开
-
跳跃最大长度
【问题描述】给一个非负整数数组。假设你最初的位置为0,数组中每一个元素的值代表你能跳跃最大的长度,判断是否能达到数组的最后一个位置【输入形式】第一行数组长度 第二行输入一个非负整数数组【输出形式】布尔类型的值【样例输入】 5 1 2 3 1 4【样例输出】 true package com;import java.util.Scanner;public c...原创 2018-05-30 21:23:55 · 621 阅读 · 0 评论 -
舍伍德求中间值(Sherwood 型线性时间选择算法 )
① 先判断是否需要进行随机划分即( kϵ( 1, n) ? n>1?);② 产生随机数 j,选择划分基准,将 a[j]与 a[l]交换;③ 以划分基准为轴做元素交换,使得一侧数组小于基准值,另一侧数组值大于基准值;④ 判断基准值是否就是所需选择的数,若是,则输出;若不是对子数组 重复步骤②③import timeimport randomdef look_for(L,left,righ...原创 2018-06-09 11:16:53 · 1944 阅读 · 0 评论 -
C、C++竞赛常用函数总结:
memset(a,n,sizeof(a));//把数组a的值全部初始化为nmemcpy(b,a,sizeof(a));//把数组a的值复制到数组b中memcpy(b,a,sizeof(int)*k);//把前k个复制到b中原创 2018-06-30 11:57:22 · 1864 阅读 · 0 评论 -
湖大oj多项式加法
题目描述一个多项式可以表示为一组数对,数对中第一个数始终为整数,且唯一,表示多项式的次数,另一数表示为对应的系数且不为0。输入两组数对,每组以0 0作为结束,实现对两个多项式的加法并按降幂输出结果数对输入每行输入一个数对,以空格为分隔符,以0 0结束输出每行输出一个数对,以空格为分隔符样例输入5 123 81 215 50 100 03 1230 11...原创 2018-07-17 15:24:50 · 634 阅读 · 1 评论 -
贪心算法之硬币问题
有1元,5元,10元,50元,100元,500元的硬币个C1,C2,C3,C4,C5,C6枚,用这些硬币来支付A元,最少需要多少枚硬币?#include<iostream>using namespace std;int main(){ const int v[6]={1,5,10,50,100,500}; int c[6]; int a,ans=0;/...原创 2018-07-17 15:01:30 · 731 阅读 · 0 评论 -
POJ1852-Ants
描述一群蚂蚁在长度为1厘米的水平杆上行走,每根杆的速度恒定为1厘米/秒。当一只行走的蚂蚁到达极的一端时,它会立即脱落。当两只蚂蚁相遇时,它们会转身向相反方向开始行走。我们知道蚂蚁在杆子上的原始位置,不幸的是,我们不知道蚂蚁行走的方向。你的任务是计算所有蚂蚁从杆上掉下来所需的最早和最晚时间。输入第一行输入包含一个整数,给出后面的案例数。每种情况的数据都以两个整数开始:极点的长度(cm)和...原创 2018-07-16 21:46:48 · 456 阅读 · 0 评论 -
POJ No.2386 Lack Counting
DescriptionDue to recent rains, water has pooled in various places in Farmer John's field, which is represented by a rectangle of N x M (1 <= N <= 100; 1 <= M <= 100) squares. Each squar...原创 2018-07-16 21:43:13 · 225 阅读 · 0 评论 -
蛇形填数
#include<iostream>#include<string.h> using namespace std;int main(){ int n,x,y,temp; cin>>n; int a[n][n]; memset(a,0,sizeof(a)); temp=a[x=0][y=n-1]=1; while(temp<n*n) {...原创 2018-06-30 12:20:43 · 110 阅读 · 0 评论 -
单源最短路径小总结
Dijkstra:#Dijkstra算法只能解决有向无负权图单源最短路径#其基本思想是每次找出距离已经访问过的集合最短边连接的点,以该点为基准进行松弛#Dijkstra算法只能解决有向无负权图单源最短路径#其基本思想是每次找出距离已经访问过的集合最短边连接的点,以该点为基准进行松弛import timebegin=time.clock()juzhen=[ [0,4,2,5,999,...原创 2018-06-09 11:15:20 · 600 阅读 · 0 评论 -
三角形
有n根棍子,棍子i的长度为ai。想要从中选出三根棍子组成周长尽可能长的三角形。请输出最大周长,若无法组成三角形则输出0.#include<iostream>#include<algorithm>using namespace std;int main(){ int n,ans=0; cin>>n; int a[n]; for(int i=0;i&...原创 2018-07-16 09:17:18 · 138 阅读 · 0 评论