https://ac.nowcoder.com/acm/contest/874/D 题目大意是给定两个数组A和B 数组的元素可以打乱重新排列 然后求∑ni=1 AiBi 的期望 我是这么理解的: 由于可以打乱重新排列,所以每个位置上的期望都是一样的(A的期望*B的期望),又因为是n个位置 那么就是A的和*B的和/n 那么怎么保留30位小数呢?用double显然不行,这就需要模拟除法(高精度运算),也可以说是模板题了 #include<bits/stdc++.h> using namespace…
https://ac.nowcoder.com/acm/contest/874/G 题目大意:对于一个连通图,现在定义两个点的贡献为连接两点的路径上最大的权值 求任意两个点贡献的和 这个题看懂花了我很久的时间 真的难受 由于两个点的贡献是由最大的权值决定的,所以如果我们将边按权值由小到大排列,那么遍历的时候 当前的边一定是目前的最大权值 也就是两个点之间贡献 本题还用到了并查集来维护连通图 具体看代码吧 #include<bits/stdc++.h> using namespace std;…
https://ac.nowcoder.com/acm/contest/874/C 题目大意是两人俄罗斯轮盘赌 n个位置 有m个子弹 已知哪些位置上有子弹 子弹打出 游戏结束 求第i次扣动扳机游戏才结束的概率 直接模拟就过了  注意输出的时候分数要约分 c++真的好用 直接就有gcd函数 #include<bits/stdc++.h> using namespace std; ]; ]; int main() { int m; scanf("%d",&m); whi…
题目链接:https://ac.nowcoder.com/acm/contest/874/D 题目大意:给你两个数列a和b然后对a可以进行排列,对b可以任意排列,问你sigma(a(i)*b(i))的期望. 具体思路:求期望的时候我们分着进行就可以了,对于a数组,排列方式有n!种,对于b数组,我们每一次固定一个,然后这个的期望就是(n-1)!/(n)!,也就是1/n,但是这只是一个的,我们把所有的情况相加就可以了. 注意保留30位小数需要用到模拟除法,就是每一次*10,然后取余模数.这个题还需要…
https://ac.nowcoder.com/acm/contest/874/A 题目:有两个账号 , 一开始都为0级 , 求任意一个账号升级到N的期望 要求:如果当前账号嬴了 , 就继续沿用当前的账号,否则就更换其他账号,第i级嬴的概率是pi; 官方题解 因为dp[i][j] 涉及到 dp[j][i] 的价值 ,如果单纯的只是用一条式子是无法得出dp[i][j]的价值 , 应为这是从后开始计算的 , dp[j][i]还没有被计算到 ,所以必须需要两条方程 , 单纯的两条也是不行 , 因为dp…
题意:给出一棵树,定义两点间代价为两点路径上最长的边权,问任两点间的代价和. 解法:这道题的解法十分巧妙:直接用Kruskal对这棵树求最小生成树,然后对于即将加入到MST的这条边(u,v,w),这条边对答案的贡献是size[u]*size[v]*w.为什么?因为我们是从小到大把边加入,所以对于两点分别位于u联通块和v联通块的路径上最长的边必定是(u,v,w),所以求完MST之后就是答案了. #include<bits/stdc++.h> using namespace std; typede…
  本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.三七互娱等公司offer,岗位是Java后端开发,因为发展原因最终选择去了三七互娱,入职一年时间了,也成为了面试官,之前面试了很多家公司,感觉大部分公司考察的点都差不多,趁空闲时间,将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助.   下面提的问题可以看下你自己是否能回答出来,是否做好准备了,当然面试题准备是一方面,你本身的技能掌握是一方面,本身技能不过硬也会被刷下来,下面的图是进阶体系…
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.三七互娱等10家互联网公司的校招Offer,因为某些自身原因最终选择了三七互娱.6.7月主要是做系统复习.项目复盘.LeetCode与牛客刷题等准备工作,并且投了字节跳动.拼多多.猿辅导在内的几家公司的提前批,当然还是挂在了简历,因为毕竟自己的学校.学历.项目经验肯定比不过牛客网上那些大厂实习的大佬了,有时间也给自己做个总结,也希望能帮助到大家 (PS:再次编辑,感谢大家的支持,受宠若惊.私信问我要这些面试答案的,希望交…
转自:http://www.itmian4.com/forum.php?mod=viewthread&tid=3985 首先感谢师兄在两年前发的贴([天道酬勤] 腾讯.百度.网易游戏.华为Offer及笔经面经 ),这篇文章对我帮助很大. 我写这篇文章一是为了感谢这位同是华南理工但素未谋面的师兄,给我推荐这篇文章的炳爷,以及为我解决难题的浩子,羊兄给的项目帮助,洁洁的理解,王兄提供的两个月免费住宿,以及互娱的BOSS,leader,金山的朱先生等人对我择业的帮助,以及所有直接间接帮助过我的人.二是…
网易游戏互娱(offer) 去年这个时候就参加过网易游戏的实习生招聘,到今年总共收到了4次拒信.不过这次运气好,终于get了最想要的offer.去年实习生互娱笔试挂,秋招笔试挂,今年春招互娱投了连笔试链接都没给我发,我重注册了个号投了雷火,雷火4个编程题100分,得了72分,然而笔试还是挂了. 网易互娱在hiho上提供了一些面试的名额,然后我就从3月份每周都打hiho,因为不是专业acmer,成绩很不稳定,最好的一次70几名,然后拿到了一次面试的机会,话不多说,直接分享一波面经. 一面 C++基…
1.(单选)以下关于语句 a = [1,2,3,(4,5)]的说法中,正确的个数有( )个.(1)a是元组类型   (2)a是列表类型  (3)a有5个元素      (4)a有4个元素(5)a[1]的值为2  (6)在程序执行过程中,可以修改a中元素的值(本题分数:2)A) 2B) 3C) 4D) 5[解析]1,3是错的您的答案:C  正确率:100%2.(单选)以下程序的执行结果是. L = [1, 3, 5, 7, 9] L.pop(-3) L.remove(L[0]) print(L)…
1.(单选)以下关于语句 a = [1,2,3,(4,5)]的说法中,正确的个数有( )个.(1)a是元组类型   (2)a是列表类型  (3)a有5个元素      (4)a有4个元素(5)a[2]的值为2  (6)在程序执行过程中,不能修改a中元素的值(本题分数:2)A) 2B) 3C) 4D) 5[解析]1,3,5,6是错的您的答案:A  正确率:100%2.(单选)以下程序的执行结果是. L = [1, 3, 5, 7, 9] print(L.pop(-3), end = ' ') pr…
题目链接:https://www.nowcoder.com/acm/contest/94/B 题意:在一棵有 n 个节点的树上,有两种操作,一个是把 u 到 v 的路径走一遍,另一个是查询 u 到 fa[ u ]的路径走了几次,如果没走过输出“ Not yet ”,走过一次升序输出经过要走这条路时的路径端点,否则输出“ Many Times”. 题解:因为只需记录每条路径经过一次,若一条路径经过了多次,则访问该节点时可跳到它的没有访问过路径的祖先上面,故可以使用并查集来实现. #include…
题目链接:https://www.nowcoder.com/acm/contest/94/A 题意:在一个二维平面上有 n 个炸弹,每个炸弹有一个坐标和爆炸半径,引爆它之后在其半径范围内的炸弹也会爆炸,每个炸弹最多爆炸一次,每次随机选一个未引爆的炸弹来引爆,问引爆所有炸弹的期望操作次数. 题解:先 dfs 把引爆每个炸弹之后会触发的所有炸弹的状态保存起来,当作引爆该炸弹的下一个状态.然后可以巧妙的考虑从后往前进行状压 DP,显然全部炸弹都引爆之后的操作次数为 0,此状态则为初始状态,接一下考虑每…
题目链接:https://www.nowcoder.com/acm/contest/94/G 题意:中文题目,见链接 题解:设 sum[i] 为 a[i] 的前缀和,可得公式 dp[i] = min( dp[j] + ( sum[i] - sum[j] -  b[i] ) ^ 2 ) = min( dp[j] + sum[j] ^ 2 + 2 * ( sum[i] - b[i] ) * ( sum[i] - sum[j] ) + sum[i] - b[i] ) ^ 2 设 y = dp[j] +…
题目链接:https://ac.nowcoder.com/acm/contest/625/C 题意:给定两个字符串,每次只能从两个字符串的两端取字符,求依次取字符后所构成的数字最大为多少. 思路:思路很简单,比较4个端口,取最大者,若有相等,往里查找.但比赛的时候用模拟写了很久,也没写出来.之后看别人的代码发现好简单.输入a,c字符串,将a,c分别反转之后得到b,d.然后每次比较a,b,c,d中最大的即可,因为string重载的<是符合我们这里的要求,即按字典序比较,得到最大的之后用erase函…
题目链接:https://ac.nowcoder.com/acm/contest/625/H 题意:给定n个数(<=1e9)的序列,其中n<=5e5,求该序列所有子序列的对应的gcd对1e9+7取模后的值. 思路:比赛的看错题了,以为是要求n个数任意两个数的gcd的和,怪样例QAQ..不过就算我没看错题我可能也做不出来.先把n个数的公共gcd求出来,记为com.然后对每个子序列的起点往后求gcd,记为nwa,令 ans=(ans+nw)%Mod; 如果nw=com,就不用再循环了,ans=(a…
冲鸭!去刷题:https://ac.nowcoder.com/acm/contest/625/A 题目描述 CC是著名的算法竞赛选手,他不仅人长得帅,而且技术了得,自然而然就有了许多粉丝. 为了能帮助粉丝们提高竞技水平,CC建立了一个粉丝群,每天CC都会在粉丝群里和群友深入交流黑科技.然而,有些群友老是不努力训练,成天想着复读,比如当CC在群里面发了个整数0,那紧接着就会有群友发整数1,然后又会有群友发整数2……这引起了CC的不满,于是CC决定踢掉一些群友. CC的粉丝群人数为无穷大.当CC发出…
冲鸭,去刷题:https://ac.nowcoder.com/acm/contest/625/C 小六喜欢两全其美的事情,今天就正好有一个这样的机会. 小六面前有两根管子,管子里面放满了数字为1到9的小球.每次取球时,小六会先选择一根管子,再从这根管子的某一侧(左侧或右侧)取出一个球.在满足取球规则的情况下,他可以任意顺序取出所有小球.假如小六依次取出的球的编号为a1,a2,⋯,ana1,a2,⋯,an,则他最后就得到了一个形如¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯a1a2⋯ana1a…
构建游戏世界的Pebble 愿景:出色的游戏服务器端底层框架   现代游戏项目中,为了让更多的玩家能在一起玩,游戏服务器所需要承载的在线玩家数量越来越多.同时为了让游戏更好玩,越来越多复杂的业务逻辑都需要放在游戏服务器端上运行.因此,拥有一个同时具备可灵活扩展功能.并且能轻松构建服务器集群的底层框架,变得越来越有必要.这样游戏程序员可以专心编写好玩的游戏逻辑,而无需去担心服务器承载量的问题.   Pebble的含义是“基石”.我们开发这个框架的目标,就是希望它能坚固.可靠,发挥作为基础开发框架的…
https://ac.nowcoder.com/acm/contest/625/B 分析: 全部的状态只有1<<18 个 , 所以我们可以预处理 f[u][j] , 然后建立出全部的u可以转移的状态的状态图: 有优先队列去搜索 这里需要注意一个坑点 , 数组f[i][j] , 是不能开到long long ,这样会爆内存:可是 f[i][j-1]* f[i][j-1] 这个操作会爆int ,所以我们需要将 f[i][j-1]* f[i][j-1] 变成long long   1ll*f[i][…
https://ac.nowcoder.com/acm/contest/625/K 题意: 给出Q 个询问 i , 求 s[0..i-1] 与 s[i...len-1] 有多少相同的字串 分析: 给出了查询 , 容易想到先预处理出答案好吧 , 字符串的问题也容易想到后缀自动机 ,但是我们该怎么使用呢? 下面提供我的思路: 我们建立出SAM后 , 跑一边拓扑排序 ,根据SAM跑出来的拓扑排序的序列特性 , 我们可以求出 在当前状态st 的最大串字符出现的个数 ; --i) {///得到的是最大字符…
https://ac.nowcoder.com/acm/contest/625/A 题意:给出一个区间范围 , 求有多少个数的每一位的积是在这个区间里面的 分析:没错了 ,就是记忆化暴力搜索 ,不断的枚举除 i ,i是2到9 , 看是否合法 ,  对于枚举到相同的状态的时候 , 后面的价值肯定和上一个状态是一样的 , 所以这样就好拉 #include<bits/stdc++.h> using namespace std; #define ll long long map<ll , ll…
H-对称与反对称 题目描述 给出一个N*N的方阵A.构造方阵B,C: 使得A = B + C.其中 B为对称矩阵,C为反对称矩阵. 对于方阵S中的任意元素,若(S)ij = (S)ji,则称S为对称矩阵 对于方阵T中的任意元素,若(T)ij = -(T)ji,则称T为反对称矩阵 注意,所有运算在模M意义下 输入描述: 输入包含多组数据,处理到文件结束每组数据,第一行包含两个正整数N,M(1 <= N <= 1000, 1 <= M <= 1000,000,001)分别表示方阵大小与…
偶尔碰到这题,简单数位DP题,然而我已生疏了…… 这次算是重新想到的,看来对DP的理解有增进了…… dp[i][j][k],表示前i为,mod为j,是否出现2.3.5的剩下的数位可组成的数字.答案就是dp[len][0][0] #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; #define LL long lo…
TIps: 1.所有代码中博主使用了scanf和printf作为输入输出  2.代码中使用了define LL long long 所以在声明变量的时候 LL其实就等价于long long 希望这两点不会成为读者看代码时候的障碍qwq 另外题目链接我会放在最后 如果需要请往下拖一拖 T1  这道题其实就是单纯对数据进行排序,但是因为关键字不止一种(解题数m和罚时t) 并且输出的是队伍的名字(也就是序号) 而正常排序完之后我们就会发现 我们并不知道当前各个位置的数对应的队伍名是什么了(也就是其原本…
一.输入: 输入一个3x3数独,字符'.'代表空输入三个宫的域,每个宫包括三个位置,[0,0]表示0行0列 二.输出要求: 1.每个宫里最终123各出现一次, 2.数独中的行列里不出现重复字符: 输出满足条件的解 思想:先根据输入找到所有行列不重复的数独,再判断三个宫是否满足不重复: 1 #include <iostream> 2 #include <bits/stdc++.h> 3 using namespace std; 4 int a[3][3];//存储三个宫区域 5 in…
1.(单选)以下选项中使Python脚本程序转变为可执行程序的第三方库的是(本题分数:3)A) NetworkxB) pyinstallC) RequestsD) PyPDF2您的答案:B  正确率:100%2.(单选)以下不属于Python的pip工具命令的选项是:(本题分数:3)A) helpB) uninstallC) searchD) get您的答案:D  正确率:100%3.(单选)用于将Python程序打包成可执行文件的工具是:(本题分数:3)A) WheelB) docoptC) …
1.(单选)以下程序对字典进行排序,按字典键值从小到大排序,空白处的代码是(  ): dt={'b':6, 'c':2, 'a':4} s=sorted(dt.items(),key=_____) print(s) (本题分数:3)A) lambda x:x[0]B) lambda x:x[1]C) dt.values()D) dt.keys()您的答案:A  正确率:100% 2.(单选)以下程序从CSV格式的文件中读入数据,将由每行数据组成的列表写入ls中,空白处的代码是: fo=open(…
1.(单选)下面语句的输出结果是: ls = [] def func(a, b): ls.append(b) return a*b s = func("hi", 2) print(s, ls) (本题分数:3)A) hi []B) hi [2]C) hihi []D) hihi [2]您的答案:D  正确率:100%2.(单选)以下哪个函数的定义是错误的?(本题分数:3)A) def vfunc( ):B) def vfunc(a=1,b):C) def vfunc(a,b):D) d…