indeed秋招笔试第一场

今天做的笔试的算法题。。。泪目啊 今天做的笔试的算法题。。。泪目啊又一次被恒生的笔试捏哭。。。T_T||算法真是头疼。找一个数组的最大和的连续子数组(时间复杂度 O(n)),当时快交卷了,随便一想感觉是找到负数后,再向两边找更多的正数。太2了。不过第一感觉是要不断求和比较,其实在想一下就和答案连接上了。时间不够的伤啊。。。果然直觉是最对的。这里贴上原帖的正确解法,一看才发现这题只是把原来的查找一个数变成了查找sum而已,嗯,果然脑子 阅读详情

做了indeed秋招的第一场笔试,题目相比别家确实简单。其中前三道完全是水题,记录一下~

第一题:Tabereru

题意:给定一个字符串,遇到"ra"需要删除,但是删除之后如果又出现了"ra"那么不继续删除了。即如果输入是rrraaa,那么输出是rraa。

思路:字符串很短,随便搞就OK。


第二题:Matrix Product

题意:就是裸的矩阵乘法,复杂度不需要任何优化,O(n^3)即可。


第三题:Ancient Formula

题意:给定不超过6个数,其中有5个空位可以添加加号+或者乘号*,求值的时候不考虑优先级,即2+3*4=20。再给定一个整数k,问这6个数的某种排列以及某种加符号方式下,与k的差的绝对值的最小值(即与k的接近程度)。

#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <vector>
#include <queue>
#include <algorithm>
#include <cmath>
#include <map>
#include <set>
#include <iostream>
#define N 505
#define INF 0x7fffffff
using namespace std;
int n,k,res = INF;
vector<int> s;
void solve(vector<int> &s,int d,int now){
    if(d == s.size()){
        res = min(res,abs(now-k));
        return;
    }
    solve(s, d+1, now+s[d]);
    solve(s, d+1, now*s[d]);
}
void dfs(vector<int> &s,int d,vector<bool> &used,vector<int> &tmp){
    if(d == s.size()){
        solve(tmp, 1, tmp[0]);
        return;
    }
    for(int i = 0;i<s.size();i++){
        if(!used[i]){
            tmp[d] = s[i];
            used[i] = true;
            dfs(s, d+1, used, tmp);
            used[i] = false;
        }
    }
    
}
int main(){
    scanf("%d %d",&n,&k);
    for(int i = 0;i<n;i++){
        int x;
        scanf("%d",&x);
        s.push_back(x);
    }
    if(n == 1){
        printf("%d\n",abs(s[0]-k));
        return 0;
    }
    vector<bool> used(s.size(),false);
    vector<int> ans(s.size());
    dfs(s,0,used,ans);
    printf("%d\n",res);
    return 0;
}


第四题:Painting

题意:输入n(n<=100000),表示n个白球在一条线上。每次等概率在不与黑球相邻的白球中选择一个置为黑球,直到没有这样的白球。问最后剩下的黑球的期望。输出float,精度10e-8之内。

样例:n=1和2下显然期望为1。n=3的时候,第一次有2/3的概率选择两边的白球,此时必然会选择第二个白球(另一边的边上);第一次还有1/3的概率选择中间的球,此时只会选择这一个球,最终的期望是5/3。

思路:dp咯。一个显然的dp如下:dp[x]表示初始有x个白球的期望。分类第一个白球选择的位置(1~n):如果选在了最边上的1号球,那么剩下变成了在3~n中继续选球;如果选择了2号,那么接下来在4~n中选择;如果选择了3号,那么接下来在1号以及5~n号中选择;同理,如果选择的是i号球,那么接下来从1~i-2和i+2~n中分别选择。但是这个dp的复杂度是O(n^2)级别的,太高了。

如何降到O(n)?考虑上述dp的结果(为方便令dp[0]=0),通过一个具体的例子解释吧:n=6的时候dp(x)=1/3(1 + dp(4)) + 1/3(1 + dp(0) + dp(3)) + 1/3(1 + dp(1) + dp(2)) = 1/3 * (3+dp(0)+...+dp(4))。推广到一般的偶数x,dp(x) = (2/x)*(x/2 + dp(0) + ... + dp(x-2))。同理可以推得n为奇数时候的公式,可知与前n项和有关,记录一下即可。这样的dp复杂度就降低为O(n)啦。

#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <vector>
#include <queue>
#include <algorithm>
#include <cmath>
#include <map>
#include <set>
#include <iostream>
#define N 100005
#define INF 0x7fffffff
using namespace std;
int n;
double dp[N];
int main(){
    scanf("%d",&n);
    for(int i = 2;i<=n;i++)
        dp[i] = -1;
    dp[0] = 0;
    dp[1] = dp[2] = 1;
    double sum = 1;
    for(int i = 3;i<=n;i++){
        if(i&1)
            dp[i] = (sum-dp[(i-3)>>1]+i/2)*2/i + (1+2*dp[(i-3)>>1])/i;
        else
            dp[i] = (sum+(i>>1))/(i>>1);
        sum += dp[i-1];
    }
    printf("%.10lf\n",dp[n]);
    return 0;
}


实际上对于奇数情况,如果把式子乘出来再次化简,可以得到和偶数相同的形式,而且求dp[i]的时候只与前i-2项的和有关,从而连dp这个数组也可以省略:代码如下:

#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <vector>
#include <queue>
#include <algorithm>
#include <cmath>
#include <map>
#include <set>
#include <iostream>
#define N 100005
#define INF 0x7fffffff
using namespace std;
int n;
int main(){
    scanf("%d",&n);
    
    double res = 1, sum = 1;
    for(int i = 3;i<=n;i++){
        double tmp = res;
        res = 2.*sum/i + 1;
        sum += tmp;
    }
    printf("%.10lf\n",res);
    return 0;
}



python多线程实现http代理 python多线程实现http代理文章要求1.py socket模块2.py threading模块3.环境搭建3.1设置代理3.2搭建http简单服务器代码分析1.完整代码2.逻辑结构 文章要求 1.py socket模块 socket模块接触后很简单,我实现的是阻塞性的套接字。 需要了解到,连接套接字,监听套接字,和套接字accept()方法的返回值是元组 数据传递过程sock.recv(1024),sock.send()也不需要转换编码,直接以b"二进制流"传输 2.py threading模块 th 阅读详情

相关推荐

利用wolcmd.exe批处理执行远程唤醒

代码如下: @echo off cls :check if exist wolcmd.exe goto targetmac echo 缺少wolcmd.exe echo. goto end :targetmac cls echo -------------------------------------------------------- echo 目标主机PC-01地址:40235678A...

Chriseo的博客 6948

DFS-Indeed笔试题-圆桌座位

去判断这种等价是很困难的。但是,因为可以旋转,所以每一个数字都有机会座位开头,我们如果规定必须用1开始,那么。刚开始在dfs()函数里面传入了str作为记录状态,结果T了。对于题目中的座位排序会像古老电话一样,可以轮盘旋转等价。如果两个方案只有旋转角度不同,则我们将其视为一种方案。(1) .是否 第x - 1个和第x个在朋友关系中;现在要给他们安排座位,要求所有相邻的人不能是朋友。后来改为了path[ ] 数组来进行记录就AC了。对朋友关系是指,编号是。输出一个数,表示总方案数。

wrj1472583690的博客 1828

BQ40Z50R2循环学习实战:量产文件生成与关键状态位解析

本文详细解析了TI BQ40Z50R2电量计循环学习(Golden Learning)的实战流程与量产文件生成方法。重点剖析了updateStatus状态位在充放电静置阶段的常见异常(如卡在0x04或跳至0x0E)及其根本原因,并提供了从环境控制、命令顺序到文件处理的完整避坑指南,帮助工程师高效完成量产配置。

weixin_29170327的博客 214

【在线笔试题解题报告系列】Indeed Tokyo 2017校园招聘 在线测试3(时间:2016.07.09)

……这个在线测试赛后不可练习,题目也看不了了,但是代码我都好好的留下来了 先上提交记录: 之后从前往后复述题意,写题解吧。 Problem A - Alphabet Replacement 题意:给你2个长度相等的,由小写字母组成的字符串。现在允许你做一个操作:把2个字符串中出现的字符A换成字符B(允许自己换成自己,2个字符串里出现的字符A都要被替换),问有没有一种

HDU_toraoh 6510

【蓝桥杯——单片机学习笔记】十三.点阵(STC15F2K60S2)

一.点阵内部图 点阵的有两种,分为共阴和共阳(与数码管类似,后续代码根据共阳点阵编写)。点阵的控制主要是每行和每列电平的控制。如图,以共阳为例:若要使左上角的灯亮,则第一行输出高电平(其他行均为低电平),第一列输出低电平(其他列均为高电平)。 二.原理图 与数码管共用接口,所以数码管和点阵的显示只能选一个使用! 原理图中点阵的接口R5即代表第5行(Row),C8即代表第8列(Column)。通...

默默无闻小菜鸡的博客 2011

Globus 数据下载

Globus 大数据下载流程~

weixin_43978558的博客 6626

indeed一道在线笔试题

String Arrangement Time limit時間制限 : 2sec / Stack limitスタック制限 : 256MB / Memory limitメモリ制限 : 256MB Problem   Mr. Takahashi is poor at English. He often mistakes spelling, especially when he spells the

逍遥小章 1632

汽车电子零部件(14):TMS热管理系统

TMS(thermal management system)热管理系统,这是新能源汽车诞生后随之而产生的一种新汽车零部件,一旦热管理失控会触发自燃,这种现象也是对EV来说是件头疼的事。汽车的热管理系统(TMS)是一个关键部件,有助于调节汽车电池组、车厢和其他车辆系统的温度。TMS的主要目的是在驾驶过程中保持最佳的电池性能和乘客舒适度。TMS使用各种加热和冷却系统来调节电池组和车厢的温度,并通过优化其使用,降低能耗,提高车辆的整体效率。

码农17年的博客 3161

Indeed2019校园招聘第三次笔试

第一题 A - Sum of Even Numbers Time limit : 2sec / Memory limit : 1024MB Problem Statement There are N integers: A1,A2,…,AN. We will make Q changes to these integers. The q-th change is as follows: ...

jirryzhang的博客 1453

Allegro快速编辑丝印文字操作指导

选择setup-Application Mode-placement edit。Allegro支持丝印文字的编辑,下面介绍快速编辑丝印文字的两种方法如下。这个功能还支持拷贝粘贴,可以从其它地方拷贝过来,免去了书写的麻烦。出现text edit窗口,输入自己需要的文字,点击ok。鼠标移动到丝印文字位置,文字会被高亮起来。Allegro快速编辑丝印文字操作指导。点击丝印文字,丝印会被高亮起来。选择Text edit 命令。输入需要更改后的文字,如下。右击选择text edit。以编辑下方丝印文字为例。

weixin_54787054的博客 4192

【LDPC-7】LLR量化位宽对LDPC译码性能的影响分析——以最小和译码算法为例进行matlab仿真

最小和译码算法的步骤如下:最后译码结果如果满足或者完成所有迭代次数,则译码算法停止迭代,否则继续进行译码迭代操作。

FPGA/MATLAB学习教程/源码/项目合作开发 1471

[2016 indeed笔试题] Tables and Pieces

[2016 indeed笔试题] Tables and Pieces

快乐的小鸟_ZJU 1398

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

indeed 第二次笔试题

1. Maximal Values 很简单,从前往后扫,找满足的,O(n),很容易就过掉了。 maxn = 100. 没啥难点。 2. Bi-gram 用map统计个数,从前往后扫,每2个字符作为一个字符串,然后遍历map,存到vector里面,根据个数,字典序进行排序,也很简单。maxn = 100,不用考虑什么复杂的东西,没难度。 1 /* 2 ID: y119...

weixin_30438813的博客 124

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

2017 Indeed-tokyo笔试题-6*6的矩阵放置元素

Indeed-tokyo笔试题三: 级别:难 题目:6*6的矩阵,每个元素为o或者. 给出一个矩阵,使得每行每列o的个数都为3 求出所有可能的放置方式数目。 思路:每列求出当前转态合法放置数,按行进行深度搜索#include <iostream> #include<vector> using namespace std; #include <time.h> #include <sys/ti

GNU'S Not Unix 3073

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

indeed2017-4-22笔试题C-Network Configuration

C - NetworkConfiguration Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement     There are N servers on thenetwork in your office. Each server can only communicate with t

小白的专栏 518

猪八戒校招在线编程数串

猪八戒校招在线编程数串题目描述输入描述输出描述示例代码 题目描述 设有n个正整数,将他们连接成一排,组成一个最大的多位整数。 如:n=3时,3个整数13,312,343,连成的最大整数为34331213。 如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。 输入描述 有多组测试样例,每组测试样例包含两行,第一行为一个整数N(N<=100),第二行包含N个数(每个数不...

wegofun的博客 296

hihocoder1068 RMQ-ST算法

思路: 这是ST表模板。遇到一道indeed笔试题需要用这个算法,顺便学习一下。那道题是说给定一个一维数组和一些查询[Li, Ri],要求计算[Li, Ri]区间内子段和的绝对值的最大值。解法是使用ST表计算所求区间内最大前缀和 - 最小前缀和即可。 实现: 1 #include <bits/stdc++.h> 2 using namespace std; 3 co...

weixin_30414155的博客 123

KMP状态机与动态规划的深度耦合原理

状态机是计算机科学中描述系统行为的基础抽象模型,其核心在于确定性状态迁移;动态规划则是求解最优路径的经典算法范式。当二者结合,尤其在字符串匹配场景下,KMP算法的next数组实质构建了一个有限状态自动机,为DP提供结构化状态空间。这种耦合使问题建模从‘字符比对’升维至‘状态演化’,显著提升重叠子问题复用效率与剪枝能力。典型应用场景包括不重叠模式匹配、日志序列检测、固件校验链优化等工业级任务。本文聚焦KMP状态机如何驱动DP状态转移,深入剖析next数组的本质、状态定义陷阱及空间优化关键。

weixin_30732487的博客 446

离职第一个月总结 2018.08

虽然每天都计算着日子,但是数到一个月的时候还是惊了一下。 这个月开始恢复去健身,上了两周洛谷的oi课,然后刷了两周左右的题目。 一切都在缓慢的但是还是有进度的展开。 indeed第三轮笔试在九月十四号,应该这三周都是只做算法题。 根据它前两轮的考法,主要就还是dp,数组这种灵活的找规律的题目,有可能考图论。 现在小朋友都太厉害了,笔试都要满分才能过线。还得继续努力啊。 ...

weixin_30881367的博客 108

状态机建模:从股票交易题看DP的本质跃迁

状态机是刻画具有阶段性、时序性和资源约束的决策过程的基础模型,其核心在于将业务逻辑切分为语义明确的中间状态,并用确定性规则定义状态间转移。该模型源于有限自动机理论,与KMP的next数组共享数学内核,广泛应用于算法优化、嵌入式控制、FPGA设计及Spring State Machine等工程场景。相比模糊的二维DP定义(如dp[i][k]),状态机通过显式命名(如s0空仓、s1首购持有)确保语义一致性,显著降低边界错误与调试成本。本文以‘最多两笔股票交易’为范例,详解五状态节点建模、转移方程推导及初始化避坑

weixin_34405354的博客 313

KMP next数组驱动的动态规划状态机设计

字符串匹配中的border概念是理解局部重复结构的基础,其数学本质是前缀与后缀的最长公共真子串;KMP算法通过next数组将该结构编码为线性递推关系,为动态规划提供可压缩的状态转移路径;这种‘状态即匹配长度’的建模方式,使DP维度从O(n²)降至O(n),显著提升大规模文本处理效率;典型应用场景包括校招笔试中的最短操作路径求解、FPGA时序优化中的模式跳转控制,以及LabVIEW/Spring State Machine等工程框架中对非线性流程的抽象表达;本文聚焦next数组如何作为状态转移的枢纽,在动态规

weixin_34269583的博客 364

转载计算机学院去微软的大牛的面试经验~

好厉害,向他学习,以下是大牛的原文: LZ是今年四月份毕业的计算机硕士,去年可能是LZ这短暂人生中经历过的最忙碌最辛苦的一年。这一年里收获了很多,也有很多感悟。一直也希望把这些经历感悟记录下来,分享给有需要的学弟学妹们。我想假如我之前能得到更多前辈经验的分享,也许我能避免一些弯路。下面我对我的求职经历简要回忆一下,各个公司的求职时间可能有交叉。 WAP 这是一家日本公司做ERP的,全称应

有志者事竟成 5281

计算机学院去微软的大牛的面试经验

好厉害,向他学习,以下是大牛的原文: LZ是今年四月份毕业的计算机硕士,去年可能是LZ这短暂人生中经历过的最忙碌最辛苦的一年。这一年里收获了很多,也有很多感悟。一直也希望把这些经历感悟记录下来,分享给有需要的学弟学妹们。我想假如我之前能得到更多前辈经验的分享,也许我能避免一些弯路。下面我对我的求职经历简要回忆一下,各个公司的求职时间可能有交叉。 WAP 这是一家日本公司做ERP的,全称应

phymat.nico的专栏 576

任务六(letecode)

题目: Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists. 思路: 思路很简单,遍历两个链表,每次取最小值。 代码: /** Definition for si...

weixin_41741008的博客 260

2025年网络安全证书选择指南:实战化、专精化与精准匹配

网络安全认证是验证专业技能、构建知识体系的重要方式,其核心价值在于将理论知识转化为解决实际安全问题的能力。随着企业招聘日益侧重“能力本位”,证书的“验证”价值愈发凸显,那些包含大量动手实验、模拟真实攻防场景的认证(如OSCP、PNPT)因其能直接证明实战能力而备受青睐。从技术原理看,现代安全领域已高度细分,云安全、安全开发、数字取证等子领域技术栈差异巨大,这要求从业者采用“T型人才”发展策略,即通过“广谱入门证”构建知识广度,再以“垂直深度证”在特定领域建立专精优势。在应用场景上,证书规划需紧密贴合个人职业

weixin_30879833的博客 442

Indeed Skype面试

一直以为日本公司的面试会是 用英语互相介绍

etolew的专栏 3460
上一篇: A Practical Guide to Quantitative Finance Interviews
下一篇: Google APAC Test 2017 Round D
dumeichen
博客等级 码龄13年 55粉丝 475原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值