回学校第一次打AtCoder,感觉晚上在寝室打不在状态~~

A - Don’t be late

数学题签到

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=100010;
ll a[N];
int n;
int main()
{IO;int d,t,s;cin>>d>>t>>s;int x=(d+s-1)/s;if(t>=x) cout<<"Yes"<<endl;else cout<<"No"<<endl;return 0;
}

B - Substring

直接暴力即可

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm>
#define mkp(a,b) make_pair(a,b)
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
int main()
{IO;string s,t;cin>>s>>t;int res=1e9;for(int i=0;i+t.size()<=s.size();i++){int cnt=0;for(int j=0;j<t.size();j++) if(s[j+i]!=t[j]) cnt++;res=min(cnt,res);}cout<<res<<endl;return 0;
}

C - Sum of product of pairs

预处理前缀和即可

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=200010,mod=1e9+7;
ll a[N],s[N];
int n;
int main()
{IO;cin>>n;for(int i=1;i<=n;i++) {cin>>a[i];s[i]=s[i-1]+a[i];}ll res=0;for(int i=1;i<=n;i++)res=(res+(s[n]-s[i])%mod*a[i]%mod)%mod;cout<<res<<endl;return 0;
}

D - Friends

并查集维护sz[]找个最大的即可

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int N=200010,mod=1e9+7;
int p[N],sz[N];
int n,m;
int find(int x)
{if(x!=p[x]) p[x]=find(p[x]);return p[x];
}
int main()
{IO;cin>>n>>m;for(int i=1;i<=n;i++) p[i]=i,sz[i]=1;while(m--){int a,b;cin>>a>>b;int pa=find(a),pb=find(b);if(pa!=pb){p[pa]=pb;sz[pb]+=sz[pa];}}int res=0;for(int i=1;i<=n;i++)   if(i==p[i]) res=max(res,sz[i]);cout<<res<<endl;return 0;
}

E - Coprime

太久没做过数论题目了,筛法啥的都忘完了,回头刷kuangbin复习复习吧
方法一
如果两个数最大公约数不为1,那么对两个数进行分解质因数后一定有相同的质因子。——O(nai)O(n\sqrt{a_i})O(nai​​) 1040ms

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1000010;
int a[N],cnt[N];
int n;
int gcd(int a,int b)
{return b?gcd(b,a%b):a;
}
void divide(int x)
{for(int i=2;i<=x/i;i++){if(x%i==0) {cnt[i]++;while(x%i==0) x/=i;}}if(x>1) cnt[x]++;
}
int main()
{cin>>n;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++) divide(a[i]);int d=a[1];for(int i=2;i<=n;i++) d=gcd(d,a[i]);bool ok=1;for(int i=1;i<N;i++)if(cnt[i]>1) {ok=0;break;}if(ok) cout<<"pairwise coprime"<<endl;else if(d==1) cout<<"setwise coprime"<<endl;else cout<<"not coprime"<<endl;return 0;
}

方法二
方法一反着做,将原数分解质因数,方法二是正着做,考虑两个数最大公约数是d那么两个数一定是d的倍数,直接暴力筛原数组中一个数的倍数的个数。如果个数大于1就不是pairwise coprime——O(NlogN)O(NlogN)O(NlogN) 248ms

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1000010;
int a[N],mp[N];
int n;
int gcd(int a,int b)
{return b?gcd(b,a%b):a;
}
int main()
{cin>>n;for(int i=1;i<=n;i++) {cin>>a[i];mp[a[i]]++;}bool ok=1;for(int i=2;i<N;i++){int cnt=0;for(int j=i;j<N;j+=i) cnt+=mp[j];if(cnt>1){ok=0;break;}}int d=a[1];for(int i=2;i<=n;i++) d=gcd(d,a[i]);if(ok) cout<<"pairwise coprime"<<endl;else if(d==1) cout<<"setwise coprime"<<endl;else cout<<"not coprime"<<endl;return 0;
}

F - I hate Shortest Path Problem

线段树 留个坑回来补一下?
要加油哦~

AtCoder Beginner Contest 177总结相关推荐

  1. AtCoder Beginner Contest 177 D.Friends

    AtCoder Beginner Contest 177 D.Friends 题目链接 典型的并查集,不难发现答案就是最大的并查集的元素个数,AC代码如下: #include<bits/stdc ...

  2. AtCoder Beginner Contest 177 A~D 题解

    ABC177 A~D [A - Don't be late](https://atcoder.jp/contests/abc177/tasks/abc177_a) 题目大意 输入格式 输出格式 样例 ...

  3. AtCoder Beginner Contest 177 题解

    希望更好的阅读体验?点这里 一.题解 A.Don't be late 题目大意: 高桥君计划在 TTT 分钟内于离家 DDD 米的地方与青木君碰面,已知高桥君速度为 SSS,问他能否在 TTT 分钟内 ...

  4. AtCoder Beginner Contest 177(E,F)

    E - Coprime First,judging the g c d ( a 1 , a 2 , . . . , a n ) gcd(a_1,a_2,...,a_n) gcd(a1​,a2​,... ...

  5. AtCoder Beginner Contest 202 D - aab aba baa(组合计数,字典序)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Problem 有 AAA 和 aaa,BBB 个 bbb ,可以使用这 A+BA+BA+B 个字符任 ...

  6. AtCoder Beginner Contest 197 题解(A ~ F)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Rotate B - Visibility C - ORXOR D - Opposite ...

  7. AtCoder Beginner Contest 198 (A ~ F)题解

    目录 A. Div B. Palindrome with leading zeros C. Compass Walking D. Send More Money E. Unique Color F. ...

  8. AtCoder Beginner Contest 215 G - Colorful Candies 2

    AtCoder Beginner Contest 215 G - Colorful Candies 2 有n个糖果,每个糖果有着一个颜色a[i],每次拿k个糖果期望拿到E(x)个不同颜色的糖果,求出k ...

  9. AtCoder Beginner Contest 215 F - Dist Max 2

    AtCoder Beginner Contest 215 F - Dist Max 2 平面上有一系列的点(xi,yi)(x_i,y_i)(xi​,yi​),定义两点(xi,yi),(xj,yj)(x ...

最新文章

  1. 科学家发现大脑动态评估信息重要性机制
  2. 复习javascript中call,apply,bind的用法
  3. 用ARM DS-5进行android linux开发
  4. IE浏览器怎么清理缓存
  5. 为什么 ++[[]][+[]]+[+[]] = 10 ?
  6. SQL注入之Mysql报错注入
  7. python中把输出结果写到一个文件中_如何将脚本输出写入文件和命令行?
  8. Confluence 6 为一个空间应用一个主题
  9. dnsever 邮件记录
  10. ffmpeg详细安装教程,亲测有效!
  11. ssm+教务信息管理 毕业设计-附源码161124
  12. linux结合阿里云企业邮箱配置mailx
  13. pandas进阶 期中练习
  14. sql server复习 练习
  15. 编译器处理虚函数的原理
  16. AtCoder Beginner Contest 224题解 A-G
  17. RocketMQ原理剖析
  18. 2月书讯 | 读新书,过新年。
  19. 二十三 HDP搭建大数据环境
  20. 中兴EPON OLT-C300开局配置

热门文章

  1. winform 统计大量数据重复的元素个数_面试系列:十个海量数据处理方法大总结...
  2. php 如何生成exe文件怎么打开,如何把PHP转成EXE文件
  3. 二分法查找是基于有序_201,查找顺序查找
  4. 模块化妙用!用vue3实现一个鼠标追踪器和异步加载组件
  5. 《C++ Primer》2.1.2节练习
  6. MySQL错误1264和1366_Mysql错误1366 - Incorrect integer value解决方法
  7. background图片不显示_一种解决Retina屏幕1px边框显示问题的方案
  8. 动态规划 0-1背包问题 二维数组
  9. 邻值查找—算法进阶指南
  10. P3804 【模板】后缀自动机 (SAM)