3.31恒生电子笔试

/*
1.sql
利用where,orderby好像就足够ac了
---------
2.N-水仙花数
模拟过程就行
-----------

3.股票最大收益
设dp[i][k]表示前i个股票交易k次的最大值

dp[i][k]=max({dp[i][k],dp[j][k],dp[j][k-1]/history_[j]*history_[i]});//其中j<i

res=max(res,dp[i][k]);

枚举i,j,k即可
*/
#include <bits/stdc++.h>
using namespace std;
int main(){
double M;
int N,K;
cin>>M>>N>>K;
vector<double> history_;
for(int i=1;i<=N;++i){
double x;
cin>>x;
history_.push_back(x);
}
vector<double> dp[N];
double res=M;
for(int i=0;i<N;++i){
for(int k=0;k<=K;++k){
if(k==0){
dp[i].push_back(M);
continue;
}else{
dp[i].push_back(0);
}
for(int j=0;j<i;++j){
dp[i][k]=max({dp[i][k],dp[j][k],dp[j][k-1]/history_[j]*history_[i]});
}
res=max(res,dp[i][k]);
}
}
cout<<res-M<<endl;
return 0; 
}
/*
10000.0 4 2
1.0 2.0 1.0 3.0 

1000.0 1 2
1.0

1000.0 2 2
1.0 2.0
*/
全部评论
sql 没有运行环境 算法题没有例子.. 甚至题目说可以写伪代码和写思路...
2 回复 分享
发布于 2023-03-31 22:36 广东
大佬
1 回复 分享
发布于 2023-04-01 11:27 湖南
不是很懂代码块怎么贴😂
1 回复 分享
发布于 2023-03-31 22:32 湖北
请问,编程题可以到本地编辑器做完之后再贴过去吗?三类题型可以同时做吗,还是只能做完一部分提交之后再做其他的?
点赞 回复 分享
发布于 2023-04-25 16:22 江苏
欢迎补充
点赞 回复 分享
发布于 2023-03-31 22:11 湖北

相关推荐

头像
04-02 21:11
已编辑
常州大学 Java
题目:无环树求所有路径最大值的和笔试的时候没写出来,想到了边权按贡献算,但只写了个暴力20%。正解:并查集每个点视为一个联通块,先按边权从小到大排序,逐个加入边。联通块里的值肯定都小于当前边权,那么左右联通块大小就分别代表边左右两侧的节点数,相乘就是路径数。所以贡献&nbsp;=&nbsp;左边连通块大小&nbsp;×&nbsp;右边连通块大小&nbsp;×&nbsp;边权。代码如下struct&nbsp;edge&nbsp;{int&nbsp;u,&nbsp;v,&nbsp;w;edge(int&nbsp;u&nbsp;=&nbsp;0,&nbsp;int&nbsp;v&nbsp;=&nbsp;0,&nbsp;int&nbsp;w&nbsp;=&nbsp;0)&nbsp;:&nbsp;u(u),&nbsp;v(v),&nbsp;w(w)&nbsp;{}bool&nbsp;operator&lt;(const&nbsp;edge&nbsp;&amp;other)&nbsp;const&nbsp;{&nbsp;return&nbsp;w&nbsp;&lt;&nbsp;other.w;&nbsp;}};ll&nbsp;res&nbsp;=&nbsp;0,&nbsp;n;vector&lt;edge&gt;&nbsp;e;int&nbsp;fa[N],&nbsp;sz[N];int&nbsp;find(int&nbsp;x)&nbsp;{&nbsp;return&nbsp;fa[x]&nbsp;=&nbsp;((fa[x]&nbsp;==&nbsp;x)&nbsp;?&nbsp;x&nbsp;:&nbsp;find(fa[x]));&nbsp;}void&nbsp;unite(int&nbsp;x,&nbsp;int&nbsp;y)&nbsp;{int&nbsp;rx&nbsp;=&nbsp;find(x),&nbsp;ry&nbsp;=&nbsp;find(y);if&nbsp;(rx&nbsp;==&nbsp;ry)return;if&nbsp;(sz[rx]&nbsp;&lt;&nbsp;sz[ry])swap(rx,&nbsp;ry);fa[ry]&nbsp;=&nbsp;rx,&nbsp;sz[rx]&nbsp;+=&nbsp;sz[ry];}void&nbsp;solve()&nbsp;{cin&nbsp;&gt;&gt;&nbsp;n;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;&lt;&nbsp;n;&nbsp;i++)&nbsp;{int&nbsp;u,&nbsp;v,&nbsp;w;cin&nbsp;&gt;&gt;&nbsp;u&nbsp;&gt;&gt;&nbsp;v&nbsp;&gt;&gt;&nbsp;w;e.emplace_back(u,&nbsp;v,&nbsp;w);}for&nbsp;(int&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;&lt;=&nbsp;n;&nbsp;i++)&nbsp;{fa[i]&nbsp;=&nbsp;i,&nbsp;sz[i]&nbsp;=&nbsp;1;}sort(e.begin(),&nbsp;e.end());for&nbsp;(const&nbsp;auto&nbsp;&amp;e&nbsp;:&nbsp;e)&nbsp;{int&nbsp;ru&nbsp;=&nbsp;find(e.u);int&nbsp;rv&nbsp;=&nbsp;find(e.v);if&nbsp;(ru&nbsp;!=&nbsp;rv)&nbsp;{//&nbsp;贡献&nbsp;=&nbsp;左边连通块大小&nbsp;×&nbsp;右边连通块大小&nbsp;×&nbsp;边权res&nbsp;=&nbsp;(res&nbsp;+&nbsp;(ll)sz[ru]&nbsp;*&nbsp;sz[rv]&nbsp;%&nbsp;mod&nbsp;*&nbsp;e.w&nbsp;%&nbsp;mod)&nbsp;%&nbsp;mod;unite(e.u,&nbsp;e.v);}}cout&nbsp;&lt;&lt;&nbsp;res&nbsp;&lt;&lt;&nbsp;endl;}
查看1道真题和解析
点赞 评论 收藏
分享
评论
7
14
分享

创作者周榜

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