送外卖
来源:互联网 发布:python字典添加元素 编辑:程序博客网 时间:2024/04/27 19:02
题目描述
冬天到了,小伙伴们都懒得出去吃饭了,纷纷打电话叫起了外卖。送外卖的小哥想找出一条最短的路径,小区门口进来,送完外卖又回到小区门口。整个小区是一个由m*n个边长为1的正方形组成的矩形,各幢公寓楼分布于正方型的顶点上,小区门口位于左上角。每幢楼与相邻的八个方向的楼之间都有道路。下图为m=2,n=3的小区地图,并且外卖小哥要经过的最短路径为6。
输入描述:
输入有多组数据。每组数据包含两个整数m (2≤n≤2^128) 和n (2≤r≤2^128),分别代表行数和列数。
输出描述:
对应每一组数据,输出外卖小哥需要经过的最短路径。结果保留两位小数。
输入例子:
2 23 3
输出例子:
4.009.41
代码:
#include <iostream> #include <string> #include <vector> #include <stdlib.h> using namespace std; struct bigcheng{ vector<int> a; vector<int> b; string result_str; }; //字符串转换为数字并反转void chartonum(string a,string b,bigcheng &tempcheng){ int size_a = a.size(); int size_b = b.size(); for (int i = size_a-1;i >= 0;i--){ tempcheng.a.push_back(a[i] - '0'); } for (int i = size_b-1;i >= 0;i--){ tempcheng.b.push_back(b[i] - '0'); } } //逐位相乘,处理进位消除多余的0 void multiply(bigcheng &tempcheng,vector<int> &result_num){ for(int i = 0;i < tempcheng.a.size();i++){ for(int j = 0;j < tempcheng.b.size();j++){ result_num[i+j] += (tempcheng.a[i]) * (tempcheng.b[j]);//结果存放在result_num[i+j]中 } } for (int i = result_num.size() - 1;i >= 0;i--){ if (result_num[i] != 0){ break; }else result_num.pop_back(); } int c = 0; for(int i = 0;i < result_num.size();i++){ //处理进位 result_num[i] += c; c = result_num[i] / 10; result_num[i] = result_num[i] % 10; } if(c != 0){ result_num.push_back(c); } } //将计算结果转换为字符串并反转 void numtochar(bigcheng &tempcheng,vector<int> &result_num){ int size = result_num.size(); for(int i = 0;i < result_num.size();i++){ tempcheng.result_str.push_back(static_cast<char>(result_num[size-1-i]+'0')); } } int main(){string a,b; while(cin >> a >> b){ bigcheng tempcheng; chartonum(a,b,tempcheng); vector<int> resultnum(a.size()+b.size()); multiply(tempcheng,resultnum); numtochar(tempcheng,resultnum); if((tempcheng.result_str[tempcheng.result_str.size()-1]-'0') % 2 == 0){ cout << tempcheng.result_str << ".00" << endl; }else{ cout << tempcheng.result_str << ".41" << endl;} }}
0 0
- 送外卖
- 送外卖
- wikioi 2800 送外卖
- wikioi 送外卖
- 【wikioi2800】送外卖
- codevs2800送外卖题解
- covs 2800 送外卖
- Codevs2880 送外卖
- Codevs2800 送外卖
- [CodeVS2800] 送外卖
- codevs2800送外卖
- CODEVS 2800 送外卖
- CodeVS2800 送外卖
- DG之送外卖
- codeMB轮 送外卖
- 外卖
- wikioi2800 送外卖 dp+floyd
- code vs 2800 送外卖
- hdu5336XYZ and Drops
- Crashing Robots(POJ--2632
- 《疯狂的程序员》翻后有感
- hdu 5319 Painter (2015多校第三场第4题)暴力模拟(瞎搞)
- stl中排序函数详解
- 送外卖
- Shell 学习8 - Shell 替换
- 前端框架从头开始-浏览器的判定
- 比较malloc/free和new/delete
- UDP 收/发 广播包
- 策略模式
- 没有收到 Windows 10 升级提醒,可以试试这些方法
- Calendar获取时间及格式化
- Other Linker Flags参数-ObjC、-all_load和-force_load讲解