分析:贪心算法;
从起点选择 最近的比起点小的;如果没有选择范围内最小的;其次看距离终点是否在范围内;
过程:调试了很多次,最后只是两个浮点数的问题;
下面是ac 代码;
#include <stdio.h>
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
struct zhandian{double gas;float dis;
}sta[501];
int  n;
int  carry,maxd;
int  dvag;
bool cmp(const zhandian &a,const zhandian &b)
{return a.dis<b.dis;
}int findmin(int chushi,int maxlength)
{int i=chushi+1;int next=-1;float maxgas=1<<30;if(maxd-sta[chushi].dis<=maxlength){while(sta[i].dis-sta[chushi].dis<=maxlength&&i<n){if(sta[i].gas<=sta[chushi].gas){next=i;break;}i++;} }elsewhile(sta[i].dis-sta[chushi].dis<=maxlength&&i<n){if(sta[i].gas<=sta[chushi].gas){next=i;break;}if(sta[i].gas<=maxgas){next=i;maxgas=sta[i].gas;}i++;}if(next!=-1)return next;else return -1;
}
int main()
{int tankload=0;float maxlength;while(scanf("%d%d%d%d",&carry,&maxd,&dvag,&n)!=EOF){for(int i=0;i<n;i++){cin>>sta[i].gas;cin>>sta[i].dis;}sort(sta,sta+n,cmp);maxlength=carry*dvag;int i=0;float length=0;float count=0;int flag=0;int chushi=0;float youxiang=0;if(sta[0].dis!=0){printf("The maximum travel distance = 0.00\n");continue;}while(1){int kk=maxd-sta[chushi].dis;        if(kk<=maxlength){int k=findmin(chushi,maxlength);if(k==-1){ length=maxd;count+=(kk-youxiang*dvag)*sta[chushi].gas/dvag;break;}else{float kount=sta[k].dis-sta[chushi].dis-youxiang*dvag;if(kount>=0){count+=kount*sta[chushi].gas/dvag;youxiang=0;}else {youxiang=-kount/dvag;}length+=sta[k].dis-sta[chushi].dis; chushi=k;}    }else {int k=findmin(chushi,maxlength);if(k==-1){length+=maxlength;flag=1;break;}else{if(sta[k].gas<=sta[chushi].gas){float kount=sta[k].dis-sta[chushi].dis-youxiang*dvag;if(kount>=0){count+=kount*sta[chushi].gas/dvag;youxiang=0;}else {youxiang=-1.0*kount/dvag;}}else {count+=(carry-youxiang)*sta[chushi].gas;youxiang=carry-(sta[k].dis-sta[chushi].dis)/dvag;}length+=sta[k].dis-sta[chushi].dis; chushi=k;}}}if(flag==0) printf("%.2f\n",count);else printf("The maximum travel distance = %.2f\n",length);
}return 0;
} 

浙大PAT 1033相关推荐

  1. 浙大pat | 浙大pat 牛客网PAT顶级(Top Level)练习题 1001

    1001 LUCKY STRING 1872 8254 22% 题目描述 A string s is LUCKY if and only if the number of differentchara ...

  2. 浙大PAT甲级1040

    浙大PAT甲级1040 原题 问题分析 原题 1040 Longest Symmetric String (25 分) Given a string, you are supposed to outp ...

  3. 1033. 旧键盘打字(20)-浙大PAT乙级真题

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2行中分别给出坏掉的那些键.以及应该输入的文 ...

  4. 浙大PAT甲级1019. General Palindromic Number (20)

    1019. General Palindromic Number (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN ...

  5. 浙大 PAT b1040

    #include <stdio.h> #include <string.h> int main() {char str[100001];gets(str);int numT = ...

  6. 浙大PAT 1003题 1003. Emergency

    本题用Dfs搜索或者Dijkstra算法都可以,当然也有其它的方法.这题感觉是pat中常见的类型,非常重要. Dfs搜索代码: #include<stdio.h> int road[510 ...

  7. PAT 1033 旧键盘打字 (20 分) C++

    1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行 ...

  8. PAT 1033 旧键盘打字

    1033 旧键盘打字(20)(20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2 ...

  9. 浙大PAT甲级1027. Colors in Mars (20)

    1027. Colors in Mars (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue People ...

最新文章

  1. 漫画:禅道程序员的一天
  2. 直击2019WAIC丨李德毅:人工智能是脱离意识的工具,需要约束的是人类自己
  3. 居然又要出一部关于程序员的剧!你会追么?
  4. LiveVideoStackCon 2019上海 优秀出品人与讲师
  5. 【汇总】flash单个文件上传
  6. 线性表的Java实现--链式存储(双向链表)
  7. 记录:希尔排序思路分析
  8. WPF自定义控件(一)の控件分类
  9. cobar_note
  10. iOS分享到WhatsApp
  11. BOY LONDON 2019秋季 武装集结
  12. (一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述
  13. 学说话:和光合作用五道口店咖啡吧的小姑娘过招儿;推荐:《如何听如何说》 - [学说话]
  14. linux 网易云音乐 ssh,网易云音乐For Linux的Fedora安装
  15. KlipC数据显示2022年日元兑美元汇率有进一步下跌的风险和可能性
  16. 银心科技与黑萤科技达成战略合作,联合构建区块链数据库存储生态至高点
  17. vs2015单元测试 - error LNK2011: 未链接预编译对象;映像可能不能运行
  18. 倪健中在深圳全球元宇宙大会致辞:元宇宙充满巨大空间
  19. Java基础——接口
  20. Golang学生管理系统(函数+结构体版)

热门文章

  1. 在Ubuntu/Linux环境下开放3306端口
  2. 产品经理必看电影:当幸福来敲门
  3. 计算广告——读书笔记(一)
  4. C#-进击Hangfire
  5. attempted an unsupported operation 、an unsupported operation was attempted [尝试不支持的操作]错误的三种解决方案
  6. 2019/9/6工学结合周记
  7. Ubuntu 14.04安装配置Calamari
  8. Android 最简单的自定义证件照Mask之一
  9. 在线修改http header
  10. J语言初步,绝妙的符号系统,神的计算器