[CodeForces]986A Fair】的更多相关文章

题意:有N个点M条边的无向图,每个点有给定的ai(1<=ai<=K,K<=200)表示该点拥有的物品编号,保证1-K在N个点全部出现.求每个点收集S个不同的物品所要走过的最短路程(边的长度为1). 分析:N是1e5,如果直接对每个点搜索肯定超时.发现K的范围很小,而且1-K全部覆盖.那么考虑对所有1-K的值BFS,用一个二维数组dp[i][j]记录i点要获取编号为j的物品最少走过的路程,并对每个点取最小的S个物品对应的路径. #include<bits/stdc++.h> u…
大意:给一张图,每个图上有一个数,问以每个点为源点,经过的点包含k种数字的最小距离. 显然跑最短路会T,但我们注意到边权一定.某次学校考试就是类似题,可以bfs做,复杂度O(n),每种货物做一次,复杂度O(kn),n=1e5,k=100,稳了. #include <algorithm> #include <iostream> #include <cstring> #include <vector> #include <cstdio> #inclu…
解题思路: 1.对物品i bfs,更新每个小镇j获得每个物品i的最短距离. 2.时间复杂度o(n*k),满足2s的要求. 代码: #include <iostream> #include <queue> #include <list> #include <algorithm> #include <stdio.h> #include <string.h> using namespace std; typedef long long ll…
Description Petya and Vasya decided to play a game. They have n cards (n is an even number). A single integer is written on each card. Before the game Petya will choose an integer and after that Vasya will choose another integer (different from the n…
题目:http://codeforces.com/contest/986/problem/A 如果从每个村庄开始bfs找货物,会超时. 发现k较小.那就从货物开始bfs,给村庄赋上dis[ 该货物 ]. 但这样还是n^2.考虑有相同货物的村庄,其实可以一起bfs.就是多源bfs.这样就是n*k的了. 多源bfs就是把一些起始点的dis全赋了初值0,然后都放进队列里,之后正常bfs. #include<iostream> #include<cstdio> #include<cs…
题意:有N个城市,M条双向道路连接两个城市,整个图保证连通.有K种物品,但每个城市只有一种,现在它们都需要S种物品来举办展览,可以去其他城市获取该城市的物品,花费是两城市之间的最短路径长度.求每个城市举办展览的最小花费. 分析:去某个城市获取第i种物品的最小距离,这个问题可以逆向求解.把拥有第i种物品的城市当作源点,BFS求出它们到其他城市的最短路.对K种物品都如此求一遍最短路. 计算结果的时候,排序后贪心地选择花费前S小的物品即可. #include<bits/stdc++.h> using…
题目描述 一些公司将在Byteland举办商品交易会(or博览会?).在Byteland有 nnn 个城市,城市间有 mmm 条双向道路.当然,城镇之间两两连通. Byteland生产的货物有 kkk 种类型,每个城镇只生产一种. 为了举办商品交易会,你必须至少带来 sss 种不同类型的商品.将货物从 uuu 镇带到城镇 vvv 将花费 d(u,v)d(u,v)d(u,v) 的费用,其中 d(u,v)d(u,v)d(u,v) 是从 uuu 到 vvv 的最短路径的长度. 路径的长度是这个路径中的…
借鉴博客:https://www.cnblogs.com/zhangjiuding/p/9112273.html 986-A. Fair /* 986-A-Fair,codeforce: 大致题意:       n个点,m个双向边: 一共K中食品,每个点只能提供1种:至少携带s种不同的食品,点u->v 需要花费d(u,v):d(u,v)是最短路u->v,的开销——开销等于该最短路的路径中的边数.每个点有一种食品,食品总的种类数不超过K个,求从每个点出发找至少种食品的最小开销.题目看着像是最短路…
codeforces 897A Scarborough Fair 题目链接: http://codeforces.com/problemset/problem/897/A 思路: 暴力大法好 代码: #include <iostream> #include <stdio.h> #include <string.h> using namespace std; typedef long long ll; int n,m; string s; int main() { ios…
Codeforces Round #485 (Div. 2) D. Fair 题目连接: http://codeforces.com/contest/987/problem/D Description Some company is going to hold a fair in Byteland. There are $n$ towns in Byteland and $m$ two-way roads between towns. Of course, you can reach any t…