链家 c++ 招聘的在线笔试,“赛场比赛”会做么?

链家今天  c++ 招聘的在线笔试, 有人会做赛场比赛那一题吗?
全部评论
 #include<iostream> #include<iomanip>  using namespace std; int  main(){     int i,n;     double f;     while(cin>>n){        f=1.0;        for(i=2;i<=n;i++){           f+=1.0/i;        }         cout.setf(ios::right);      cout.fill('0');       cout.flags(ios::fixed);        cout.precision(2);        cout<<f<< endl;       }     return 0; } 
点赞 回复 分享
发布于 2018-03-19 21:33
说说当时我的想法 看 n < 1000, 以为是个O(n^2)的dpdp[i] 能从 dp[i+1] 转移过来,然后怎么怎么算,,2333 但是后来发现应该求贡献,把每个位置上的人活下来的期望算出来 然后求和就行了 假设现在1,2,3...n个人都向右跑 对于第i个人来说i+1,i+2,...n都是无影响的.然后考虑i活下来的期望,活下来的情况只有1,2,...i-1没有比i大的,那么第i个人是这些里最大的.也就是说这i个人中最大的那个人的位置是固定的的.那么期望就是 frac{(i-1)!}{i!} = frac{1}{i}; 所以答案就是 \sum_{i=1}{n} = frac{1}{i}; 当时脑抽想的很乱,,233.
点赞 回复 分享
发布于 2018-03-22 20:51
不知道什么时候出结果,虽然做的也很差劲
点赞 回复 分享
发布于 2018-03-20 00:00
题都没看懂…
点赞 回复 分享
发布于 2018-03-19 21:14
def getStartOfU(edge_list,has_visited,u):     result=[]     for edge in edge_list:         if edge[0] == u and not has_visited.__contains__(edge[1]):             temp=[]             temp.append(edge[1])             temp.append(edge[2])             result.append(temp)         elif edge[1] == u and not has_visited.__contains__(edge[0]):             temp=[]             temp.append(edge[0])             temp.append(edge[2])             result.append(temp)     return result def search(edge_list,u,v):     has_visited=[]     has_visited.append(u)     path_list=[]     pre_list=[]     pre_list.append([u,0])     while pre_list.__len__()>0:         node  = pre_list[0]         pre_list.remove(node)         next_list = getStartOfU(edge_list,has_visited,node[0])         for data in next_list:             has_visited.append(data[0])             t = data[1]             if t<node[1]:                 t=node[1]             pre_list.append([data[0],t])             if data[0] == v:                 return t     return 0 N = input() edge_list=[] for i in range(int(N)-1):     str = input()     data=str.split(" ")     temp=[]     temp.append(int(data[0]))     temp.append(int(data[1]))     temp.append(int(data[2]))     edge_list.append(temp) Q = input() questions = [] for i in range(int(Q)):     str = input()     data=str.split(" ")     temp=[]     temp.append(int(data[0]))     temp.append(int(data[1]))     questions.append(temp) for q in questions:     result = search(edge_list,q[0],q[1])     print(result)
点赞 回复 分享
发布于 2018-03-20 08:50
第二题求路径最大值做出来了吗
点赞 回复 分享
发布于 2018-03-19 23:31
弱弱的问一下各位大神,这个题考得是什么?
点赞 回复 分享
发布于 2018-03-19 21:34
用了一个类似杨辉三角,然后动态规划解的
点赞 回复 分享
发布于 2018-03-19 21:15
看到又人从1+1/2+...+1/n,有了答案都不懂
点赞 回复 分享
发布于 2018-03-19 21:14

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务