随笔分类 - 最短路
摘要:题目名称 正确答案 序列问题 长途旅行 英文名称 answer sequence travel 输入文件名 answer.in sequence.in travel.in 输出文件名 answer.out sequence.out travel.out 时间限制 1s 1s 1s 空间限制 256M
阅读全文
摘要:题目名称 笔记 括号 城堡可执行文件名 note brackets castle输入文件名 note.in brackets.in castle.in输出文件名 note.in brackets.out castle.in每个测试点时限 1 秒 1 秒 1 秒内存限制 512MB 512MB 512
阅读全文
摘要:1.第K小数 (number.cpp/c/pas) 【问题描述】 有两个正整数数列,元素个数分别为N和M。从两个数列中分别任取一个数 相乘,这样一共可以得到N*M个数,询问这N*M个数中第K小数是多少。 【输入格式】 输入文件名为number.in。 输入文件包含三行。 第一行为三个正整数N,M和K
阅读全文
摘要:/*poj 2449 k短路 A* 估价函数是 s到i的距离+i到t的距离 */ #include #include #include #define inf 1e7 #define maxn 100010 using namespace std; int n,m,S,T,K,num1,num2,head1[maxn],head2[maxn],dis[maxn]; int q[maxn],hea...
阅读全文
摘要:完美的序列(sequence)Time Limit:1000ms Memory Limit:64MB题目描述LYK 认为一个完美的序列要满足这样的条件:对于任意两个位置上的数都不相同。然而并不是所有的序列都满足这样的条件。于是 LYK 想将序列上的每一个元素都增加一些数字(当然也可以选择不增加),使
阅读全文
摘要:/* cogs 2507 零食店 跪了这题的数据了.... 第一遍Q*m 暴力询问 嗯 以为能的70 但只有40 Q已经到了1e6了 考试的时候 放弃了第三题又打了一遍 这次是Q*(n+logn) 最后发现和暴力分一样.... 好吧数据很厉害 吓得我在地上爬23333 好吧 考完了之后 看了正解 我靠这不和我的一个样吗 哎 啊啊啊 二分.... 傻傻的我笑了 都想出了方程 没打二分 ..... ...
阅读全文
摘要:/* bzoj 2763 SPFA小优化 循环队列+SLF 顺面改掉自己之前手打qeueu的坏毛病*/ #include #include #include #define mk make pair #define maxn 2000010 #define N 2000000 using namespace std; int n,m,k,s,t,num,hea[maxn],dis[maxn],c...
阅读全文
摘要:/* hdu 1599 ( find the mincost route ) Floyed求最小环 每个环一定是 由 i j k 构成 假设k是环中的max 要成环 就要保证不是链(md废话) 利用Floyed的最外层循环含义 i-j最短路经过的点编号=3 因为i j k 互不相同 */ #include #include #include #define maxn 110 #defi...
阅读全文
摘要:/* 对dij的再一次理解 每个点依旧永久标记 只不过这里多搞一维 0 1 表示最短路还是次短路 然后更新次数相当于原来的两倍 更新的时候搞一下就好了 */ #include #include #include #include #include #define maxn 1010 using namespace std; int T,n,m,num,head[maxn],dis[maxn]...
阅读全文
摘要:/* 暴力暴力 离线每次添边 堆优化dij 70 SPFA 80..... */ #include #include #include #include #include #include #define maxn 210 using namespace std; int n,m,Q,num,head[maxn],dis[maxn],t[maxn],f[maxn]; queueq; struc...
阅读全文
摘要:/*bzoj 1613*/ /*暴力5884ms*/ #include #define maxn 10010 using namespace std; int n,m,a[maxn],f[maxn][510]; int max(int x,int y){ return x>y?x:y; } int main() { scanf("%d%d",&n,&m); for(int...
阅读全文
摘要:/*双向bfs (得分和单项的一样多....)70*/ #include #include #include #include #define maxn 35 #define maxm 810010 using namespace std; int n,m,q,g[maxn][maxn]; int X,Y,sx,sy,ex,ey,falg,vis[maxn][maxn]; int xx[4]={...
阅读全文
摘要:/* floyd 传递闭包 开始Floyd 之后统计每个点能到的或能到这个点的 也就是他能和几个人确定胜负关系 第一批要有n-1个 然后每次减掉上一批的人数 麻烦的很 复杂度上天了.... 正难则反 我们考虑一定不能确定排名的 */ #include #include #include #define maxn 110 using namespace std; int n,m,f[maxn]...
阅读全文
摘要:/*暴力+乱搞 55分(似乎只有暴力得分了)*/ #include #include #include #include #include #define maxn 1000010 using namespace std; int n,m,num,head[maxn],dfn[maxn],low[maxn],s[maxn],top,f[maxn]; int sum,topt,c[maxn],di...
阅读全文
摘要:/* 这做法好像有个很高大上的名字叫做分层图. 其实就是按照题目的意思重新建图 节点有n个变成n*k个 每个表示节点的编号和剩下能用的k值 然后...卡spfa 需要堆优化的dij */ #include #include #include #include #include #define pa pair #define mk make_pair #define maxn 2000010 ...
阅读全文
摘要:/* 中国的题目 ——贱买贵卖 0.0 这题wa了好多遍 第一遍看着题 哎呀这不很简单嘛 从起点能到的点都是合法的点 然后统计合法的点里最大最小值 然后printf 也不知道哪里来的自信 就这么交了 然后爆零了 第二遍想了想 恩 刚开始思路有问题 必须先买后卖 买的点要在卖的前面 恩 很有道理 然后数组模拟着统计了一下i之前的最小值和i之后的最大值 并且确保每个点都是合法的 然后 连样例都不对...
阅读全文
摘要:#include #include #include #include #define maxn 20010 using namespace std; int n,m,k,num,f[maxn],head[maxn],dis[maxn]; struct node { int u,v,t,pre; }e[maxn]; int init() { int x=0;char s=getc...
阅读全文
摘要:#include #include #include #include #define maxn 100010 using namespace std; int n,m,T,num1,num2,head1[maxn],head2[maxn],dis1[maxn],dis2[maxn],f[maxn]; queueq1; queueq2; int ans[maxn],maxx; struct no...
阅读全文
摘要:/* - - 这题做了一天.....粗心害死人啊 题目描述恶心 数据更恶心... 先处理一下能走的边 能走的点(到这建边从终点跑一下.) 然后就是SPFA了 注意负环的判断 */ #include #include #include #include #define maxn 1110 #define maxm 10010 #define inf 999999999 using namesp...
阅读全文
摘要:#include #include #include #include #define maxn 110 #define pa pair using namespace std; int n,num,head[maxn],dis[maxn],ans,len=0x7fffffff,f[maxn]; struct node { int u,v,t,pre; }e[maxn*maxn]; vo...
阅读全文

浙公网安备 33010602011771号