題意:一個三位數,判可是否出現數字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; }