头像

TARDIS




离线:3小时前


最近来访(30)
用户头像
哈一口蒸汽波.
用户头像
彩色铅笔
用户头像
人蠢就要多读书
用户头像
海绵宝宝
用户头像
DarkLights
用户头像
品位
用户头像
Martexz
用户头像
jasonho
用户头像
liwenquan
用户头像
TYL
用户头像
取个名字也太难了吧
用户头像
ssssssqqy
用户头像
DarksideCoder
用户头像
SSL_wyd
用户头像
walkerㅤ
用户头像
Tkybk_dz
用户头像
甜面包
用户头像
收到回公司
用户头像
Rezarc
用户头像
QAQlzy

活动打卡代码 AcWing 756. 蛇形矩阵

TARDIS
7个月前


#include<bits/stdc++.h>
using namespace std;
int a[110][110];
int main()
{
    int n,m;
    cin>>n>>m;
    int op=1;
    int i=0,j=0;
    int dx[4]={0,1,0,-1};
    int dy[4]={1,0,-1,0};
    int x=1,y=1,d=0;
    for(int i=1;i<=n*m;i++)
    {
        if((x+dx[d]>n||y+dy[d]>m||y+dy[d]==0)||(a[x+dx[d]][y+dy[d]]))
        {
            d=(d+1)%4;
        }
        a[x][y]=i;
        x+=dx[d];
        y+=dy[d];
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        cout<<a[i][j]<<' ';
        cout<<endl;
    }
}


















活动打卡代码 AcWing 104. 货仓选址

TARDIS
7个月前
#include<bits/stdc++.h>
using namespace std;
int a[100010];
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    int sum=0;
    for(int i=1;i<=n;i++)
    {
        sum+=abs(a[i]-a[n/2+1]);
    }
    cout<<sum;
}


活动打卡代码 AcWing 898. 数字三角形

TARDIS
7个月前
#include<bits/stdc++.h>
using namespace std;
int a[1100][1100],f[1100][1100];
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=i;j++)
        {
            cin>>a[i][j];
        }
    }
    memset(f,-10,sizeof(f));
    f[0][0]=0;
    f[1][1]=a[1][1];
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=i;j++)
        {
            f[i][j]=max(f[i-1][j],f[i-1][j-1])+a[i][j];
        }
    }
    int ans=-10000000000;
    for(int i=1;i<=n;i++)
    {
        ans=max(ans,f[n][i]);
    }
    cout<<ans;
}



TARDIS
9个月前
#include<bits/stdc++.h>
using namespace std;
int a[1000010],b[1000010],f[3010][3010];
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    for(int i=1;i<=n;i++)
    {
        cin>>b[i];
    }
    b[0]=-(1<<30);
    for(int i=1;i<=n;i++)
    {
        int S=0;
        for(int j=1;j<=n;j++)
        {
            f[i][j]=f[i-1][j];
            if(a[i]>b[j-1])
            {
                S=max(S,f[i-1][j-1]+1);
            }
            if(a[i]==b[j])
            {
                f[i][j]=max(S,f[i][j]);
            }

        }
    }
    int ans=0;
    for(int i=1;i<=n;i++)
    {
        ans=max(ans,f[n][i]);
    }
    cout<<ans;
}


活动打卡代码 AcWing 190. 字串变换

TARDIS
9个月前
#include<bits/stdc++.h>
using namespace std;
string x[10],y[10];
int n=1;
int bian(queue<string>& tou,unordered_map<string,int>& toum,queue<string>& wei,unordered_map<string,int>& weim,string x[],string y[])
{
    string s;
    s=tou.front();
    tou.pop();
        for(int i=0;i<s.size();i++)
        {
            for(int j=1;j<=n;j++)
            {
                if(s.substr(i,x[j].size())==x[j])
                {
                    string bianhou;
                    bianhou=s.substr(0,i)+y[j]+s.substr(i+x[j].size());
                    if(toum.count(bianhou))
                    {
                        continue;
                    }
                    if(weim.count(bianhou))
                    {
                        return toum[s]+1+weim[bianhou];
                    }

                    toum[bianhou]=toum[s]+1;
                    tou.push(bianhou);
                }
            }
        }

    return 11;
}
int bfs(string a,string b)
{
    queue<string>tou,wei;
    unordered_map<string,int>toum,weim;
    tou.push(a);
    toum[a]=0;
    wei.push(b);
    weim[b]=0;
    while(tou.size()&&wei.size())
    {
        int t;
        if(tou.size()<=wei.size())
        {
            t=bian(tou,toum,wei,weim,x,y);
        }
        else
        {
            t=bian(wei,weim,tou,toum,y,x);
        }
        if(t<=10)
        return t;
    }
    return 11;
}
int main()
{
    string a,b;
    cin>>a>>b;
    while(cin>>x[n]>>y[n])
    {
        n++;
    }
    n--;
    int t=bfs(a,b);
    // cout<<t;
    if(t>10)
    {
        puts("NO ANSWER!");
    }
    else
    {
        printf("%d",t);
    }
    return 0;
}



TARDIS
9个月前
#include<bits/stdc++.h>
using namespace std;
#define int long long
int f[31][31][31][31][31];
signed main()
{
    int n;
    while(cin>>n,n)
    {
        int s[6]={0};
        for(int i=1;i<=n;i++)
        {
            cin>>s[i];
        }
        memset(f,0,sizeof(f));
        f[0][0][0][0][0]=1;
        for(int a=0;a<=s[1];a++)
        {
            for(int b=0;b<=min(a,s[2]);b++)
            {
                for(int c=0;c<=min(b,s[3]);c++)
                {
                    for(int d=0;d<=min(c,s[4]);d++)
                    {
                        for(int e=0;e<=min(d,s[5]);e++)
                        {
                            if(a&&a-1>=b)
                            {
                                f[a][b][c][d][e]+=f[a-1][b][c][d][e];
                            }
                            if(b&&b-1>=c)
                            {
                                f[a][b][c][d][e]+=f[a][b-1][c][d][e];
                            }
                            if(c&&c-1>=d)
                            {
                                f[a][b][c][d][e]+=f[a][b][c-1][d][e];
                            }
                            if(d&&d-1>=e)
                            {
                                f[a][b][c][d][e]+=f[a][b][c][d-1][e];
                            }
                            if(e)
                            {
                                f[a][b][c][d][e]+=f[a][b][c][d][e-1];
                            }
                        }
                    }
                }
            }
        }
        cout<<f[s[1]][s[2]][s[3]][s[4]][s[5]]<<endl;
    }

}


活动打卡代码 AcWing 898. 数字三角形

TARDIS
9个月前
#include<bits/stdc++.h>
using namespace std;
int a[1100][1100],f[1100][1100];
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=i;j++)
        {
            cin>>a[i][j];
        }
    }
    memset(f,-10,sizeof(f));
    f[0][0]=0;
    f[1][1]=a[1][1];
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=i;j++)
        {
            f[i][j]=max(f[i-1][j],f[i-1][j-1])+a[i][j];
        }
    }
    int ans=-10000000000;
    for(int i=1;i<=n;i++)
    {
        ans=max(ans,f[n][i]);
    }
    cout<<ans;
}


活动打卡代码 AcWing 279. 自然数拆分

TARDIS
9个月前
#include<bits/stdc++.h>
using namespace std;
long long f[100010];
int main()
{
    int n;
    cin>>n;
    f[0]=1;
    for(int i=1;i<=n;i++)
    {
        for(int j=i;j<=n;j++)
        {
            f[j]=(f[j]+f[j-i])%2147483648;
        }
    }
    cout<<f[n]-1;
}


活动打卡代码 AcWing 278. 数字组合

TARDIS
9个月前
#include<bits/stdc++.h>
using namespace std;
int a[100010],f[100010];
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    f[0]=1;
    for(int i=1;i<=n;i++)
    {
        for(int j=m;j>=a[i];j--)
        {
            f[j]=(f[j]+f[j-a[i]]);
        }
    }
    cout<<f[m];
}



TARDIS
9个月前
#include<bits/stdc++.h>
using namespace std;
char a[1100],b[1100];
int f[1100][1100];
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    for(int i=1;i<=m;i++)
    {
        cin>>b[i];
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            f[i][j]=max(f[i-1][j],f[i][j-1]);
            if(a[i]==b[j])
            {
                f[i][j]=max(f[i][j],f[i-1][j-1]+1);
            }
        }
    }
    cout<<f[n][m];
}