P3906 Geodetic集合
题目链接
无向图边长度为1 Q次询问求两点u,v之间最短距离经过的点集
N<=40 floyed处理多源最短路
1 | for(int i=1;i<=n;i++){ |
P2850 [USACO06DEC] Wormholes G
题目链接
m条路线(无向边) 从u到v花费时间p
w个虫洞(有向边) 从u到v可以回到时间p之前
判断是否可以回到出发点同时也是出发时刻以前的某一时刻
spfa判断是否存在负环
1 | int idx,e[2505],ne[2505],h[2505],w[2505]; |
P8893 「UOI-R1」智能推荐
题目链接
从第0天开始 每一天你可以做以前推荐过的或者当天推荐的题
但有r个规则 在做第i道前要完成s道题目
求出做出第K道题需要的天数 如果不可以输出-1
从所有入度为0的点出发 跑一遍最短路dist[k]==0x3f3f3f3f时不能实现
注意N<=500但是有T组数据 T<=5 不可以Floyed求
1 | vector<int>a[505];//存图 |
P4826 [USACO15FEB] Superbull S
题目链接
给N个数 以任意两个数的异或为边长建图 求其最大生成树
1 | int f[2005]; |
P1744 采购特价商品
题目链接
给出N个点坐标和M对点之间有通路 且以两点之间的距离作为边权 求第S个点到第T个点的最短距离
N<=100 floyed
1 | int x[105],y[105]; |
P2700 逐个击破
题目链接
N个城市由N-1条线路相连 其中K个是红点(不能在同一个连通块内)
给出N-1条可删去的线路和代价 求最小代价
最小代价==所有代价之和-尽可能多连接的线路之和
连通块维护 查询 vis[]数组标记是否产生冲突
1 | int find(int x){ |