Codeforces 891 C Envy】的更多相关文章

题目大意 给定一个 $n$ 个点 $m$ 条边的连通的无向图,每条边有一个权值,可能有重边.给出 $q$ 组询问,一组询问给出 $k$ 条边,问是否存在一棵最小生成树包含这 $k$ 条边. 思路 这道题是我独立想出来的,并没有看题解. 先考虑只有一组询问的做法. 判断某些边是否在某个最小生成树里,比较容易想到的做法是 Kruskal 算法: 为了表述方便,将输入的 $m$ 条边构成的集合记做 $E$,将查询的 $k$ 条边构成的集合记做 $E_q$ . 假设 $E$ 中的边的权值中不同的数共有…
B. Gluttony time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given an array a with n distinct integers. Construct an array b by permuting a such that for every non-empty subset of i…
For a connected undirected weighted graph G, MST (minimum spanning tree) is a subgraph of G that contains all of G's vertices, is a tree, and sum of its edges is minimum possible. You are given a graph G. If you run a MST algorithm on graph it would…
Envy 感觉这种最小生成树上的啥题都差不多的解法.. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define PLL pair<LL, LL> #define PLI pair<LL, int> #define PII pair<int, int> #define SZ(x) ((int)x.si…
题目链接  Envy 题意  给出一个连通的无向图和若干询问.每个询问为一个边集.求是否存在某一棵原图的最小生成树包含了这个边集. 考虑$kruskal$的整个过程, 当前面$k$条边已经完成操作的时候(就是前$k$小的边已经进行并查集缩点,此时部分点已经形成了若干个连通块) 这个时候突然冒出来一些权值相同并且这个权值大于前$k$条边最大权值的边,问这些边是否能同时被某一棵最小生成树包含. 那我们依次检查这突然冒出来的几条边,在原来的这个并查集的基础上,继续进行缩点操作. 如果这些边在处理的时候…
问题描述 小Q正在玩一个叠塔的游戏,游戏的目标是叠出尽可能高的塔.在游戏中,一共有n张矩形卡片,其中第i张卡片的 长度为a_i,宽度为b_i.小Q需要把所有卡片按一定顺序叠成一座塔,要求对于任意一个矩形,它的长度要严格大 于它上边的任意一个矩形的长度.塔的高度为所有矩形的宽度之和.在游戏中,小Q可以将卡片翻转90度来使用, 而且必须用上全部n张卡片.请写一个程序,帮助计算小Q能叠出最高的塔的高度. 输入格式 第一行包含一个正整数n(1<=n<=250000),即卡片的个数. 接下来n行,每行两…
A  链接:http://codeforces.com/problemset/problem/892/A 签到 #include <iostream> #include <algorithm> using namespace std; ]; int main() { int n; ,sum2=; cin>>n; ; i<n; ++i) cin>>a,sum1+=a; ; i<n; ++i) cin>>b[i]; sort(b,b+n)…
Codeforces Round #446 (Div. 2) 总体:rating涨了好多,虽然有部分是靠和一些大佬(例如redbag和ShichengXiao)交流的--希望下次能自己做出来2333 A. Greed 题意:给你\(n\)个罐子,每个罐子都告诉了你它当前的饮料体积和它的总容积,问能否用两个罐子装下所有饮料(\(n\le 100000\)) 题解:简单模拟即可,用两个最大的算一下,注意累和会爆\(int\) int a[100100], b[100100]; long long s…
[CF891C]Envy(最小生成树) 题面 Codeforces 洛谷 题解 考虑\(MST\)的构建过程,对于所有权值相同的边一起考虑. 显然最终他们连出来的结果是固定的. 把连边改为把联通块联通,这样子只需要检查询问中的权值相同的边连接这些联通块是否会成环. 并查集解决即可. #include<iostream> #include<cstdio> #include<algorithm> using namespace std; #define MAX 500500…
F. Souvenirs 题目连接: http://codeforces.com/contest/765/problem/F Description Artsem is on vacation and wants to buy souvenirs for his two teammates. There are n souvenir shops along the street. In i-th shop Artsem can buy one souvenir for ai dollars, a…