2022 NOC_i++

 

 

void zimufanyi()
{
    
    int k=0;
    cin>>k;//
    k=k%26;
    if (k>=1&&k<=26)
    {
        char a[1000];        
        cin>>a;
        int l=strlen(a);
        for (int i=0;i<l;i++)
        {
            if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))
            {
                if((a[i]-k>='a'&&a[i]-k<='z')||(a[i]-k>='A'&&a[i]-k<='Z'))
                {
                    a[i]=a[i]-k;    
                }    
                else
                {
                    if (a[i]>='a'&&a[i]<='z')                                
                       {
                        int k1=a[i]-'a'+1;
                        a[i]='z'-(k-k1);                        
                    }
                    else 
                    {
                        if (a[i]>='A'&&a[i]<='Z')    
                        {
                            int k1=a[i]-'A'+1;
                            a[i]='Z'-(k-k1);
                        }
                    }
                }
            
            }
        }
        for (int i=0;i<l;i++)
        {
            cout<<a[i];
        }        
    }
}

 

2022 NOC_#include_02

 

 

2022 NOC_i++_03

 

 

#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int a[100][100];

int main(int argc, char** argv) {
    int k,n,cnt=0;//k轮,n个学生 
    cin>>k>>n;
    for (int i=1;i<=k;i++)
    {
        for (int j=1;j<=n;j++)//排名 
        {
            int x;
            cin>>x;
            a[i][x]=j;
        }
    }
    for (int i=1;i<=k;i++)
    {
        for (int j=1;j<=n;j++)
        {
            cout<<a[i][j]<<" ";
        }
        cout<<endl    ;
    }
    int sum=0;
    for (int i=1;i<=n;i++)//选择i同学 
    {
        for (int j=1;j<=n;j++)//选择j同学 
        {
            if (i!=j)
            {
                bool flag=false;
                for (int l=1;l<=k;l++)
                {
                    sum++;
                    //第l轮,第i同学和第j同学 
                    if (a[l][i]<a[l][j])
                    {
                        
                    }
                    else
                    {
                        flag=true;
                        break;
                    }
                }
                if (flag==false)
                {
                    cout<<i<<"完胜"<<j<<";";
                    cnt++;
                    cout<<endl;
                }
            }            
        }
    }
    cout<<cnt<<endl;
    //循环次数 
    cout<<sum<<endl;
    return 0;
}

 

 

2022 NOC_i++_04

 

#include <algorithm>
#include <cmath>
void f2()
{
    double a[100010];
    int n;
    cin>>n;
    for (int i=1;i<n;i++)
    {
        cin>>a[i];
    }     
    sort(a+1,a+n);//排序
    cout<<endl;
    for (int i=1;i<n;i++)
    {
        cout<<a[i]<<" ";
    }
    cout<<endl;
    /*
    1 最大值/2 
    2 比较 最大值/2   大于等于  次大值
    3 如果为真, 最大值/3 大于等于 次大值 ;为真  显示  最大值/3(向上取整);为假  显示 次大值
    4 如果为假 , (1)最大值/2 大于 次次大值  ; 为真 最大值/2(向上取整);为假 显示 次次大值
    */
    double x=a[n-1]/2;//最大值切割
    if (x>=a[n-2])
    {
        double z=a[n-1]/3;
        if (z>=a[n-2])
        {
            cout<<ceil(z);
        }
        else
        {
            cout<<a[n-2];
        }
    }
    else
    {
        if (x>=a[n-3])
        {
            cout<<ceil(x);
        }
        else
        {
            cout<<a[n-3];
        }
    }
    /*
    //1 
    double x=a[n-1]/2;//最大值切割
    double y=a[n-2]/2;//次大值切割    
    double ans1 =max(x,a[n-3]);//x与次次大值比较 a[n-3]比较 
    //2
    double z=a[n-1]/3;//最大值切割3份
    double ans2 =max(z,a[n-2]);//x与次次大值比较 a[n-3]比较 
    double ans=min(ans1,ans2);
    int res=ceil(ans);
    cout<<res;
    */
}