网易9.23笔试(前三题代码

个人得分:

100 100 100 13

第一题:分奇偶判断即可

#include "bits/stdc++.h"
using namespace std;
int T;
int n;
vector<int> odd,even;

void work(){
    odd.clear();
    even.clear();
    cin>>n;
    for(int i=1,x;i<=n;i++){
        cin>>x;
        if(i%2 == 0) even.push_back(x);
        else odd.push_back(x);
    }
    if(n % 2 == 1){
        cout<<"YES"<<endl;
        return;
    }
    sort(even.begin(), even.end());
    sort(odd.begin(), odd.end());
    if(n%2 == 0) odd.push_back(0x7fffffff);
    for(int i=0;i<even.size();i++) {
        if (odd[i] > even[i] || odd[i + 1] < even[i]) {
            cout << "NO" << endl;
            return;
        }
    }
    cout<<"YES"<<endl;
}

int main(){
    cin>>T;
    while (T--){
        work();
    }
}

第二题:我的做法是全部sort一遍然后开一个map存

#include "bits/stdc++.h"
using namespace std;
int n;
string s[100005];
map<string,long long> mp;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>s[i];
        sort(s[i].begin(), s[i].end());
        mp[s[i]]++;
    }
    long long ans = 0;
    for(auto &[k,v] : mp){
        ans = ans + (v *(v-1)) / 2;
    }
    cout<<ans<<endl;
}

第三题:可以发现是一个杨辉三角,预处理一下逆元算一下权就可以了(需要一点点数论知识)

#include "bits/stdc++.h"
#define ll long long
using namespace std;
long long n;
const long long mod = 1e9+7;
long long x;
long long inv[100005],f[100005];
long long temp;

long long quick_pow(long long a , long long b , long long mod){
    long long res = 1 ;
    while( b ){
        if( b&1 ) (res*=a)%=mod ;
        (a*=a)%=mod ;
        b >>= 1 ;
    }
    return res ;
}

void init(){
    f[0] = 1;
    inv[0] = 1;
    for(long long i = 1 ; i <= n ;i++) f[i] = (f[i-1] * i) % mod;
    for(long long i = 1 ; i <= n ;i++) inv[i] = quick_pow(f[i],mod-2,mod);

    for(long long i = 1;i <= n;i++){
        temp = (temp + ((f[n-1] * inv[i-1] % mod * inv[n-i]) % mod) * quick_pow(i,mod-2,mod) % mod)%mod;
    }
}

int main(){
    cin>>n;
    init();
    long long ans = 0;
    for(int i=1;i<=n;i++){
        cin>>x;
        ans = (ans + (x * temp) % mod) % mod;
    }
    cout<<ans<<endl;
}

第四题:输出1骗分跑了(只有十几分钟去写了)

#笔试##网易#
全部评论
第一题n为奇数直接输出yes什么鬼
点赞 回复 分享
发布于 2023-09-23 16:12 安徽
为啥n为奇数就要yes啊,我差不多的思路怎么都过不去😂
点赞 回复 分享
发布于 2023-09-23 16:15 重庆

相关推荐

评论
1
10
分享
牛客网
牛客企业服务