AtCoder Beginner Contest 162(A~D)
2020-04-15 16:00:31来源:博客园 阅读 ()
AtCoder Beginner Contest 162(A~D)
A Lucky 7
题意:一个三位数,判但是否出现数字7.
题解:签到题。
代码:
#include<iostream> #include<algorithm> #include<cstring> #include<stdio.h> using namespace std; int main(){ int N; cin>>N; while(N){ if(N%10==7){ cout<<"Yes"<<endl; return 0; } N=N/10; } cout<<"No"<<endl; return 0; }
B FizzBuzz Sum
题意:给定数字N,排除能被3或5整除的,将其余点的数字相加即可。
题解:签到题。
法一:
#include<iostream> #include<algorithm> #include<cstring> #include<stdio.h> using namespace std; #define ll long long ll num[10000005]={0}; void app(){ for(ll i=1;i<=10000005;i++){ if(num[i]==0){//没有判断 if(i%3==0||i%5==0){//判断出一个不合格 for(ll j=i;j<=10000005;j=j+i){ num[i]=-1;//不能处理 } }else{ num[i]=i; } } } } int main(){ ll N; ll sum=0; app(); cin>>N; for(int i=1;i<=N;i++){ if(num[i]!=-1){ sum=sum+num[i]; } } cout<<sum<<endl; return 0; }
法二
#include <bits/stdc++.h> #define ll long long using namespace std; int main() { int n; scanf("%d",&n); ll ans=0; for(int i=1;i<=n;i++) { if(i%3==0||i%5==0) continue; ans+=i; } printf("%lld\n",ans); return 0; }
转载自:https://www.cnblogs.com/zdragon1104/p/12688051.html
C - Sum of gcd of Tuples (Easy)
题意:题目给出数据N,求Σka=1Σkb=1Σkc=1 gcd(a,b,c)的和。
题解:数据范围比较小,可暴力,前提是要知道三个数的最大公约数的求法。
代码:
#include<iostream> #include<algorithm> #include<cstring> #include<stdio.h> using namespace std; int main(){ int k; cin>>k; int sum=0; for(int i=1;i<=k;i++){ for(int j=1;j<=k;j++){ for(int r=1;r<=k;r++){ int a=__gcd(i,j); sum=sum+__gcd(a,r); } } } cout<<sum<<endl; return 0; }
D - RGB Triplets
题意:这题的题意是给你一串由‘R’,'G','B'组成的字符串。从中取三个坐标(i,j,k)(1<=i<j<k<=N),要求你能找到对少对这样的坐标符合一下两个条件:
Sj≠Si,Sk≠Si,Sj≠Sk 。
j-i≠k-j。
题解:这一题的数据范围比较大,暴力肯定会超时。因此肯定是有比较快的方法。
从正面算可能会超时,我们就从反面算,在这里,我们将符合条件(一)的总数都求出来,然后减去不合符条件(二)且符合条件(一)的数量即可。
参考博客:https://www.cnblogs.com/lr599909928/p/12688958.html
代码:
#include<iostream> #include<cstring> #include<algorithm> #define ll long long using namespace std; int main() { int n; string s; cin>>n; cin>>s; ll r=0,g=0,b=0; for(int i=0; i<s.length(); i++) { if(s[i]=='R') { r++; } if(s[i]=='G') { g++; } if(s[i]=='B') { b++; } } ll ans=r*g*b; ll an=0; for(int i=0; i<s.length(); i++) { //这里遍历的是 它们之间的间距相同的字符 for(int j=i+1; j<n; j++) { int k=j+(j-i); if(k>n-1) { continue; } if(s[i]!=s[j]&&s[j]!=s[k]&&s[i]!=s[k]) {/*有 因为它们之中包含了 “每两种之间互不相同” 这一条件 ,而符合这一条件的 已经在上面求出总数了,这里是因为它们不符合条件(一) ,故在这里最后我们要把他们减去*/ an++; } } } printf("%lld\n",ans-an); return 0; }
原文链接:https://www.cnblogs.com/blogxsc/p/12694565.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:用C++实现:完美的代价
- 2020年04月10日UCF Local Programming Contest 2017 2020-04-10
- 2020年3月28日UCF Local Programming Contest 2016 2020-03-31
- AtCoder Beginner Contest 160(A~D) 2020-03-29
- 2020年3月21日Benelux Algorithm Programming Contest 2019 2020-03-25
- AtCoder Grand Contest 043--A - Range Flip Find Route 2020-03-22
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash