牛客练习赛8 A B D E
2017-12-17 04:31
323 查看
A.约数个数的和
题目链接 https://www.nowcoder.com/acm/contest/39/A
题解
纸上找下规律 发现是 n/i的关系 复杂度可以搞到O(sqrtn)AC代码
O(n)#include <bits/stdc++.h> using namespace std; #define LL long long int main() { LL n, sum = 0; scanf("%lld",&n); for (LL i = 1; i <= n/2; i++) { sum += (n/i); } printf("%lld\n",(LL)(sum+(n+1)/2)); return 0; }
B.储物点的距离
题目链接 https://www.nowcoder.com/acm/contest/39/B
题解
维护前缀和随便搞搞 上去写了个线段树 调了下 群里有人说过不去 就换了写法 ( 其实线段树也可写AC代码
这里写代码片
D.加边的无向图
题目链接 https://www.nowcoder.com/acm/contest/39/D
题解
并查集或者DFS找下联通快个数AC代码
并查集写法#include <bits/stdc++.h> using namespace std; const int MAXN = 1e5+10; int par[MAXN]; int n, m; void init() { for(int i = 0; i <= MAXN; i++) par[i] = i; } int find(int x) { if(x==par[x]) return x; return par[x] = find(par[x]); } void unite(int x,int y) { x = find(x); y = find(y); if(x != y) par[x] = y; } int main() { init(); cin >> n >> m; for(int i = 0; i < m; i++) { int x, y; cin >> x >> y; unite(x,y); } int cnt = 0; for(int i = 1; i <= n; i++) { if(par[i] == i) cnt ++; } cout << cnt-1 << endl; return 0; }
DFS写法
#include <bits/stdc++.h> using namespace std; #define LL long long #define CLR(a,b) memset(a,(b),sizeof(a)) const int MAXN = 1e5+10; int par[MAXN]; vector<int> v[MAXN]; bool vis[MAXN]; int n, m; void init() { for(int i = 0; i <= n; i++) v[i].clear(); CLR(vis,false); } void dfs(int x,int y) { vis[x] = true; for(int i = 0; i < v[x].size(); i++) { int u = v[x][i]; if(vis[u] || u==y) continue; dfs(u,x); } } int main() { cin >> n >> m; init(); for(int i = 0; i < m; i++) { int x, y; cin >> x >> y; v[x].push_back(y); v[y].push_back(x); } int cnt = 0; for(int i = 1; i <= n; i++) { if(!vis[i]) { cnt++; dfs(i,-1); } } cout << cnt-1 << endl; return 0; }
E.集合中的质数
题目链接 https://www.nowcoder.com/acm/contest/39/E
题解
直接容斥搞搞AC代码
这里写代码片
相关文章推荐
- 牛客练习赛6 D 世界上最可爱的珂朵莉 贪心
- 牛客练习赛6 B 点权和 树点权和
- 牛客练习赛3 F 监视任务 每个区间K个 树状数组+贪心
- 牛客练习赛7 购物 DP 初始化问题
- 牛客练习赛7 A B D E
- 牛客练习赛9
- 牛客练习赛7 E 题 珂朵莉的数列 【树状数组 + 思维】
- 牛客练习赛3 E - 绝对半径2051
- 牛客练习赛12-A-圆圆
- 牛客练习赛7 B 【排序和优先队列】
- 牛客练习赛13_C-幸运数字Ⅲ(思维)
- 牛客练习赛6 A 【二分】
- 牛客练习赛6 D 世界上最可爱的珂朵莉 贪心
- 牛客练习赛6 B 点权和 树点权和
- 牛客练习赛7 购物 DP 初始化问题
- 牛客练习赛7:B-购物 (dp)
- 牛客练习赛9 E题 珂朵莉的数论题
- 牛客练习赛1 B - 树
- 牛客练习赛13-幸运数字I
- 牛客练习赛13-C题幸运数字III