8.12京东笔试 300%

1、先枚举移动的位数,再数修改的位数

int main()
{
    int n;
    string s;
    cin>>n>>s;
    int ans=1e9;
    for(int i=0;i<=n;i++)
    {
        int l=0,r=n-1,cnt=0;
        while(l<r)
        {
            if(s[l]!=s[r])
                cnt++;
            l++;
            r--;
        }
        cnt+=i;
        ans=min(ans,cnt);
        char ch=s[0];
        s.erase(0,1);
        s.push_back(ch);

    }
    cout<<ans<<endl;

    return 0;
}

2、递推计一下数,n=1的情况要特殊处理

const int N=2e5+1000,mod=1e9+7;

ll cnt[N][10];

int main()
{
    int n;
    ll a[N];
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    if(n==1)
    {
        for(int i=0;i<=9;i++)
        {
            if(i==a[1])
                cout<<1<<" ";
            else
                cout<<0<<" ";
        }
        return 0;

    }
    cnt[1][(a[n-1]+a[n])%10]++;
    cnt[1][(a[n-1]*a[n])%10]++;
    for(int i=2;i<=n-1;i++)
    {
        for(int j=0;j<=9;j++)
        {
            cnt[i][(j*a[n-i])%10]=(cnt[i][(j*a[n-i])%10]+cnt[i-1][j])%mod;
            cnt[i][(j+a[n-i])%10]=(cnt[i][(j+a[n-i])%10]+cnt[i-1][j])%mod;
        }
    }
    for(int i=0;i<=9;i++)
        cout<<cnt[n-1][i]<<" ";
    return 0;
}

3、暴力枚举点的坐标就行

#include<bits/stdc++.h>
#define x first
#define y second
#define mem(a,b) memset(a,b,sizeof(a))
#define F(i,l,r) for(int i=l;i<=r;i++)
using namespace std;

typedef long long ll;
typedef pair<int,int> pii;
typedef unsigned long long ull;

const int N=52;

int n,m,a[N][N];
vector<pii> v;

bool check(pii x)
{
    for(auto p:v)
        if(p==x)
            return true;
    return false;
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        {
            char ch;
            cin>>ch;
            if(ch=='X')
                v.push_back({i,j});
        }
    int ans=0;
    for(int i=0;i<v.size();i++)
        for(int j=i+1;j<v.size();j++)
    {
        pii a=v[i],b=v[j];
        pii c={b.x+b.y-a.y,b.y-(b.x-a.x)},d={a.x+b.y-a.y,a.y-(b.x-a.x)};
        if(check(c)&&check(d))
            ans++;
        c={b.x-(b.y-a.y),b.y+b.x-a.x},d={a.x-(b.y-a.y),a.y+b.x-a.x};
        if(check(c)&&check(d))
            ans++;
    }
    cout<<ans/4<<endl;
    return 0;
}

全部评论
太牛啦
点赞 回复 分享
发布于 2023-08-12 21:33 辽宁
点赞 回复 分享
发布于 2023-08-12 21:41 广东
膜拜
点赞 回复 分享
发布于 2023-08-12 21:54 上海
nb,膜拜大佬
点赞 回复 分享
发布于 2023-08-13 11:13 广东
第三题找另外两个点是咋想的,真牛波啊
点赞 回复 分享
发布于 2023-08-14 14:03 江苏

相关推荐

11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
和蔼:在竞争中脱颖而出,厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了
点赞 评论 收藏
分享
11 49 评论
分享
牛客网
牛客企业服务