2.16打卡

算法组-赵芳舟 2024-02-16 22:37:17

2.16打卡

1035 插入与归并

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int N;
    cin>>N;
    int v1[100]={0};
    int v0[100]={0};
    for(int i=0;i<N;i++)
    {
        cin>>v1[i];
    }
    for(int i=0;i<N;i++)
    {
        cin>>v0[i];
    }
    int j=0;
    while(v0[j]<=v0[j+1])
    {
        j++;
    }
    int temp=0;
    for(int i=j+1;i<N;i++)
    {
        if(v1[i]!=v0[i])
        {
            cout<<"Merge Sort"<<endl;
            temp=1;
            break;
        }
    }
    if(temp==0)
    {
        cout<<"Insertion Sort"<<endl;
        j++,j++;
        sort(v0,v0+j);
        for(int i=0;i<N;i++)
        {
            cout<<v0[i];
            if(i!=N-1)
            {
                cout<<" ";
            }
            else
            {
                cout<<endl;
            }
        }
    }
    else
    {
        int k=2;
        int t=0;
        while(k<=N&&t==0)
        {
            for(int i=0;i<N;i+=k)
            {
                if(t==1)
                {
                    break;
                }
                for(int j=i;j<k+i-1&&j+1<N;j++)
                {
                    if(v0[j]>v0[j+1])
                    {
                        t=1;
                        break;
                    }
                }
            }
            k*=2;
        }
        k/=2;
        if(k>=N)
        {
            sort(v0,v0+N);
        }
        else
        {
            for(int i=0;i+k<=N;i+=k)
            {
                sort(v0+i,v0+k+i);
            }
        }
        sort(v0+N/k*k,v0+N);
        for(int i=0;i<N;i++)
        {
            cout<<v0[i];
            if(i!=N-1)
            {
                cout<<" ";
            }
            else
            {
                cout<<endl;
            }
        }
    }
    system("pause");
    return 0;
}

1040 有几个PAT

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
    string s;
    cin>>s;
    int ans=0;
    int p=0;
    int t=0;
    for(int i=0;i<s.size();i++)
    {
        if(s[i]=='T')
        {
            t++;
        }
    }
    for(int i=0;i<s.size();i++)
    {
        if(s[i]=='P')
        {
            p++;
        }
        else if(s[i]=='T')
        {
            t--;
        }
        else if(s[i]=='A')
        {
            ans+=(p*t)%1000000007;
            ans=ans%1000000007;
        }
    }
    cout<<ans<<endl;
    system("pause");
    return 0;
}
...全文
137 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

325

社区成员

发帖
与我相关
我的任务
社区描述
一个供Leaders学习交流的地方
c++javapython 技术论坛(原bbs) 广东省·深圳市
社区管理员
  • 叫我胡萝北
  • CheungZzzc
  • szu_gexu
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧