随笔分类 -  程序代码

摘要:题目大意:给出一个无向图,再给出W个虫洞,虫洞的意思就是权值为负的边,问你可否找到负权环题解:SPFA中,如果某个点进队列超过N次,就可以判断有负全环。#include#include#include#includeconst int maxn=510,inf=1000000000;int e,to... 阅读全文
posted @ 2014-12-14 15:27 cnyali 阅读(192) 评论(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 阅读(161) 评论(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 阅读(125) 评论(0) 推荐(0)
摘要:本题的大意是有N个处理器,任何两个处理器之间的传输信息是需要时间的,有的处理器之间不能传输信息,给出一个处理器传输信息时间的二维矩阵的下三角,X表示不能传输,问从第一个处理器传输到所有处理器所需要的总时间。本地是典型的DIJKSTRA水题,注意输入时需要用字符串输入,程序如下:#include#in... 阅读全文
posted @ 2014-12-08 23:59 cnyali 阅读(144) 评论(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)
摘要:同余方程(mod.cpp/c/pas)【问题描述】求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。【输入】输入文件为 mod.in。输入只有一行,包含两个正整数 a, b,用一个空格隔开。【输出】输出文件为 mod.out。输出只有一行,包含一个正整数 x 0 ,即最小正整数解。... 阅读全文
posted @ 2014-11-04 23:37 cnyali 阅读(250) 评论(0) 推荐(0)
摘要:#include#includeint c[101][101],f[101][101],p[101],m,n,d[10000],pre[101];int main(){ int i,j,k=1,top,last; scanf("%d%d",&n,&m); int x,y,z; ... 阅读全文
posted @ 2014-09-14 11:40 cnyali 阅读(161) 评论(0) 推荐(0)
摘要:#include#includeint a[101][101],d[101],m,n,p[101];int dfs(int x){ int i,j,k; for(i=1;i<=n;i++) if(a[x][i] && !p[i]){ p[i]=1; ... 阅读全文
posted @ 2014-09-14 11:16 cnyali 阅读(127) 评论(0) 推荐(0)
摘要:问题描述设有N堆沙子排成一排,其编号为1,2,3,…,N(N #include int n,f[101][101],sum[101][101],a[101];int main(){ int i,j,k,t; scanf("%d",&n); for(i=1;if[i][k]+f[k+1][j... 阅读全文
posted @ 2014-08-28 08:14 cnyali 阅读(126) 评论(0) 推荐(0)
摘要:#include #include #include #define MAX 100char stack[MAX];int top=-1;void fun( char a[],char b[]){ int i,len,j; len=strlen(a); j=-1; for(i... 阅读全文
posted @ 2014-08-22 16:56 cnyali 阅读(241) 评论(0) 推荐(0)