随笔分类 -  算法分享

摘要:题目大意:给出一个无向图,再给出W个虫洞,虫洞的意思就是权值为负的边,问你可否找到负权环题解:SPFA中,如果某个点进队列超过N次,就可以判断有负全环。#include#include#include#includeconst int maxn=510,inf=1000000000;int e,to... 阅读全文
posted @ 2014-12-14 15:27 cnyali 阅读(191) 评论(0) 推荐(0)
摘要:题目大意:给出一个有向图,点和边都不超过1000000,求1号点到所有点的距离和+所有点到1号点的距离和。题解:1号点到其他点的距离和直接用SPFA求,再将所有边反向,求出1号点到所有点的距离和,就是所有点到1号点的距离和,因为点非常多,故采用链式前向星存储,因这个和可能很大,注意答案要用long ... 阅读全文
posted @ 2014-12-14 15:16 cnyali 阅读(163) 评论(0) 推荐(0)
摘要:题目大意:池塘里有N片荷叶,给出每片荷叶的坐标,青蛙要从X号荷叶跳到Y号荷叶,问单步最少要跳多少才能到达。题解:这道题可以采取类FLOYD的方法,要从X跳到Y,当越来越多的荷叶做为中间点来跳的时候,显然有可能单步跳的距离更短。程序如下:#include#include#includeconst in... 阅读全文
posted @ 2014-12-10 17:02 cnyali 阅读(204) 评论(0) 推荐(0)
摘要:题目大意:有个小朋友要从家里到学校,可以通过走路或者乘地铁的方式到达,走路每小时10KM,乘地铁每小时40KM,他可以走路+换乘地铁等多种方式到达,给出家,地铁站和学校的坐标,请问他到达学校的最短时间是多少分钟(四舍五入),假设没有等待地铁时间。题解:本题是一道要转换模型的最短路题,要将距离转化成时... 阅读全文
posted @ 2014-12-10 16:18 cnyali 阅读(159) 评论(0) 推荐(0)
摘要:题目大意是:有N个人,相互之间可以传递信息,但是A传给B与B传给A的时间是不一样的,一个人同时可以向多个人传递信息,时间不一样,问你把消息传给谁?可以在最短时间让消息传递给所有人。典型的FLOYD求最短路,最后找到所有人距离最大之最小那一个人,输出答案。#include#include#includ... 阅读全文
posted @ 2014-12-09 00:44 cnyali 阅读(192) 评论(0) 推荐(0)
摘要:题目大意是:有N个牛棚和T条边相连,每条边有个权值,问1号到N号牛棚之间的最短距离本题是又是DIJKSTRA最短路水题,注意任何两个牛棚之间可能有多条路相连,输入时先输入边,再输入点,程序如下:#include#include#includeconst int maxn=1010,maxint=10... 阅读全文
posted @ 2014-12-09 00:13 cnyali 阅读(124) 评论(0) 推荐(0)
摘要:本题的大意是有N个处理器,任何两个处理器之间的传输信息是需要时间的,有的处理器之间不能传输信息,给出一个处理器传输信息时间的二维矩阵的下三角,X表示不能传输,问从第一个处理器传输到所有处理器所需要的总时间。本地是典型的DIJKSTRA水题,注意输入时需要用字符串输入,程序如下:#include#in... 阅读全文
posted @ 2014-12-08 23:59 cnyali 阅读(144) 评论(0) 推荐(0)
摘要:1、近10年NOIP普及组前三题——30道题练入门2、USACO全体——练基础算法3、近10年NOIP提高组全部试题——感受OI基础3.1、刘汝佳白书训练指南所有例题——打好基础4、开始SGU版切刷题——不管苦难与否直接扫荡过,这个过程一直伴随你到全国赛,最好题量破300~~5、HNOI近10年试题... 阅读全文
posted @ 2014-12-03 00:38 cnyali 阅读(501) 评论(0) 推荐(0)
摘要:#include#includeconst int maxn=10010,maxm=200010;int e,to[maxm],next[maxm],begin[maxn];int e1,to1[maxm],next1[maxm],begin1[maxn];int p[maxn],pd[maxn],... 阅读全文
posted @ 2014-12-02 21:21 cnyali 阅读(130) 评论(0) 推荐(0)
摘要:对于某一个图,我们存储它的方式有很多种,其中常用的有1、邻接矩阵(建图简单,使用简单,但是遍历图时间复杂度太大)2、邻接表(建图较复杂,对于特殊的米字图时间复杂度太大)3、优化的邻接表,在我前面一片文章里有介绍,就是为每一个节点保存一个LAST数组(最后的点编号),可以极大提高建图速度http://... 阅读全文
posted @ 2014-12-01 11:18 cnyali 阅读(586) 评论(0) 推荐(0)
摘要:之前的解题报告无法过全部数据,因邻接表没有优化,统计权值方式也太暴力,做以下修改1、建邻接表时加一个数组来记录每个节点的尾指针位置2、统计每个点周围所有点权值最大的两个点3、利用x1*y1+x1*y2+x1*y3....=x1*(y1+y2+y3+...)进行简单优化加速程序如下,完爆官方所有数据:... 阅读全文
posted @ 2014-12-01 00:46 cnyali 阅读(197) 评论(0) 推荐(0)
摘要:1.生活大爆炸版石头剪刀布【问题描述】石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。在《生活大爆炸》第二季第 8 集中出现了一种石头剪刀布的升级版游戏。升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势:斯波克:《星际迷航》主角之一。蜥蜴人:《星... 阅读全文
posted @ 2014-11-11 22:22 cnyali 阅读(354) 评论(0) 推荐(0)
摘要:这里征集各种低级错误,以便时刻提醒大家不要再犯!1、写错文件名,包括程序文件名,输入输出文件名,还包括大小写出错。2、没有去掉调试信息,或者调试时注释掉文件输入输出没有去掉,或者加了system("pause");3、输出格式错误,多输出空格,或者结果中间无故换行。4、开大了数组或者开小了数组。。。... 阅读全文
posted @ 2014-11-11 17:51 cnyali 阅读(258) 评论(0) 推荐(0)
摘要:1. 珠心算测验【问题描述】珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其... 阅读全文
posted @ 2014-11-11 01:45 cnyali 阅读(1742) 评论(0) 推荐(0)
摘要:1、欧几里得算法:欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。证明: a可以表示成a = kb + r,则r = a mod b 假设d是a... 阅读全文
posted @ 2014-11-04 18:42 cnyali 阅读(258) 评论(0) 推荐(0)