For their physical fitness program, N (2 ≤ N ≤ 1,000,000) cows have decided to run a relay race using the T (2 ≤ T ≤ 100) cow trails throughout the pasture. Each trail connects two different intersections (1 ≤ I1i ≤ 1,000; 1 ≤ I2i ≤ 1,000), each of w…
题意:       给你一个无向图,然后给了一个起点s和终点e,然后问从s到e的最短路是多少,中途有一个限制,那就是必须走k条边,路径可以反复走. 思路:       感觉很赞的一个题目,据说证明是什么国家队集训队论文什么的,自己没去看那个论文,就说下我自己的理解吧,对于这个题目,我们首先分析下Floyd,那个算法的过程中是在更新的dis[i][j]上再更新,再更新...,是想一下,我们每次都把更新的结果存下来,就是每次答案数组初始化全是INF,然后用当前的dis数组和原始的map来更新,那么更…
http://acm.pku.edu.cn/JudgeOnline/problem?id=3613 求经过N条边的最短路 (2 ≤ N ≤ 1,000,000) 倍增floyd,主体是矩阵乘法.考虑一个x边的路径矩阵和y边的路径矩阵,两个矩阵用类似floyd的方法结合起来,就得到x+y边的路径矩阵,现在想要得到N边路径矩阵 然后就是“快速幂”的思想啦...把N拆成2的幂,只需要log(N)次矩阵乘法就搞定 伪floyd O(N^3),所以总的时间复杂度O(logN*n^3) 其中n是点的个数 由…
find the longest of the shortest Time Limit: 1000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2524    Accepted Submission(s): 888 Problem Description Marica is very angry with Mirko because he found a new gi…
//求出4×4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和 #include <stdio.h> int main() { int sum=0; int max,min; int max1,max2;//记录最大值的坐标 int min1,min2;//记录最小值的坐标 int i,j; int a[4][4]; //为数组赋值 for(i=0;i<4;i++) { for(j=0;j<4;j++) { scanf("%d",&…
/* ** 题目要求过最少k条边的最短路 */ #include <iostream> #include <cstdio> #include <cstring> #include <queue> #include <algorithm> using namespace std; const int maxn = 5010; const int maxm = 200010; const int INF = 1<<31-1; struct…
题目链接 题意: 找从a到b的经过N条边的最短路 分析: 有点板子...方法:矩阵存,然后有个类似快速幂的思想,然后再加上离散化就好了. 没啥写的,只能说说矩阵了,我用的方法是先枚举i,j再枚举k,当然大部分人还是喜欢用floyd的代码去写,其实是类似的,然后还有什么呢,就是注意初始化,然后稍微处理一下就好了,代码如下: #include <cstdio> #include <cstring> #include <string> using namespace std;…
先求最小割,然后对残量网络跑Tarjan.对于所有满流的边,若其两端点不在同一个SCC中,则这条边是满足条件的. 证明见 来源:HAOI2017 新型城市化…
在mysql,数据如下:#查询某一用户该日抽奖时间 select draw_time from user_draw_log where user_id = 1 and draw_date='2016-03-09' order by id; +---------------------+ | draw_time | +---------------------+ | 2016-03-09 13:52:46 | | 2016-03-09 13:52:53 | | 2016-03-09 13:53:0…
Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 31490   Accepted: 10150 Description Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is sitting on another stone. He plans to visit her,…
题目链接:  http://codeforces.com/problemset/problem/14/D 思路:直接枚举每一天路径的两端,然后求以每一端为树根的树上最长路径,然后相乘就可以了. #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <vector> #define REP(i, a, b) for (int…
校园网络 时间限制:3000 ms  |  内存限制:65535 KB 难度:5   描述 南阳理工学院共有M个系,分别编号1~M,其中各个系之间达成有一定的协议,如果某系有新软件可用时,该系将允许一些其它的系复制并使用该软件.但该允许关系是单向的,即:A系允许B系使用A的软件时,B未必一定允许A使用B的软件. 现在,请你写一个程序,根据各个系之间达成的协议情况,计算出最少需要添加多少个两系之间的这种允许关系,才能使任何一个系有软件使用的时候,其它所有系也都有软件可用.   输入 第一行输入一个…
题目连接:http://poj.org/problem?id=3613 题意:从S 到 T 经过边得个数恰为k的最短路是多少. 分析:01邻接矩阵A的K次方C=A^K,C[i][j]表示i点到j点正好经过K条边的路径数,把乘法改为加法,相当于k次Floyd,最后矩阵快速幂优化. #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <iostre…
二分+最短路算法 #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<queue> #include<vector> #define maxn 100010 using namespace std; const int INF = 0x3f3f3f3f; struct Node { int p; int len; Node…
题目链接:http://poj.org/problem?id=3613 思路:我们知道如果矩阵A表示经过1条边的方案数,那么A^N矩阵就代表这经过N条边的方案数,而本题中要求经过N条边的最短距离,于是我们可以把原来矩阵的乘法改成加法,这在08年国家队的一篇论文中有证明:<矩阵乘法在信息学中的应用>.至于怎么求A^N矩阵,二分即可. http://paste.ubuntu.com/5925042/…
在Bellman-Ford算法之后,我们总算迎来了spfa算法,其实就如同堆优化Dijkstra算法之于朴素版Dijkstra算法,spfa算法仅仅是对Bellman-Ford算法的一种优化,但是在形式上,它看起来特别像堆优化Dijkstra算法罢了! Bellman-Ford算法会遍历所有边并进行松弛操作,然而我们应该知道很多的更新是无用的,所以我们的优化就体现在这里,因为只有那些前一步被更新的点,它所连接的点才有被更新的意义,所以我们会将被更新的点放入一个队列中: 注意点: 1) st数组的…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1877 [题目大意] 找出最多有几条点不重复的从1到N的路,并且要求在满足这个条件的情况下最短的总路程 [题解] 对每个点拆点,连费用为0流量为1的边,之后跑spfa得出最大流和最小费用即可. [代码] #include <iostream> #include <cstdio> #include <cstring> #include <algorithm…
SYNOPSIS CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name [ (column_name [, ...] ) ] AS query DESCRIPTION 描述 CREATE TABLE AS 创建一个表并且用来自 SELECT 命令计算出来的数据填充该表. 该表的字段和 SELECT 输出字段的名字及类型相关. (只不过你可以通过明确地给出一个字段名字列表来覆盖 SELECT 的字段名). CREAT…
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1126 存在参数a,b为负数的情况.这时候要这么处理: 根据mod值(7)加至刚好大于0. 否则有些样例是过不去的. #include <algorithm> #include <iostream> #include <iomanip> #include <cstring> #include <climits>…
#include <bits/stdc++.h> using namespace std; #define int long long const int mod = 7; struct matrix { int a[5][5]={}; int n,m; }; matrix I(int n) { matrix ret; ret.n=n; ret.m=n; for(int i=1;i<=n;i++) ret.a[i][i]=1; return ret; } matrix operator…
Cow Relays Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7335   Accepted: 2878 Description For their physical fitness program, N (2 ≤ N ≤ 1,000,000) cows have decided to run a relay race using the T (2 ≤ T ≤ 100) cow trails throughout…
最短路问题此类问题类型不多,变形较少 POJ 2449 Remmarguts' Date(中等)http://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意:经典问题:K短路解法:dijkstra+A*(rec),方法很多相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144该题亦放在搜索推荐题中 POJ 3013 - Big Christmas Tree(基础)http://ac…
题目链接 /* *题目大意: *求出从i到j,刚好经过k条边的最短路; * *矩阵乘法的应用之一(国家队论文): *矩阵乘法不满足交换律,矩阵乘法满足结合律; *给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值; *把给定的图转为邻接矩阵,即A(i,j)=1当且仅当存在一条边i->j; *令C=A*A,那么C(i,j)=ΣA(i,k)*A(k,j),实际上就等于从点i到点j恰好经过2条边的路径数(枚举k为中转点); *类似地,C*A的第i行第j列就表示从i到j经…
题意很简单,给一张图,把基本的求起点到终点最短路改成求经过k条边的最短路. 求最短路常用的算法是dijkstra,SPFA,还有floyd. 考虑floyd的过程: c[i][j]=min(c[i][j],a[i][k]+b[k][j]); 自然而然联想到矩阵乘法,每次加入一个点就相当于多加一条边,那么加k次就是k条边的最短路. 但是k可能很大(见数据范围),那么显然直接循环矩乘k次是行不通的,于是就想到了矩阵快速幂. 和普通快速幂一样的方式,只不过是把乘法替换成矩乘. 代码如下: #inclu…
题意: sol: 考虑floyed 直接暴力做的话复杂度是kn^3会炸. 考虑一个比较神仙的分块做法. 注意到我们是可以直接求单独某个k的矩阵,使用矩阵快速幂即可(取min的矩阵乘法). 单独求一次的复杂度是O(n^3logk). 设块的长度为100. 对k/100的分块边界求一下它们的矩阵. 这些矩阵称为a矩阵. 再求出前100个矩阵,这个直接floyed即可. 然后对他们搞一个后缀min,也就是说第k个矩阵代表了至少走k条边的最短路矩阵. 这些矩阵称为b矩阵. 那么回答的询问的时候设询问q=…
设g[i][j]为i串至少加上几个字符后才能包含j,可以通过Hash求出. 然后就是求经过m-1条边的最短路,用倍增加速Floyed即可,时间复杂度$O(n^3\log m)$. #include<cstdio> #include<cstring> #define rep(i,n) for(int i=0;i<n;i++) typedef long long ll; typedef unsigned int U; const int N=200,M=100010,P=31;…
POJ图论分类[转] 一个很不错的图论分类,非常感谢原版的作者!!!在这里分享给大家,爱好图论的ACMer不寂寞了... (很抱歉没有找到此题集整理的原创作者,感谢知情的朋友给个原创链接) POJ:http://poj.org/ 1062* 昂贵的聘礼 枚举等级限制+dijkstra 1087* A Plug for UNIX 2分匹配 1094 Sorting It All Out floyd 或 拓扑 1112* Team Them Up! 2分图染色+DP 1125 Stockbroker…
题意:给一个无向图,给起点s,终点t,求最少拆掉几条边使得s到不了t,最多拆几条边使得s能到t 思路: 先跑一边最短路,记录最短路中最短的边数.总边数-最短边数就是第二个答案 第一个答案就是在最短路里面求最小割,也就是求最大流,然后依据最短路在建个新图.权为1.跑一边网络流 模板题.以后就用这套模板了 #include <iostream> #include <cstdio> #include <cstring> #include <queue> #incl…
Description   You have a grid of n rows and n columns. Each of the unit squares contains a non-zero digit. You walk from the top-left square to the bottom-right square. Each step, you can move left, right, up or down to the adjacent square (you canno…
Clubhouse,基于实时音频技术的声音社交现象级火爆 最近,让硅谷两位顶级 VC 大打出手争相投资的 Clubhouse 火到了国内,甚至在社交圈里 "一码难求",此种火爆程度的产品堪称现象级.那它究竟是有什么魅力让 2020 年 4 月诞生的它快速引爆投资圈.明星圈及互联网界呢? Clubhouse 是一款主打即时交流的音频社交平台,其本质无非是实时音频技术,与我们所熟识的基于 RTC 技术的语音聊天室场景并无区别,所以在技术层面我们随时都可以做到,这个时代只是欠缺一个想象! &…