1. 程式人生 > 實用技巧 >2020.11.6-vj補題

2020.11.6-vj補題

A - A

CodeForces - 136A

題解:按輸入的順序輸出對應的下標即可,定義一個數組,將輸入的作為下標,下標為值,最後依次輸出即可;

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int s[n+5],i,a;
    for(i=1;i<=n;i++)
    {
        cin>>a;
        s[a]=i;
    }
    for(i=1;i<=n;i++)
    {
        
if(i==1)cout<<s[i]; else cout<<" "<<s[i]; } cout<<endl; }

C - C

CodeForces - 136C

題解:先將陣列排序,如果最大值不為1,則將其設為1,否則設為2,在進行一次排序,輸出即可

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long n;
    cin>>n;
    long long s[n+5],i;
    for(i=0
;i<n;i++) { scanf("%lld",&s[i]); } sort(s,s+n); if(s[n-1]!=1)s[n-1]=1; else s[n-1]=2; sort(s,s+n); for(i=0;i<n;i++) { if(i==0)printf("%lld",s[i]); else printf(" %lld",s[i]); } cout<<endl; }

D - D

CodeForces - 118A

題解:先將字串中所有字元轉換為小寫字母,再在遍歷時將母音賦值為 ‘0’,輸出時不為‘0’的就直接輸出“.”+字母即可

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    cin>>s;
    int n;
    n=s.size();
    for(int i=0;i<n;i++)
    {
        if(s[i]>='A'&&s[i]<='Z')s[i]+=32;
        if(s[i]=='a'||s[i]=='o'||s[i]=='e'||s[i]=='y'||s[i]=='u'||s[i]=='i')s[i]='0';

    }
    for(int i=0;i<n;i++)
    {
        if(s[i]!='0')cout<<"."<<s[i];
    }
    cout<<endl;
}

E - E

CodeForces - 118B
題解:先輸出上半部分(n+1)行,第一行空格為n*2個,隨後每行空格數減一,每行從0還是輸出直到該行數i-1為止,在從i-1輸出到0換行,同理輸出
下半部分先根據上半部分計算出下半部分第一行的空格數輸出,然後每行空格數加2,依照上半部分同理輸出即可
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int m=n;
    int w;
    for(int i=1;i<=n+1;i++)
    {
        for(int j=0;j<m*2;j++)cout<<" ";
        m-=1;
        for( w=0;w<i;w++)
        {
            if(w==0)cout<<w;
            else cout<<" "<<w;
        }
        if(w==0)cout<<endl;
        else
        {
            for(int q=w-2;q>=0;q--)
            {
                if(q==w-1)cout<<q;
                else cout<<" "<<q;
            }
            cout<<endl;
        }
    }
    //cout<<m<<endl;

    m+=2;
    for(int i=n;i>=1;i--)
    {
        for(int j=0;j<=m;j++)cout<<" ";
        m+=2;
        for(w=0;w<=i-1;w++)
        {
             if(w==0)cout<<w;
            else cout<<" "<<w;
        }
         if(w==0)cout<<endl;
         else
         {
             for(int q=w-2;q>=0;q--)
            {
                if(q==w-1)cout<<q;
                else cout<<" "<<q;
            }
            cout<<endl;
         }
    }
}

B - B

CodeForces - 136B

#include<bits/stdc++.h>
using namespace std;
int main()
{
      long a,c,ct=0,i=0;
      scanf("%ld%ld",&a,&c);
     while(a!=0 || c!=0)
     {
          ct+=(c%3-a%3+3)%3*pow(3,i);//**/
          a/=3;
          c/=3;
          i++;
     }
     printf("%ld\n",ct);
     return 0;
}