Codeforces 1154G 枚举】的更多相关文章

题意:给你一堆数,问其中lcm最小的一对数是什么? 思路:因为lcm(a, b) = a * b / gcd(a, b), 所以我们可以考虑暴力枚举gcd, 然后只找最小的a和b,去更新答案即可. 数据范围1e7? 不慌,bitset搞一下, 1e7log(1e7)可以500ms过. 代码: #include <bits/stdc++.h> using namespace std; const int maxn = 1000010; bitset<maxn * 10> v, v1;…
我预处理\(1e7log(1e7)\)的因数被T掉了,就不敢往这个复杂度想了--无奈去看AC代码 结果怎么暴举gcd剪一剪小枝就接近3s卡过去了!vector有锅(确信 const int maxn = 1e6 + 5, maxa = 1e7 + 5; int n, a, l, r; ll lcm = INF; int f[maxa], s[maxa]; int main() { read(n); rep(i, 1, n) { read(a); if (f[a]) s[a] = i; else…
题目链接:http://codeforces.com/problemset/problem/1154/G 题目大意: 给定n个数,在这些数中选2个数,使这两个数的最小公倍数最小,输出这两个数的下标(如果有多组解,任意输出一组即可). 分析: 直接2个循环两两配对一下肯定要超时的,这里可以考虑枚举公因数,因为LCM是与最大公因数相关的,如果我们枚举了所有的公因数,那么我们就枚举了所有的LCM. 对于每一个公因数d,含有因子d的数从小到大排序为x1,x2,x3……xn,共有n个. 首先计算一下前两个…
题意 有n(n<=3000)个人参与acm比赛,每个人都有一个解题数,现在要决定拿金牌的人数cnt1,拿银牌的人数cnt2,拿铜牌的人数cnt3,各自对应一个解题数区间[d1,c1],[d2,c2],[d3,c3] 现在要求: 1.d1-c2尽可能大 2.在1满足的前提下,d2-c3尽可能大 3.在1,2满足的前提下,d3-num尽可能大(num表示铁牌第一名的解题数) 4.对于任意的x,y(1<=x,y<=3),cntx<=2*cnty 你需要给出一种每个人的奖牌分配来满足以上要…
C. Vasily the Bear and Sequence time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Vasily the bear has got a sequence of positive integers a1, a2, ..., *a**n*. Vasily the Bear wants to write o…
两个二分 枚举位数 #include <bits/stdc++.h> #define MOD 1000000007 using namespace std; typedef long long ll; ll ten[]; ll check1(ll x) { ll ans = ; ll l, r; ; i <= ; i++) { l = ten[i], r = ten[i + ] - ; if (r < x) { ans += i * ( * x - l - r) * (r - l…
E. Santa Claus and Tangerines time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Santa Claus has n tangerines, and the i-th of them consists of exactly ai slices. Santa Claus came to a school…
A /*#include<cstring>#include<algorithm>#include<queue>#include<vector>#include<cstdio>#include<cmath>#include<iostream>*/ #include<bits/stdc++.h> using namespace std; typedef long long ll; ; int main() { in…
CodeForces - 1154G You are given an array a consisting of n integers a1,a2,…,an . Your problem is to find such pair of indices i,j (1≤i<j≤n) that lcm(ai,aj) is minimum possible. lcm(x,y) is the least common multiple of x and y (minimum positive numbe…
题目链接:http://codeforces.com/problemset/problem/144/D 思路:首先spfa求出中心点S到其余每个顶点的距离,统计各顶点到中心点的距离为L的点,然后就是要统计在边上的点了,可以枚举边(这里边的数量最多也就100000条),对于枚举的某条边,如果它的其中某个端点到S的距离记过这条边,也就是满足一下这个条件:d1 + w == d2 || d2 + w == d1,那么边上符合要求的点最多只有一个,否则,就要判断d1,d2的关系,对于求出的边上的某个符合…