题意:一个三位数,判可是否出现数字7.ios
题解:签到题。c++
#include<iostream> #include<cstring> #include<algorithm> using namespace std;; int main(){ string ptr; cin>>ptr; if(ptr.find("7")!=-1){ cout<<"Yes"; }else{ cout<<"No"; } return 0; }
题意:给定数字N,排除能被3或5整除的,将其他点的数字相加便可。spa
题解:签到题。code
法一:htm
#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; }
法二blog
#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; }
C - Sum of gcd of Tuples (Easy)ci
题意:题目给出数据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; }
题意:这题的题意是给你一串由‘R’,'G','B'组成的字符串。从中取三个坐标(i,j,k)(1<=i<j<k<=N),要求你能找到对少对这样的坐标符合一下两个条件:
Sj≠Si,Sk≠Si,Sj≠Sk 。
j-i≠k-j。
题解:这一题的数据范围比较大,暴力确定会超时。所以确定是有比较快的方法。
从正面算可能会超时,咱们就从反面算,在这里,咱们将符合条件(一)的总数都求出来,而后减去不合符条件(二)且符合条件(一)的数量便可。
#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; }