笔试强训:Week -7

网易游戏校招笔试复盘:国际化拓展岗位四大模块全解析 从游戏行业校招的通用能力要求出发,理解商业分析框架在笔试中的核心地位。游戏出海、国际化拓展等岗位的笔试,往往通过逻辑推理、案例分析与产品策略等题目,考察候选人对市场、产品、打法的结构化拆解能力。网易此次国际化游戏拓展专员笔试,以限时120分钟完成四个模块,不仅检验基础智商与数理能力,更看重候选人能否将商业敏感度融入答题过程。通过复盘题型分布、答题顺序与时间管理,可以掌握一套高效应对游戏行业校招笔试的方法论,并为后续群面与业务面积累可复用的分析模型。本文从实际经验出发,拆解笔试背后的能力筛选逻辑,为准备游戏大 阅读详情

目录

一、旋转字符串(暴力/规律)

二、合并k个已排序的链表(归并/优先级队列+自定义排序)

三、滑雪(bfs)

四、天使果冻(递推)

五、dd爱旋转(模拟+利用规律优化)

六**、小红取数(01背包+同余定理)

七、神奇的字母II(哈希)

八、字符编码(哈夫曼编码)

九*、最少的完全平方数(完全背包)

最少完全平方数避免贪心策略

十**、游游的字母串(优化枚举)

十一、体育课测试II (BFS拓扑排序)

十二*、合唱队形(序列dp)

初始化问题

十三、棋子翻转(模拟)

十四**、宵暗的妖怪(区间dp)

十五**、过桥(贪心+BFS+双指针优化掉队列)

十六、最大差值

十七**、兑换零钱(完全背包)

十八**、小红的子串(字符种类在L到R之间的子串个数)(滑动窗口+前缀和)


一、旋转字符串(暴力/规律)

旋转字符串_牛客题霸_牛客网

暴力:

class Solution {
public:
    bool solve(string A, string B) {
        if(A.length()!=B.length())return false;

        int n=A.length();
        for(int i=0;i<A.size();++i)
        {
            if(A[i]==B[0])
            {
                int tail=(i-1+n)%n,curA=i,curB=0;
                while(curA!=tail)
                {
                    if(A[curA]!=B[curB])break;

                    curA=(curA+1)%n;
                    ++curB;
                }
                if(curA==tail)return true;
            }
        }
        return false;
    }
};

二、合并k个已排序的链表(归并/优先级队列+自定义排序)

合并k个已排序的链表_牛客题霸_牛客网

看到算法复杂度nlogn就该想到归并排序

归并排序:

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 *	ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
#include <vector>
class Solution {
public:
    ListNode* mergeKLists(vector<ListNode*>& lists) {
        int n=lists.size();
        if(n==0)return nullptr;
        return My_merge(lists,0,n-1);
    }
    ListNode* My_merge(vector<ListNode*>&lists,int left,int right)
    {
        if(left==right)return lists[left];

        int mid=left+(right-left)/2;
        ListNode*l1=My_merge(lists,left,mid);
        ListNode*l2=My_merge(lists,mid+1,right);
        return MergeTwoList(l1,l2);
    }
    ListNode* MergeTwoList(ListNode*l1,ListNode*l2)
    {
        if(l1==nullptr)return l2;
        if(l2==nullptr)return l1;

        ListNode*cur1=l1,*cur2=l2,*newhead=new ListNode(-1),*tail=newhead;
        while(cur1&&cur2)
        {
            if(cur1->val<cur2->val)
            {
                tail->next=cur1;
                cur1=cur1->next;
            }
            else {
                tail->next=cur2;
                cur2=cur2->next;
            }
            tail=tail->next;
        }
        while(cur1)
        {
            tail->next=cur1;
            tail=tail->next;
            cur1=cur1->next;
        }
        while(cur2)
        {
            tail->next=cur2;
            tail=tail->next;
            cur2=cur2->next;
        }
        tail=newhead->next;
        delete newhead;
        return tail;
    }
};

优先级队列+自定义排序:

注意开始入堆的时候要判断是不是有空数组,否则段溢出

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 *	ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
#include <queue>
class Solution {
public:
    struct cmp
    {
        bool operator()(const ListNode*l1,const ListNode*l2)
        {
            return l1->val > l2->val;
        }
    };
    ListNode* mergeKLists(vector<ListNode*>& lists) {
        if(lists.empty())return nullptr;

        priority_queue<ListNode*,vector<ListNode*>,cmp> hp;
        for(auto&l:lists)
        {
            //这里需要判断一下
            if(l)hp.push(l);
        }
        ListNode*newhead=new ListNode(-1),*tail=newhead;
        while(!hp.empty())
        {
            ListNode* hp_top=hp.top();
            hp.pop();
            tail->next=hp_top;
            tail=tail->next;
            if(hp_top->next)hp.push(hp_top->next);
        }
        tail->next=nullptr;
        tail=newhead->next;
        delete newhead;
        return tail;
    }
};

三、滑雪(bfs)

滑雪_牛客题霸_牛客网

这里地图长宽都是小于100的,如果数据量来到1000,使用dfs会因为递归深度过大导致爆栈,报错显示为段溢出,因此地图题还是使用bfs为妙。

#include <iostream>
#include<queue>
using namespace std;
const int N=101;
using PII=pair<int,int>;
int dx[4]={-1,1,0,0},dy[4]={0,0,-1,1},n,m,grid[N][N];
int bfs(int i,int j)
{
    queue<PII> q;
    q.push({i,j});
    int step=0;
    while(!q.empty())
    {
        ++step;
        int sz=q.size();
        while(sz--)
        {
            auto [i,j]=q.front();
            q.pop();
            for(int k=0;k<4;++k)
            {
                int x=i+dx[k],y=j+dy[k];
                if(x>=0&&x<n&&y>=0&&y<m&&grid[x][y]>grid[i][j])
                    q.push({x,y});
            }
        }
    }
    return step;
}
int main() {
    cin>>n>>m;
    for(int i=0;i<n;++i)
    {
        for(int j=0;j<m;++j)cin>>grid[i][j];
    }

    int len=1;
    for(int i=0;i<n;++i)
    {
        for(int j=0;j<m;++j)len=max(len,bfs(i,j));
    }
    cout<<len;
    
    return 0;
}

四、天使果冻(递推)

天使果冻

#include <climits>
#include <iostream>
using namespace std;
const int N=1e5+10;
int n,q,x,ans[N],max_num,max_next_num;
int main() {
    cin>>n;

    cin>> max_num;
    for(int i=1;i<n;++i)
    {
        cin>>x;
        if(x>=max_num)
        {
            max_next_num=max_num;
            max_num=x;
        }
        else if(x>max_next_num)
        {
            max_next_num=x;
        }
        ans[i+1]=max_next_num;
    }
    cin>>q;
    while(q--)
    {
        cin>>x;
        cout<<ans[x]<<endl;
    }

    return 0;
}

五、dd爱旋转(模拟+利用规律优化)

dd爱旋转

#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;
int n,q,x;
void Print(vector<vector<int>> arr)
{
    for(int i=0;i<n;++i)
    {
        for(int j=0;j<n-1;++j)cout<<arr[i][j]<<" ";
        cout<<arr[i][n-1]<<endl;
    }
}
void Function_1(vector<vector<int>>& arr)
{
    for(int i=0;i<n;++i)
    {
        reverse(arr[i].begin(),arr[i].end());
    }
    reverse(arr.begin(),arr.end());
}
void Function_2(vector<vector<int>>& arr)
{
    reverse(arr.begin(),arr.end());
}
int main() {
    cin>>n;
    vector<vector<int>> arr(n,vector<int>(n));
    for(int i=0;i<n;++i)
        for(int j=0;j<n;++j)
            cin>>arr[i][j];

    cin>>q;
    int count_1=0,count_2=0;
    while(q--)
    {
        cin>>x;
        if(x==1)++count_1;
        else ++count_2;
    }
    if(count_1)
    {
        count_1%=2;
        if(count_1)Function_1(arr);
    }
    if(count_2)
    {
        count_2%=2;
        if(count_2)Function_2(arr);
    }

    Print(arr);

    return 0;
}

六**、小红取数(01背包+同余定理)

小红取数_牛客题霸_牛客网

最先使用dp而后以失败告终,随后

同余的记忆浮现于脑海,但是做法已经遗忘在了风中。。。

然后利用暴力的思路写了dfs,但是递归深度过大导致WA

#include <iostream>
#include <cstring>
using namespace std;
typedef long long LL;
const int N=1010;
LL arr[N];
LL dp[N][N];//dp[i][j]表示从前i个人选 总和%k==j时的最大和是多少
int n,k;
int main() {
   cin>>n>>k;
   memset(dp, -0x3f3f3f3f, sizeof dp);
   dp[0][0] = 0;
   for(int i=1;i<=n;++i) cin>>arr[i];
   for(int i=1;i<=n;++i)
      for(int j=0;j<k;++j)
        dp[i][j]=max(dp[i-1][j],dp[i-1][(j-arr[i]%k+k)%k]+arr[i]);
   if(dp[n][0]<=0) cout<<-1<<endl;
   else cout<<dp[n][0]<<endl;
}

七、神奇的字母II(哈希)

神奇的字母(二)

#include<iostream>
#include<string>
using namespace std;
string s;
int main(){
    int hash[26]={0};
    char ret=0;
    int maxcount=0;
    while(cin>>s)
        for(auto&ch:s)
            if(++hash[ch-'a']>maxcount){
                maxcount=hash[ch-'a'];
                ret=ch;
            }
    cout<<ret<<endl;
}

八、字符编码(哈夫曼编码)

字符编码_牛客题霸_牛客网

由于不了解哈夫曼编码遂通过率0,其实还是很简单的

#include <iostream>
#include <queue>
#include <string>
#include <vector>
using namespace std;
string s;
int main() {
    while(cin>>s){
        //先统计每个字符的频次 然后再丢到小根堆里
        int hash[128]={0};
        for(auto&ch:s) ++hash[ch];
        //将频次丢到小根堆里
        priority_queue<int,vector<int>,greater<int>> heap;
        for(int i=0;i<128;++i) 
           if(hash[i]) heap.push(hash[i]);
        int ret=0;
        while(heap.size()>1){
            int t1=heap.top();
            heap.pop();
            int t2=heap.top();
            heap.pop();
            ret+=t1+t2;
            heap.push(t1+t2);
        }
        cout<<ret<<endl;
    }
}

九*、最少的完全平方数(完全背包)

最少的完全平方数_牛客题霸_牛客网

居然是完全背包问题,我还以为是贪心

中了贪心的陷阱

比如12这个数:用贪心来解,就是9+1+1+1 也就是4次

正确答案应该是4+4+4 3次!

#include <iostream>
#include <vector>
#include <algorithm>
#include <climits>
using namespace std;

int main() {
    int n;
    cin >> n;
    
    vector<int> dp(n + 1, INT_MAX);
    dp[0] = 0;
    
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j * j <= i; j++) {
            dp[i] = min(dp[i], dp[i - j * j] + 1);
        }
    }
    
    cout << dp[n] << endl;
    return 0;
}

最少完全平方数避免贪心策略

十**、游游的字母串(优化枚举)

游游的字母串

666一直以为纯暴力会超时所以没写,亏大发

#include<iostream>
#include<string>
#include<cmath>
using namespace std;
string s;
int main(){
    cin>>s;
    int ret=0x3f3f3f3f;
    for(char i='a';i<='z';++i){
        int sum=0;//统计变化的次数
        for(auto&ch:s)
            sum+=min(abs(ch-i),26-abs(ch-i));
        ret=min(sum,ret);
    }
    cout<<ret<<endl;
}

十一、体育课测试II (BFS拓扑排序)

体育课测验(二)_牛客题霸_牛客网

#include <unordered_map>
class Solution {
public:
    vector<int> findOrder(int numProject, vector<vector<int> >& groups) {
        vector<int> in(numProject);
        unordered_map<int, vector<int>> edages;
        for(auto &arr:groups)
        {
            //b->a
            int a=arr[0],b=arr[1];
            ++in[a];
            edages[b].push_back(a);
        }

        queue<int> q;
        for(int i=0;i<numProject;++i)
        {
            if(in[i]==0)q.push(i);
        }

        vector<int> ret;
        while(!q.empty())
        {
            int sz=q.size();
            while(sz--)
            {
                int b=q.front();
                q.pop();
                ret.push_back(b);
                for(auto&a:edages[b])
                {
                    if(--in[a]==0)q.push(a);
                }
            }
        }

        for(int i=0;i<numProject;++i)
        {
            if(in[i])return {};
        }

        return ret;
    }
};

十二*、合唱队形(序列dp)

合唱队形_牛客题霸_牛客网

正着思考没思路,睡了一觉刷牙的时候突然想这不就是求最长的山峰序列的长度么。

然后又想到可以正反都弄一个dp表,每个位置的最长山峰序列就是两个dp[i]的值相加减去1.

但是最后一直通过百分之七十,因为笔试的时候看不到用例,做完后,我又找到了原题

173 132 142 161

预期输出1 ,结果输出了2,结果发现

初始化问题

应该是n+1,我#¥%¥%¥……%……¥*

#include <iostream>
#include<vector>
using namespace std;
const int N=1010;
int arr[N],n;
void Print(vector<int> arr)
{
    for(int i=1;i<n;++i)cout<<arr[i]<<" ";
    cout<<arr[n]<<endl;
}
int main() {
    cin>>n;
    for(int i=1;i<=n;++i)cin>>arr[i];


    //n+1!!!因为要用到n
    vector<int> f(n+1,1);
    auto g=f;
    
    //f[N]表示正序递增到i位置最长递增子序列的长度
    for(int i=2;i<=n;++i)
    {
        for(int j=1;j<i;++j)
        {
            if(arr[j]<arr[i])
            {
                f[i]=max(f[i],f[j]+1);
            }
        }
    }

    //g[N]表示逆序递增到i位置最长递增子序列的长度
    for(int i=n-1;i>=1;--i)
    {
        for(int j=n;j>i;--j)
        {
            if(arr[j]<arr[i])
            {
                g[i]=max(g[i],g[j]+1);
            }
        }
    }

    // Print(f);
    // Print(g);
    //计算最长“山峰”序列的长度
    int len=1;
    for(int i=1;i<=n;++i)
    {
        len=max(len,g[i]+f[i]-1); 
    }
    cout<<n-len;

    return 0;
}

十三、棋子翻转(模拟)

棋子翻转_牛客题霸_牛客网

最简单的一题

class Solution {
public:
    int dx[4]={-1,1,0,0},dy[4]={0,0,-1,1};
    void change(int &x)
    {
        if(x==1)x=0;
        else x=1;
    }
    vector<vector<int> > flipChess(vector<vector<int> >& A, vector<vector<int> >& f) {
        int m=A.size();
        for(int i=0;i<f.size();++i)
        {
            //处理映射
            int x=f[i][0]-1,y=f[i][1]-1;
            for(int k=0;k<4;++k)
            {
                int nx=x+dx[k],ny=y+dy[k];
                if(nx>=0&&nx<m&&ny>=0&&ny<m)
                {
                    change(A[nx][ny]);
                }
            }
        }

        return A;
    }   
};

十四**、宵暗的妖怪(区间dp)

宵暗的妖怪

dp题让我有点崩溃。。。。

//打家劫舍问题 但是不能抢到最后一家
#include<iostream>
using namespace std;
typedef long long LL;
const int N=1e5+10;
LL arr[N],dp[N];
//dp[i]表示1-i区间的最大饱食度是多少
//dp[i-3]+arr[i]
int n;
int main(){
    cin>>n;
    for(int i=1;i<=n;++i) cin>>arr[i];
    for(int i=3;i<=n;++i) 
        dp[i]=max(dp[i-1],dp[i-3]+arr[i-1]);
    cout<<dp[n]<<endl;
}

十五**、过桥(贪心+BFS+双指针优化掉队列)

过桥

#include<iostream>
using namespace std;
const int N=2010;
int arr[N],n;

int bfs(int arr[])
{
    int ret=0,left=1,right=1;
    while(left<=right)
    {
        ++ret;
        
        int l=left,r=right;
        for(int i=left;i<=right;++i)
        {
            r=max(r,arr[i]+i);
            if(r>=n)return ret;
        }
        left=right+1;
        right=r;
    }
    
    return -1;
}

int main()
{
    cin>>n;
    for(int i=1;i<=n;++i)cin>>arr[i];
    
    cout<<bfs(arr);
    return 0;
}

十六、最大差值

最大差值_牛客题霸_牛客网

思路一:暴力->超时

思路二:用两个数组,一个数组存0~i位置最小值,一个数组存i~n-1位置的最大值,然后遍历记录最大差值(可行,还可以优化)

#include <climits>
#include <vector>
class Solution {
public:
    int getDis(vector<int>& A, int n) {
        vector<int> MinNum(n+1),MaxNum(n+1);
        MinNum[0]=INT_MAX;
        MaxNum[n]=INT_MIN;
        for(int i=1;i<=n;++i)MinNum[i]=min(MinNum[i-1],A[i-1]);
        for(int i=n-1;i>=0;--i)MaxNum[i]=max(MaxNum[i+1],A[i]);
        //MinNum: 1~n  MaxNum: 0~n-1 A: 0~n-1
        int ret=0;
        for(int i=0;i<n;++i)
        {
            ret=max(ret,MaxNum[i]-MinNum[i+1]);
        }

        return ret;
    }
};

思路三:从前往后遍历,用一个变量存储遍历到i位置的最小值,这样往后每个位置只需贪心减去该数即可,不用0~i区间都试一次

class Solution {
public:
    int getDis(vector<int>& A, int n) {
       int ret=0;//记录最大差值
       int prevmin=A[0];//记录在这之前的最小值
       for(int i=1;i<n;++i){
          ret=max(ret,A[i]-prevmin);
          prevmin=min(prevmin,A[i]);
       }
       return ret;
    }
};

十七**、兑换零钱(完全背包)

兑换零钱_牛客题霸_牛客网

可进一步优化为一维数组

#include <iostream>
#include <cstring>
using namespace std;
//dp[i][j]表示从前i个数选  面值恰好为j的最小张数
const int N=1010,M=5010;
int n,aim;
int arr[N],dp[M];
int main() {
    cin>>n>>aim;
    memset(dp,0x3f,sizeof dp);
    dp[0]=0;
    for(int i=1;i<=n;++i) cin>>arr[i];
    for(int i=1;i<=n;++i)
       for(int j=arr[i];j<=aim;++j)
          dp[j]=min(dp[j],dp[j-arr[i]]+1);
    if(dp[aim]>=0x3f3f3f3f) cout<<-1<<endl;
    else cout<<dp[aim]<<endl;
}

十八**、小红的子串(字符种类在L到R之间的子串个数)(滑动窗口+前缀和)

小红的子串

很明显是滑动窗口题

如果L==1,那就是纯滑动窗口的思路

那么我们以1为开始,求出字符种类在[1,L-1]区间内的子串数量 再求出字符种类在 [1,R]区间内子串数量,再做差,就是字符种类在[L,R]区间内的子串数量

#include<iostream>
using namespace std;
int n,l,r;
string s;

long long find(int x)
{
    long long ret=0;
    
    //模拟哈希表
    int hash[26]={0},kinds=0,left=0,right=0;
    while(right<n)
    {
        if(hash[s[right]-'a']++ ==0)++kinds;
        while(kinds>x)
        {
            if(--hash[s[left]-'a']==0)--kinds;
            ++left;
        }
        ret+=right-left+1;
        ++right;
    }
    return ret;
}

int main()
{
    cin>>n>>l>>r>>s;
    cout<<find(r)-find(l-1);
    return 0;
}

本周笔试完结撒花/(ㄒoㄒ)/~~

手把手教你用Foobar2000播放DSD音频(含DOP设置与SPDIF输出教程) 本文详细指导如何在Foobar2000中播放DSD音频,重点解析了DOP协议的原理与设置方法。通过安装SACD插件、配置输出设备及启用DOP模式,实现DSD音频的原生比特流输出,并特别讲解了如何通过SPDIF接口传输DSD信号,帮助发烧友充分释放高清音频设备的潜力。 阅读详情

相关推荐

告别VMware Tools!用open-vm-tools在Ubuntu 22.04上搞定共享文件夹(附开机自动挂载)

本文详细介绍了在Ubuntu 22.04上使用open-vm-tools替代VMware Tools实现高效共享文件夹管理的方法。通过开源工具open-vm-tools,用户可避免传统方案的兼容性问题,享受自动适配内核、系统更新同步等优势。文章包含从安装配置到开机自动挂载的全流程指导,特别适合在VMware虚拟机中运行Ubuntu Desktop的开发者提升工作效率。

weixin_32520095的博客 584

【笔试强训】Week7:旋转字符串,天使果冻,dd爱旋转,小红取数,最少的完全平方数,合唱队形,宵暗的妖怪,过桥,小红的子串

本文总结了4道算法题的解题思路与代码实现: 旋转字符串:通过将字符串A重复一次,检查B是否为子串来判断是否为旋转结果。 天使果冻:采用动态规划预处理前i个数的最大值和次大值,快速回答查询。 dd爱旋转:将180°旋转分解为行列对称操作,统计操作次数后统一处理矩阵变换。 小红取数:基于同余原理的01背包问题,状态转移时维护模k余数对应的最大和。 所有解法均通过预处理或数学规律优化时间复杂度,代码实现清晰高效。

记录了从0学习Java技术栈的日常 206

YOLO26改进 - SPPF模块 | 发论文神器!LSKA注意力改进SPPF,增强多尺度特征提取能力,高效涨点!!!

本文介绍了Large Separable Kernel Attention (LSKA)模块及其在YOLO26中的结合应用。LSKA旨在解决Visual Attention Networks (VAN)使用大内核卷积时的计算效率问题,通过将2D深度卷积层的卷积核分解为级联的水平和垂直1-D卷积核,降低了计算复杂度和内存占用,且使VAN更关注物体形状。我们将集成LSKA的SPPF_LSKA模块引入YOLO26,大量实验表明,改进后的模型在对象识别、检测、分割和稳健性测试上表现出色。

魔改工程师的博客 252

笔试强训week7

例如:1,4,9,和16都是完全平方数,但是2,3,5,8,11等等不是数据范围:1≤𝑛≤10^4​。给定一个𝑛×𝑚的矩阵,矩阵中的数字表示滑雪场各个区域的高度,你可以选择从任意一个区域出发,并滑向任意一个周边的高度严格更低的区域(周边的定义是上下左右相邻的区域)。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱数,求组成aim的最少货币数。有n个果冻排成一排。有一个长为 n 的数组 A ,求满足 0 ≤ a ≤ b < n 的 A[b] - A[a] 的最大值。

禊月初三的博客 949

ArXiv 2026 即插即用 | Transformer篇 | WeightFormer:告别二次复杂度!无注意力的线性时间 Transformer,泛化能力拉满

WeightFormer是一种创新的动态Transformer架构,其核心创新在于通过双动态算子(空间自适应动态卷积和双边激活动态线性)实现输入自适应的特征提取。该模块采用静态-动态权重融合机制和低秩预测技术,在仅增加5%参数量的情况下显著提升模型泛化能力。相比传统Transformer,WeightFormer在ImageNet-1K上提升2.3%精度,小样本任务提升12%,同时保持线性计算复杂度。模块可直接替换标准Transformer块,特别适合轻量级视觉任务,实现了精度与效率的平衡。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 132

笔试强训:Week -8

本文整理了多个编程题目及解法,涵盖组合数学、排序算法、动态规划、贪心算法等常见题型。包括:1)组合数概率计算;2)排序数组的二分查找/滑动窗口应用;3)循环汉诺塔递推解法;4)最小差值问题;5)DFS求素因子组合;6)贪心+二分求最长子序列;7)双指针处理区间问题;8)BFS最短路径;9)股票交易DP;10)贪心选择AOE/单体;11)N皇后冲突检测;12)区间DP取金币;13)矩阵转置;14)DFS剪枝处理选项组合;15)双指针接雨水;16)贪心求极值;17)栈的贪心排序;18)滑动窗口处理加减操作。所有

_dindong的博客 873

第七天 Labview进阶(7.2 与汇川PLC通信)

运行环境: Labview 2020 Autoshop v4.10.1.1 该文档中包括Labview程序和汇川PLC程序,可以完美实现Labview与汇川PLC的通信。具体的使用教程可以参考本人的相关文章,讲解详尽,请尽情享用!

weixin_38637405的博客 3527

笔试强训week8

众所周知,高考数学中有一个题目是给出12个单项选择,每一个选择的答案是 A,B,C,D 中的一个。但是他有一些条件,首先四个选项的数量必须分别为 na,nb,nc,nd。大科学家dd最近在研究转基因白菜,白菜的基因序列由一串大写英文字母构成,dd经过严谨的推理证明发现,只有当白菜的基因序列呈按位非递减形式时,这株白菜的高附加值将达到最高,于是优秀的dd开始着手修改白菜的基因序列,dd每次修改基因序列的任意位需要的代价是1,dd想知道,修改白菜的基因序列使其高附加值达到最高,所需要的最小代价的是多少。

禊月初三的博客 1121

【人工智能】《Deep Dive into LLMs like ChatGPT 》—— Andrej Karpathy 第三阶段:强化学习(Reinforcement Learning, RL)

摘要:强化学习(RL)阶段通过让模型自主生成并验证答案,突破SFT阶段的模仿局限,使其在数学、代码等领域形成独特的推理路径。RL流程包括批量生成解答、自动批改筛选正确路径,并采用PPO/GRPO算法优化模型。模型会自发涌现自我检查、回滚等策略,显著提升正确率(如AIME竞赛准确率从15%升至56%)。与SFT模型相比,RL模型具备主动链式思维、验算能力,响应时间更长但效果更优,形成真正的“思考模型”。三阶段对比显示,RL通过可验证题的对错奖励机制,赋予模型超越人类范式的推理能力。

奶爸的编程之路,也就一周冷个三天 149

PyTorch 最新安装教程(2021-07-27)

PyTorch 最新安装教程(2021-07-27)前言1. 安装 Anaconda2. 检查显卡,更新驱动3. 创建PyTorch环境4. 配置清华TUNA镜像源5. 安装 PyTorch6. 测试 前言 万事开头难! 这句话又一次被我验证。 记得前不久刚陷入Tensorflow2.0的安装困境,这一次又被PyTorch 搞哭辽。 孩子太难了o(╥﹏╥)o,不过还好最终成功安装,感谢全网资源,感谢大佬们的博客!被我一次一次试了出来。 1. 安装 Anaconda Anaconda 是一个用于科学计算的 P

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 23万+

笔试强训day31(分解因数,美国节日)

思路:有两种情况,当输入的是素数时,那么此素数只有1和它本身,当输入的不是素数时,遍历寻找此数的素数,当遇到素数时,存起来并且将处理n。

YQ20210216的博客 1748

【纯实战】C#基于TCP/IP实现三菱PLC MC协议完整通信(含完整源码+通信原理+避坑指南)

MC协议是三菱电机为旗下MELSEC系列PLC量身定制的以太网专用通信协议,本质是一套基于TCP/IP的应用层协议规范,专门用于实现上位机(PC/工控机)与PLC之间的双向数据交互,支持对PLC的软元件(X/Y/M/D/W/T/C等)进行读、写、批量读写等核心操作,同时支持PLC状态查询、程序启停等控制指令。重要:三菱PLC的MC协议默认基于TCP 4999端口通信,部分新版本FX5U/Q系列也支持TCP 5000端口,核心通信逻辑一致。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 894

【笔试强训】Week6:活动安排,合唱团,跳台阶的扩展问题,字符串的排列,kotori和迷宫,春游

本文包含四个算法题解: 活动安排:使用贪心算法,按左端点排序后遍历,选择不重叠且右端点较小的活动。时间复杂度O(nlogn)。 合唱团:动态规划问题,维护最大/最小乘积表。状态转移考虑前i人中选j人,需满足间隔d的限制。时间复杂度O(nkd)。 跳台阶扩展:动态规划/找规律题。发现规律f(n)=2^(n-1),可用递推或公式直接求解。 字符串排列:DFS+剪枝。先排序字符串,处理重复字符时通过访问标记避免重复排列。时间复杂度O(n!)。 核心解法包括贪心、动态规划(状态转移)、DFS剪枝等经典算法思想,涉及

记录了从0学习Java技术栈的日常 202

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【笔试强训】Week2:拼三角,数组中最长连续序列,过河卒,买股票的最佳时机,游游的水果大礼包,mari的shiny

本文摘要整理了7道算法题的解题思路和代码实现: 拼三角:通过排序后枚举四组可能的三角形组合进行匹配判断。 数组中最长连续序列:排序数组后使用双指针统计最长连续序列长度。 过河卒:动态规划解法,标记马的控制点后计算路径数,注意边界条件。 买股票的最佳时机:贪心算法,维护最小值并计算最大收益。 游游的水果大礼包:题目描述未完整给出,但通常涉及组合优化问题。 各题解均提供了清晰的思路和Java代码实现,涵盖枚举、排序、双指针、动态规划和贪心等算法技巧。

记录了从0学习Java技术栈的日常 395

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

笔试题一

某公司的一套笔试题,我把它做好了并分享出来。 第一部分 序号 题目 A B C D E 答案 1 a z a y b z b y c a c x y z E 2 d e f d e f g h i d e f g h ? 3 c d e x y z f g h x y z i j k

艺术就是爆炸的专栏 1452

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Week7 美团笔试题2019

AcWing 759. 格子染色 视频链接 横向覆盖之间不会互相干扰, 因此可以横向 一行一行看 纵向同理 这样就将2维的问题转化为1维的问题, 变成考虑1维区间有多少点被染色了, 即区间合并问题. 然后 横向纵向之间, 最多只有一个相交点, 直接O(n2)O(n^2)O(n2)枚举一遍, 如果有交点, 答案-1 横向和纵向两直线相交的充要条件: 1.纵向的列号在横向的两个端点之间 2.横向的行号在纵向的两个端点之间 code #include <iostream> #include

esjiang的博客 287

【面试】5道JAVA笔试算法题

5道JAVA笔试算法题 开始准备面试刷题咯~ 1.数据里有{1,2,3,4,5,6,7,8,9},请随机打乱顺序,生成一个新的数组(请以代码实现) import java.util.Arrays; //打乱数组 public class Demo1 { //随机打乱 public static int[] srand(int[] a) { int[] b = new int[a.le...

JJJikerUPUP的博客 8728

【笔试强训】Week5:空调遥控, kotor和气球,走迷宫,主持人调度II,体操队形,二叉树的最大路径和,排序子序列,消减整数

本文摘要了三道算法题的解题思路和代码实现: 空调遥控问题:通过排序数组后使用滑动窗口或二分查找,找到满足温度差不超过2p的最大连续区间。滑动窗口解法时间复杂度为O(n log n)。 kotori和气球问题:排列组合问题,第一个气球有n种选择,后续每个有n-1种选择,结果对109取模。 走迷宫问题:使用BFS求最短路径,处理输入时注意下标从1开始,遇到目标点时立即返回当前步数。 主持人调度问题未提供具体内容。各题解均包含Java代码实现,展示了不同算法思想的应用。

记录了从0学习Java技术栈的日常 394

知名外企嵌入式C语言笔试试题

知名外企嵌入式C语言笔试试题 嵌入式C语言笔试试题知名外企嵌入式C语言笔试试题一. 选择题二. 填空题三.写出程序的运行结果 一. 选择题 01.C语言合法的常量是() A…45 B.078 C.25 D.“xy” 解答:答案选择D。这个是字符串常量。 02.设x和y均为int型变量,则语句x+=y;y=x-y;x-=y的功能是() A.把x和y按从大到小排列 B.把x和y按从小到大排列 C.无确定结果 D.交换x和y中的值 解答:答案选择D。 03.设a为int型变量,值为5的枚举常量是() e

千月星跡 1849

ibm笔试分享

题目全是英文的,分三个部分,感觉就是没有难题,但是因为是英文的,所以会比较的浪费时间,绝大多数人都做不完,这是正常现象。 第一部分是做矩阵题,就是把字母或数字用其他的数字或字母代替,问数字的和呀之类的,是比较简单的,难点就是在全英文,有可能弄不清楚是什么意思,或者理解错误。 第二部分:找规律填数字 15.   30,28,25,20,34,28,? a:21 16.   4,8,

hualusiyu的专栏 880

数据分析校招笔试全复盘:从SQL到业务思维的实战拆解

数据分析岗位的笔试考察往往围绕SQL、概率统计和业务思维展开,其中SQL能力是数据提取的基础,窗口函数与留存率计算是高频考点,而概率统计中的贝叶斯公式与假设检验则检验逻辑严谨性。业务分析题更看重从指标异常到归因分析的完整框架,机器学习基础概念则强调边界意识。掌握这些核心知识,不仅有助于应对校招笔试,也能为日常数据工作打下扎实基础。本文以一套典型校招笔试题为例,拆解各模块的解题思路、常见陷阱与备考策略,帮助读者构建从理论到实践的系统化答题方法,提升通过率与实战效率。

weixin_34279184的博客 316

算法笔试高频题型解析:栈、滑动窗口与BFS实战

字符串处理与栈结构是算法设计的经典组合,通过维护后进先出的数据结构,可以高效解决相邻元素匹配问题。滑动窗口技术则通过动态调整子数组边界,将暴力解法的O(n²)复杂度优化至O(n),特别适合处理连续子数组求和类问题。在多源广度优先搜索(BFS)中,通过层级遍历策略能准确计算状态传播时间,广泛应用于网格类问题。这些核心算法在大厂技术面试中出现频率超过70%,其中栈应用题目在字节跳动笔试中出现率达45%,滑动窗口问题在美团面试题库中占比约30%。本文以字符串消除、最短子数组和多源BFS等实际考题为例,演示如何将基

weixin_30247781的博客 319

百度校招笔试全解析:算法、数据结构、逻辑推理与性格测评突破指南

动态规划作为算法设计的核心方法,通过定义状态、建立转移方程、初始化、确定遍历顺序和输出结果五个步骤,系统化解决最优化问题。其技术价值在于将复杂问题分解为重叠子问题,避免重复计算,显著提升效率。在工程实践中,动态规划广泛应用于路径规划、资源分配等场景,如百度笔试中的最小路径和问题。结合哈希表的高效查找特性,可以进一步优化数据处理能力。本文以百度校招笔试为例,深入解析动态规划、树遍历等高频考点,帮助考生掌握解题框架,提升编程算法和数据结构应用能力,从容应对逻辑推理与性格测评等多维度考核。

weixin_34293059的博客 316

微软2013年暑期实习招聘笔试回忆[已补充完整]

刚考完,开始觉得做的还好,下来把不确定的验证下,发现悲剧了好多。。 【刚刚(20130415晚上)居然收到面试通知邮件。。。不知道那天能不能去。。。。】 总共20道选择题,全部不定项。总分100分,时间75分钟。去年时间是90分钟的。。。。 1~8,做对3分,半对2分,错误-2分,不做0分 9~18,做对5分,半对3分,错误-3分,不做0分 19~20,做对13分

hello world@2012 1万+

Day of Week

题目 给出一个日期,输出对应是星期几,思路:计算距离今天是几天,然后一推导,完事儿,这里的“今天”是2022年1月18日 周二 牛客网题目链接:题目 KY108 Day of Week 中等 通过率:27.62% 时间限制:1秒 空间限制:64M 知识点 模拟 基础数学 思维 warning 校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。 描述 We now use the Gregorian style of dating in Russia. The leap

大锤 241
上一篇: Linux网络编程:Reactor反应堆模式
下一篇: 251208-251214集训
_dindong
博客等级 码龄2年 107粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_dindong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值