23年春招/暑期实习-米哈游-笔试真题卷(2)

米哈游笔试题2021-9-12(偏ACM风格) 一. 括号匹配加贪心 #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int q; cin >> q; stack<int> stk; while (q -- ) { string s; cin >> s; int res = 0; for (char c: s) { i 阅读详情

第一题: 甜甜花酿鸡

在线测评链接:http://121.196.235.151/p/P1082

题目描述

薯条哥是一名厨艺达人,最近特别喜欢做甜甜花酿鸡,因为这种菜式的口感鲜美且具有一定的艺术性。

薯条哥的厨房里,堆满了新鲜的食材,其中包括大量的鸡肉和甜甜花。

然而,当他想要烹制一些甜甜花酿鸡时,他发现他的材料可能不够用。他有 aaa 个甜甜花, bbb 个鸡肉,以及 ccc 个神秘的魔法食材,可以当作甜甜花或者鸡肉使用。

薯条哥知道做一只甜甜花酿鸡需要 222 个甜甜花和 222 个鸡肉。他希望尽可能多地制作甜甜花酿鸡,而不浪费任何食材。

现在他需要你的帮助,来计算他最多能制作多少只甜甜花酿鸡。

输入描述

输入三个整数 a,b,ca,b,ca,b,c , 用空格隔开。
1≤a,b,c≤1091\le a,b,c\le 10^91≤a,b,c≤109

输出描述

一个整数,代表可以制作的甜甜花酿鸡的最大数量。

样例

输入

3 3 3

输出

2

样例解释

可以将两个万能食材当作一个甜甜花和一个鸡肉,所以是 4 4 1 可以制作两个甜甜花酿鸡。

题解:分类讨论

首先,由于ccc是魔法药材,我们先不考虑,我们分类讨论aaa和bbb的大小关系

  • 情况1:a=ba=ba=b,那么显然,不利用ccc的情况下,可以制作⌊a2⌋\left \lfloor \frac{a}{2} \right \rfloor⌊2a​⌋个甜甜花酿鸡,如果利用ccc的话,总共可以制作⌊a+c2⌋\left \lfloor \frac{a+c}{2} \right \rfloor⌊2a+c​⌋个甜甜花酿鸡
  • 情况2:a≠ba\ne ba=b,可以利用ccc尽可能去平衡aaa和bbb的值

如果有c≥∣a−b∣c\ge |a-b|c≥∣a−b∣,则可以先利用c使a和b尽可能相等,然后就把问题转换成情况1。

如果没有,则把ccc全部累加到较小的一方即可。

本题可以直接假定a<b,如果a>=b,交换a和b即可。

C++

#include <iostream>
using namespace std;
int main() {
    int a, b, c;
    cin >> a >> b >> c;
    // 保证 a<=b
    if (a > b) {
        swap(a, b);
    }
    // c可以先将a和b补至相等,然后再均匀分配
    if (c >= b - a) {
        c -= (b - a);  // 将a和b补至相等
        cout << (b + c / 2) / 2 << endl;  // 剩下的均匀分配即可
    } else {
        a += c;  // 将c累加至较小的一方
        cout << a / 2 << endl;
    }

    return 0;
}

Java

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = scanner.nextInt();
        // 保证 a<=b
        if (a > b) {
            int temp = a;
            a = b;
            b = temp;
        }
        // c可以先将a和b补至相等,然后再均匀分配
        if (c >= b - a) {
            c -= (b - a);  // 将a和b补至相等
            System.out.println((b + c / 2) / 2);  // 剩下的均匀分配即可
        } else {
            a += c;  // 将c累加至较小的一方
            System.out.println(a / 2);
        }
    }
}

Python

a,b,c=map(int,input().split())
if a>b:  #保证 a<=b
    a,b=b,a
if c>=b-a:  #c可以先将a和b补至相等,然后再均匀分配
    c-=(b-a)  #将a和b补至相等
    print((b+c//2)//2)  #剩下的均匀分配即可
else:
    a+=c  #将c累加至较小的一方
    print(a//2)

第二题: N皇后

在线测评链接:http://121.196.235.151/p/P1083

题目描述

薯条哥是一个热衷于国际象棋的棋手,他最近在研究 nnn 皇后问题。在国际象棋中,皇后是一种强大的棋子,能够沿着横、竖、斜线攻击其他棋子。

而在 nnn 皇后问题中,皇后也是一种强大的棋子,它能攻击同一行、同一列以及同一 454545 度角斜线和 135135135 度角斜线上的其他皇后。

薯条哥手上拿着一个 n×nn\times nn×n 的棋盘,上面已经放置了一些皇后。他希望再放置一个皇后,使得所有的皇后不会互相攻击。

对于一个 n×nn\times nn×n 的棋盘,有多种不同的摆放皇后的方式,而有些摆法可能会导致皇后之间发生攻击,有些摆法则不会。

因此,薯条哥需要找到所有满足条件的摆法,以便让他更好地研究 nnn 皇后问题,你能帮薯条哥求出有多少种放置方案吗?

输入描述

第一行输入一个正整数 nnn ,代表棋盘大小。

接下来的 nnn 行,每行输入一个仅由 . 和 * 组成的字符串,其中 * 代表放置了一个皇后, .代表未放置皇后。

1≤n≤10001\le n\le 10001≤n≤1000

输出描述

输出薯条哥有多少种放置方案。如果给定的输入的棋盘中有两个皇后会互相攻击,则输出-1。

样例1

输入

3
. * .
. . .
. . .

输出

2

说明
只有左下角和右下角两个位置可以放置。

样例2

输入

3
. * .
. * .
. . .

输出

-1

题解:模拟

注意数据范围!这不是DFS的那道八皇后:https://www.luogu.com.cn/problem/P1219

那道题的数据范围是n≤13n\le 13n≤13,因此是可以用DFS求解的,本题n≤1000n\le 1000n≤1000,必须要设计一个时间复杂度为O(n2)O(n^2)O(n2)的算法才不会超时。

我们可以根据当前棋盘已经放置的皇后位置,来对棋盘的任意一个位置(i,j)(i,j)(i,j)是否可以放置皇后来做一个标记。

如果(x,y)(x,y)(x,y)点已经放置了皇后,那么第xxx行,第yyy列,以及(x,y)(x,y)(x,y)的两个对角线都不可放置皇后,对于行和列我们可以使用两个数组row[x]row[x]row[x]和col[y]col[y]col[y]来标记,对于两个对角线,我们可以使用dig[x−y]dig[x-y]dig[x−y]和idig[x+y]idig[x+y]idig[x+y]这两个标记数组来判断是否可以放置,举个例子,如下图所示,45度的斜线上的点,都满足x+yx+yx+y等于一个定值,因此可以用idig[x+y]idig[x+y]idig[x+y]标记数组来判断。同理可得135度斜线上的点,都满足x−yx-yx−y是一个定值,但是由于x−yx-yx−y可能小于0,因此最后还需要把数值+n,以保证映射在一个正整数区间。

这样模拟一遍,最终我们再枚举每一个位置是否可以放置皇后,输出对应的合法数量即可。

C++

#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
char  g[N][N];
bool col[N] , row[N] , dig[N * 2] , idig[N * 2];  // 记录行,列,正负对角线是否有皇后
int main()
{
    int n;
    cin >> n;
    bool flag=true; //检验棋盘上的皇后是否合法
    for (int i = 1 ; i <= n ; i++){
        for (int j = 1 ; j <= n ; j++){
            cin>>g[i][j];
            if (g[i][j] == '*'){
                if(row[i]||col[j]||dig[i-j+n]||idig[i+j]){
                    flag=false;
                }
                row[i]=col[j]=dig[i-j+n]=idig[i+j]=true;  //将行、列、两个对角都标记为true
            }
        }
    }
    if(!flag){
        puts("-1");
        return 0;
    }
    int cnt = 0;
    for (int i = 1 ; i <= n ; i++){
        for (int j = 1 ; j <= n ; j++){
            if (row[i] || col[j] || dig[i - j + n] || idig[i + j]) continue;
            cnt ++;
        }
    }
    cout << cnt << endl;
    return 0;
}

Java

import java.util.Scanner;

public class Main {
    static final int N = 1010;
    static char[][] g = new char[N][N];
    static boolean[] row = new boolean[N], col = new boolean[N], dig = new boolean[N * 2], idig = new boolean[N * 2];

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        boolean flag = true;

        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                g[i][j] = scanner.next().charAt(0);
                if (g[i][j] == '*') {
                    if (row[i] || col[j] || dig[i - j + n] || idig[i + j]) {
                        flag = false;
                    }
                    row[i] = col[j] = dig[i - j + n] = idig[i + j] = true;
                }
            }
        }

        if (!flag) {
            System.out.println("-1");
            return;
        }

        int cnt = 0;
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                if (row[i] || col[j] || dig[i - j + n] || idig[i + j]) continue;
                cnt++;
            }
        }

        System.out.println(cnt);
    }
}

Python

N = 1010
g = [['' for _ in range(N)] for _ in range(N)]
row = [False] * N
col = [False] * N
dig = [False] * (N * 2)
idig = [False] * (N * 2)

n = int(input())
flag = True

for i in range(n):
    g[i]=input().split(' ')
    for j in range(n):
        if g[i][j] == '*':
            if row[i] or col[j] or dig[i - j + n] or idig[i + j]:
                flag = False
            row[i] = col[j] = dig[i - j + n] = idig[i + j] = True

if not flag:
    print("-1")
    exit(0)

cnt = 0
for i in range(n):
    for j in range(n):
        if row[i] or col[j] or dig[i - j + n] or idig[i + j]:
            continue
        cnt += 1

print(cnt)

第三题: 最长的通讯路径

在线测评链接:http://121.196.235.151/p/P1084

题目描述

薯条哥是一位研究者,他在研究网络传输时遇到了一个问题。

他拿到了一张通讯网络的拓扑结构图,其中每条通讯线路被染成了红色或者蓝色。

他想找到一条长度最长的通讯路径,使得路径上相邻的两条线路颜色不同。

输入描述

第一行输入一个正整数 nnn , 代表节点数量。

接下来的 n−1n-1n−1 行,每行输入两个正整数 u,vu,vu,v 和一个字符 chrchrchr ,代表节点 uuu 和节点 vvv 有一条边连接。

若为 'R' 代表这条边是红色, 'B' 代表这条边是蓝色。

1≤n≤1051\le n \le 10^51≤n≤105

1≤u,v≤n1\le u,v\le n1≤u,v≤n

保证输入的是一颗树。

输出描述

一个正整数,代表薯条哥可以选择的路径最大长度。

样例

输入

4
1 2 R
2 3 B
3 4 B

输出

2

样例解释

选择 1−2−31-2-31−2−3 的路径即可。

题解:树形DP

默认以1为根节点进行DFS遍历。选用其他节点也是不影响的,因为会枚举以iii为根节点的所有路径。

根据题目描述,整个路径必须要满足路径上相邻的两条边的颜色不同,因此,当我们枚举以iii为根节点且与iii所连接的边为红色/蓝色的最大长度来求解这道题。

首先,我们根据动态规划的三要素:状态方程定义、状态转移方程、状态初始化来分析这道题

状态方程定义:定义f[i][0/1]f[i][0/1]f[i][0/1]表示以iii为根节点且与节点iii所连接的边为红色/蓝色的最长路径。

状态转移方程:我们根据树形DP的核心思想:利用子节点的信息来更新父节点的信息可以得出

对于子节点vvv而言,如果与父节点iii所连接的边为红色,则有f[i][0]=max(f[i][0],f[v][1]+1)f[i][0]=max(f[i][0],f[v][1]+1)f[i][0]=max(f[i][0],f[v][1]+1)

如果与父节点iii所连接的边为蓝色,则有f[i][1]=max(f[i][1],f[v][0]+1)f[i][1]=max(f[i][1],f[v][0]+1)f[i][1]=max(f[i][1],f[v][0]+1)

对于以iii为根节点的最长路径,显然是将f[i][0],f[i][1]f[i][0],f[i][1]f[i][0],f[i][1]这两条路径连接起来,可以得到一条最长路径,如下图所示,图中1号节点的最长路径就是f[1][0]+f[1][1]=3+1=4f[1][0]+f[1][1]=3+1=4f[1][0]+f[1][1]=3+1=4

状态初始化:所有状态初始化为0即可。

C++

#include <bits/stdc++.h>
using namespace std;
const int N=1E5+10;
struct Node{
    int node,color;   //定义边的另一个节点、边的颜色 0表示R 1表示B
};
vector<Node>g[N];  //领接表的vector写法 仅适用于点权建图
int f[N][2];  //以i为根节点且与节点i所连边的颜色为红色/蓝色的最大长度
int res;
void dfs(int u,int fa) //如果是有向图 就不需要fa这个变量
{
    for(auto &x:g[u]) //访问u的所有节点
    {
        int son=x.node,color=x.color;
        if(son==fa)continue; //无向边才需要这一句 保证每个节点只会被访问一次(不理解的可以直接背过)
        dfs(son,u);  //先遍历子节点,更新子节点信息,再由子节点来更新父节点信息
        f[u][color]=max(f[u][color],f[son][1-color]+1);  //根据状态方程,利用子节点信息更新父节点信息
        res=max(res,f[u][0]+f[u][1]);
    }
}

int main(){
    int n;
    cin>>n;
    unordered_map<char,int>mp={{'R',0},{'B',1}};  //颜色的哈希映射
    for(int i=1;i<n;i++){
        int a,b;
        char ch;
        cin>>a>>b>>ch;
        g[a].push_back({b,mp[ch]});  //a->b建立一条边
        g[b].push_back({a,mp[ch]});   //b->a建立一条边
    }
    dfs(1,0);  //从根节点开始,自顶向下搜索
    cout<<res<<endl;
    return 0;
}

Java

import java.util.*;

class Node {
    int node, color;  // 定义边的另一个节点、边的颜色 0表示R 1表示B
}

public class Main {
    static final int N = (int)1e5 + 10;
    static ArrayList<Node>[] g = new ArrayList[N];  // 邻接表的ArrayList写法,仅适用于点权建图
    static int[][] f = new int[N][2];  // 以i为根节点且与节点i所连边的颜色为红色/蓝色的最大长度
    static int res;

    static void dfs(int u, int fa) {  // 如果是有向图,就不需要fa这个变量
        for(Node x : g[u]) {  // 访问u的所有节点
            int son = x.node, color = x.color;
            if(son == fa) continue;  // 无向边才需要这一句,保证每个节点只会被访问一次
            dfs(son, u);  // 先遍历子节点,更新子节点信息,再由子节点来更新父节点信息
            f[u][color] = Math.max(f[u][color], f[son][1-color] + 1);  // 根据状态方程,利用子节点信息更新父节点信息
            res = Math.max(res, f[u][0] + f[u][1]);
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        Map<Character, Integer> mp = new HashMap<>();  // 颜色的哈希映射
        mp.put('R', 0);
        mp.put('B', 1);
        for(int i = 1; i <= n; i++) g[i] = new ArrayList<>();
        for(int i = 1; i < n; i++) {
            int a = sc.nextInt(), b = sc.nextInt();
            char ch = sc.next().charAt(0);
            g[a].add(new Node(){{
                node = b;
                color = mp.get(ch);
            }});  // a->b建立一条边
            g[b].add(new Node(){{
                node = a;
                color = mp.get(ch);
            }});  // b->a建立一条边
        }
        dfs(1, 0);  // 从根节点开始,自顶向下搜索
        System.out.println(res);
    }
}

Python

import sys
sys.setrecursionlimit(10**6)  # 设置递归深度上限
class Node:
    def __init__(self, node, color):  # 定义边的另一个节点、边的颜色 0表示R 1表示B
        self.node = node
        self.color = color

N = int(1e5) + 10
g = [[] for _ in range(N)]  # 邻接表的列表写法,仅适用于点权建图
f = [[0, 0] for _ in range(N)]  # 以i为根节点且与节点i所连边的颜色为红色/蓝色的最大长度
res = 0

def dfs(u, fa):  # 如果是有向图,就不需要fa这个变量
    global res
    for x in g[u]:  # 访问u的所有节点
        son, color = x.node, x.color
        if son == fa: continue  # 无向边才需要这一句,保证每个节点只会被访问一次
        dfs(son, u)  # 先遍历子节点,更新子节点信息,再由子节点来更新父节点信息
        f[u][color] = max(f[u][color], f[son][1-color] + 1)  # 根据状态方程,利用子节点信息更新父节点信息
        res = max(res, f[u][0] + f[u][1])

n = int(input())
mp = {'R': 0, 'B': 1}  # 颜色的哈希映射
for i in range(1, n):
    a, b, ch = input().split()
    a, b = int(a), int(b)
    g[a].append(Node(b, mp[ch]))  # a->b建立一条边
    g[b].append(Node(a, mp[ch]))  # b->a建立一条边
dfs(1, 0)  # 从根节点开始,自顶向下搜索
print(res)
【秋招突围】2024届米哈游秋招真题卷(第一套) - 三语言题解(CPP/Python/Java) > 🌰 今晚米哈游的提前批就要开始啦,我们来看看去年秋招米哈游真题卷的难度怎么样 > > 💡第一题比较简单是个基础的`位运算贪心` 问题,第二题是一个 `概率DP`,不太好做,第三题考察的是 `计数相关的DP`,也是比较难的一类,总体来看这次笔试还是不简单的 阅读详情

相关推荐

【2024-03-10】米哈游春招笔试三道编程题解

恭喜发现宝藏!搜索公众号【TechGuide】回复公司名,解锁更多新鲜好文和互联网大厂的笔经面经。作者@TechGuide【全网同名】

试问道几许 1803

米哈游程序综合笔试B卷9.12

一、题型 单选10+不定项15+编程3 二、单选 1、关于c++的异常处理机制以下说法错误的是(A) A、一次异常处理主要由“抛出”->”捕获“->”回退“等步骤构成。 B、异常被抛出、捕获并处理后,所有对象都会被析构,它们所占用的空间会被回收。 C、异常处理本质上是另外一种返回机制。 D、一个异常被抛出时,会引发c++的异常捕获机制。 解析:异常被抛出、捕获并处理后,所有生命期已结束的对象都会被正确地析构,它们所占用的空间会被正确地回收。 2、 #include <vector>

qq_34716145的博客 1581

【2023年华为暑期实习-4月26日-第三题(300分)-MC方块】(题目+思路+Java&C++&Python解析+在线测试)

在Steve的实验中,幽匿催发体可以看做每次吸收经验后会向自己平面方向上的周围八个方块进行感染,使其变成幽匿催发体。Steve任意选择了 n 个坐标点作为幽匿催发体的起始方块,接下来每天都会给予这些催发体足够使自身范围向外扩展一圈的经验。当有两个或以上的幽匿催发体的感染范围重叠时,重叠区域的方块会吸收更多的经验,吸收经验的数量为该方块所在不同幽匿催发体感染范围数量的整数倍。第三天,两个催发体的感染范围出现重叠,重叠部分的经验倍数 M 为2,其余则为1,以此类推。一道比较有难度的二分答案题。

m0_73659489的博客 1326

米哈游2024暑期牛客笔试题

1、函数调用次数2、操作系统页面管理3、数据库4、计算机网络TCP UDP HTTPS和游戏页面结合5、出栈顺序6、操作系统进程,死锁7、c++语言特性:类,虚函数,8、c++const/引用9、c++const/引用10、操作系统进程,死锁。

boomgloom的博客 1926

AI驱动视频剪辑自动化:cutcli命令行工具重塑工作流

视频剪辑自动化是提升内容生产效率的关键技术,其核心原理在于通过程序化指令替代手动操作,将创意执行过程代码化。这项技术的价值在于能够将创作者从重复性劳动中解放,实现批量化、标准化的视频内容生产,尤其适用于社交媒体运营、产品宣传等高频产出场景。通过封装专业软件(如剪映/CapCut)的底层草稿格式,自动化工具在保证工业级渲染质量的同时,提供了可编辑的中间态,为AI智能体(Agent)与生产工具的结合提供了清晰接口。本文以cutcli为例,深入探讨了如何通过命令行工具和AI助手,构建从自然语言指令到可编辑视频草稿

weixin_27210125的博客 1065

zabbix5+dify+ollama+deepseek+企业微信 本地部署实现故障智能分析

zabbix5告警信息deepseek自动分析

slc14211421的专栏 3073

23年春招/暑期实习-米哈游-笔试真题卷(1)

米哈游笔试真题

sspnote的博客 1510

注册电气工程师详细教材

注册电气工程师详细教材

qq_40844444的博客 4257

23年春招:暑期实习-米哈游-笔试真题卷(1)

的棋盘,有多种不同的摆放皇后的方式,而有些摆法可能会导致皇后之间发生攻击,有些摆法则不会。薯条哥是一名厨艺达人,最近特别喜欢做甜甜花酿鸡,因为这种菜式的口感鲜美且具有一定的艺术性。这两个标记数组来判断是否可以放置,举个例子,如下图所示,45度的斜线上的点,都满足。根据题目描述,整个路径必须要满足路径上相邻的两条边的颜色不同,因此,当我们枚举以。这两条路径连接起来,可以得到一条最长路径,如下图所示,图中1号节点的最长路径就是。薯条哥的厨房里,堆满了新鲜的食材,其中包括大量的鸡肉和甜甜花。

sspnote的博客 833

kemeas算法继续优化——elkan kmeas算法

题记:又是凌晨3点的夜 elkan kmeans算法 在我的上一篇博客《kmeans算法性能改进_kmeans++算法+kmeans++优化算法+距离计算优化》中,在一般kmeans算法的基础上,添加了对于初始条件和距离计算更上的一些优化技巧。这篇博客聊一聊elkan算法,其实也是对于kmeans运行速度的优化算法。主要作用与kmeans的距离计算过程。 原理 假如我们已经知道任意两个样本之间的距离,再假设我们已经知道了样本1与聚类中心1之间的距离,根据三角性两边之和大于第三边,c+d>a,所以如果

铁血军的小博客 7065

Unity布娃娃系统 Ragdoll Mecanim Mixer使用

6. 选完之后,左键下面的hip等角色各个部位不松开鼠标,拖拽连接到上面Amature的各个部位,如图,下面所有部位都连接完之后,第二步点击Configure Selected Bones确认你的部位连接选择。要做一个布娃娃和动画混合的项目,这个插件是比较不错的,搜了一圈文章教程也是抄来抄去,抄的没有头没有尾,自己摸索着用了一下,记录使用过程吧。8. 之后就点击步骤7图一中的Create Ragdoll,会发现player结构发生变化,如图。4. 添加完脚本之后会显示你的player结构,如图。

SuShengQuanshiW的博客 1650

NL2SQL进阶系列(1):DB-GPT-Hub开源应用实践

** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 验证I。/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 验证I。#腾讯#昨晚做的腾讯的笔试,怎么今天早上直接打电话,我以为是约面的,结果对面的意思是直接照着我简历问。4.10 一面 40mins,只问了项目,面试官提了一个非常值得思考的问题,被拷打,没有八股,没有手。本科985,从寒假就开始复习准备找暑期实习了,本来信心满满觉得找个实习没什么问题,但是投了一个多月,

每天多一点干货 1173

多智能体系统在军事仿真中的应用:AI人工智能战略推演

本文旨在全面解析多智能体系统在军事仿真领域的应用技术,重点探讨AI驱动的战略推演系统的设计原理和实现方法。研究范围涵盖从基础理论到实际应用的完整技术栈。本文采用从理论到实践的递进结构,首先介绍核心概念,然后深入算法实现,最后展示实际应用案例和未来展望。多智能体系统(MAS):由多个相互作用的智能体组成的分布式系统军事仿真(Military Simulation):通过计算机模拟军事行动和战争场景战略推演(Strategic Wargaming):通过模拟推演评估军事战略的有效性更高保真度的仿真。

AI天才研究院 1778

题解 | #输入整型数组和排序标识,对其元素升序或降序排序#

4. 说一说评论表怎么设计的吧?本人目前的情况是双非二本,打算暑期找实习学习情况为:学完了hadoop,hive,Hbase,Mysql,打算在6月份之前学完spark并做完两个项目但在牛客上。后续题目的出题人题解和参考代码F思路 本题改编自********* ************** ,是在考研书籍上看到的,恰巧看到史记上的这句话,加上ioi赛制。昨天还有一个特别搞的事情忘记说了,还是前天巡查的时候发生的,因为早上走的急,又有一个录制课程的任务莫名其妙落在我身上,所以我把录制打开后就直接溜了,结果!

每天多一点干货 976

如何正确的计算两个角度的角度差?

这一步是必要的,因为它确保了无论a相对于b是在逆时针方向还是顺时针方向,d2总是正确地反映出绕圆相反方向的角度差。这样,当函数进行最后的比较时,它能够准确地比较两个方向的旋转路径并选择最短的一个。

小秋 AI SLAM 入门实战教程 4137

GEE:基于自定义的年度时序数据集进行LandTrendr变化检测

本文介绍了使用年度时序数据进行LandTrendr变化检测的方法,包括核心函数调用、参数设置和结果可视化。通过筛选参数(年份、变化幅度和持续时间)对结果进行过滤,输出变化年份、变化幅度和持续时间。代码提供了完整的处理流程,包括数据输入、LandTrendr算法运行、结果筛选与可视化,并支持结果导出。适用于基于Google Earth Engine平台的地表变化检测分析。

养乐多的博客 752

23年秋招-米哈游-笔试真题卷(2)

米哈游笔试真题

sspnote的博客 1794

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

23年秋招-米哈游-笔试真题卷(1)

米哈游笔试真题

sspnote的博客 2604

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

米哈游(原神)一面笔试原题。。。

最近在网上看到一个帖子,一网友疯狂吐槽米哈游,说米哈游谈的是16薪,等到不想用你的时候就给你打低绩效,只给13薪,然后各种威胁让你主动离职,还不走辞退流程,不给赔偿,真是恶心。其中一网友评论说:不只是米哈游,好多公司都这情况,都已经成普遍了。还有网友说:很多公司都这套路,用年终奖拿捏你,要好你的base就行了,奖金有就是赚了,没有也不在意,你不在意这个他就拿捏不了你。还有一位前米哈游的员工说:我还...

数据结构和算法 2066

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【2023-03-05】米哈游春招笔试三道编程题

【2023-03-05】米哈游春招笔试三道编程题

试问道几许 4287
上一篇: 23年春招/暑期实习-米哈游-笔试真题卷(1)
下一篇: 23年秋招-米哈游-笔试真题卷(1)
薯条哥搞offer
博客等级 码龄3年 139粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值