笔试10.19
来源:互联网 发布:sql server 关键技术 编辑:程序博客网 时间:2024/06/06 11:03
摩拜单车
编程题三道
1、字符串
思路:移动A字符串,找出两个字符串不相等的位数。(前后可以填充为跟B完全一样)
void minDiff() { string A, B; getline(cin,A); getline(cin, B); int diff = B.size() - A.size(); int minD = 100; for (int i = 0; i < diff+1; i++) { int miss = 0; for (int j = 0; j < A.size(); j++) { if (A[j] != B[j + i]) miss++; } minD = minD > miss ? miss : minD; } cout << minD << endl;}
2、有趣的排序
3、动态规划
void expectGift() { int n, m; cin >> n >> m; int* c = new int[m];//每种礼物的数量 double expect=0; for (int i = 0; i < m; i++) cin >> c[i]; double** prob = new double*[n];//第i人选j的概率 for (int i = 0; i < n; i++) { prob[i] = new double[m]; for (int j = 0; j < m; j++) { cin >> prob[i][j]; } } vector<vector<double>> dp;//第i种礼物剩下j的概率 for (int i = 0; i < m; i++) { dp.push_back(vector<double>(c[i]+1, 0.0)); dp[i][c[i]] = 1;//初始概率为1 } for (int k = 0; k < n; k++) {//每个人依次取礼物 for (int i = 0; i < m; i++) { if (c[i] != 0) dp[i][0] = dp[i][0] + dp[i][1] * prob[k][i]; for (int j = 1; j < c[i]; j++) dp[i][j] = dp[i][j] * (1 - prob[k][i]) + dp[i][j + 1] * prob[k][i]; dp[i][c[i]] *= 1 - prob[k][i]; } } for (int i = 0; i < m; i++) { for (int j = 0; j <= c[i]; j++) expect += dp[i][j] * (c[i] - j); } cout << setiosflags(ios::fixed)<<setprecision(1) << expect << endl;}
阅读全文
0 0
- 笔试10.19
- 笔试10.19-2
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试~~
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试
- qt中使用pthread的undefined错误
- TPU结构总结
- java三种方式实现字符串反转(StringBuilder类,数组和栈)
- 日期格式字符串与日期实现互转
- ROS勘误1
- 笔试10.19
- java版本ckfinder2.6如何去掉版本提示This is the demo version of CKFinder
- mysql加表注释和字段注释
- nginx 站点使用try_files配置案例
- java 追加内容写入本地文件
- 分布式NoSQL数据存储分享——表格存储使用教程
- Vue.js 2.5新特性介绍
- shell 单实例(1)
- php 数组去重