目录:

A:最短距离
B:a + b问题
C:逃离迷宫
D:可乐

A:最短距离

http://39.106.164.46/problem.php?id=1025

思路:
设小王的坐标为(x1 + u1 * t , y1 + v1 * t)
设小明的坐标为(x2 + u2 * t , y2 + v2 * t)
根据两点间距离公式,可以得到一个关于t的二次函数
然后分情况讨论系数即可。

AC代码:

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<cmath>
#include<queue>
#include<cstring>
#include<vector>
#include<stack>
#include<map>
#include<set>
#define MAX 1000005
#define INF 0x3f3f3f3f
typedef long long ll;
using namespace std;int x1,x2,y11,y2,u1,u2,v1,v2;int main(){int t;scanf("%d",&t);int id=1;while(t--){scanf("%d %d %d %d",&x1,&y11,&x2,&y2);scanf("%d %d %d %d",&u1,&v1,&u2,&v2);double a=x2-x1,b=u2-u1,c=y2-y11,d=v2-v1;double aa=b*b+d*d,bb=2*(a*b+c*d),cc=a*a+c*c;double ans=0.0;if(aa==0){if(bb>=0) ans=sqrt(cc);else ans=0;}else{if(bb<0) ans=sqrt((4*aa*cc-bb*bb)/(4*aa));else ans=sqrt(cc);}printf("Case %d: %.6lf\n",id++,ans);}return 0;
}

B:a + b问题

http://39.106.164.46/problem.php?id=1026

思路:
使用map,注意读入即可。
AC代码:

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<cmath>
#include<queue>
#include<cstring>
#include<vector>
#include<stack>
#include<map>
#include<set>
#define MAX 1000005
#define INF 0x3f3f3f3f
typedef long long ll;
using namespace std;string s;
map<string,int> mp;int main(){mp["zero"]=0,mp["one"]=1,mp["two"]=2,mp["three"]=3;mp["four"]=4,mp["five"]=5,mp["six"]=6,mp["seven"]=7,mp["eight"]=8,mp["nine"]=9;int a=0,b=0;int num=1;while(cin>>s){if(s!="+"&&s!="="){if(num==1) a=a*10+mp[s];else b=b*10+mp[s];}if(s=="+"){num=2;}if(s=="="){if(a==0&&b==0) break;else{printf("%d\n",a+b);}num=1;a=0,b=0;}}return 0;
}

C:逃离迷宫

http://39.106.164.46/problem.php?id=1027

思路:
dfs搜索,不过要求转弯次数不能超过k,适当剪枝即可。
AC代码:

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<cmath>
#include<queue>
#include<cstring>
#include<vector>
#include<stack>
#include<map>
#include<set>
#define MAX 105
#define INF 0x3f3f3f3f
typedef long long ll;
using namespace std;int t,m,n,x1,y11,x2,y2,k,visit[MAX][MAX];
char mp[MAX][MAX];
bool flag=false;
int dir[4][2]={{0,-1},{0,1},{-1,0},{1,0}}; //下、上、左、右bool judge(int x,int y){if(x<1||x>m||y<1||y>n) return false;return true;
}void dfs(int x,int y,int num,int face){visit[x][y]=1;if(num>k||flag==true) return;if(x==x2&&y==y2){flag=true;return;}for(int i=0;i<4;i++){int xx=x+dir[i][0],yy=y+dir[i][1];if(judge(xx,yy)&&visit[xx][yy]==0&&mp[xx][yy]!='*'){if(face!=i&&face!=4) num++;dfs(xx,yy,num,i);if(face!=i&&face!=4) num--;//回溯visit[xx][yy]=0;}}
}int main(){scanf("%d",&t);while(t--){scanf("%d %d",&m,&n);for(int i=1;i<=m;i++){scanf("%s",mp[i]+1);}scanf("%d %d %d %d %d",&k,&y11,&x1,&y2,&x2);if(mp[x1][y11]=='*'||mp[x2][y2]=='*'){printf("no\n");continue;}flag=false;memset(visit,0,sizeof(visit));dfs(x1,y11,0,4);if(flag) printf("yes\n");else printf("no\n");}return 0;
}

D:可乐

http://39.106.164.46/problem.php?id=1028

思路:
贪心。尽量用单价最小的买,但是需要注意的是可能会出现用单价最低的买不能凑整的情况,但是用单价低的多买一瓶有可能会比用单价高的其他体积的凑整便宜,所以每次都需要进行比较,和多买一瓶进行比较。
AC代码:

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<cmath>
#include<queue>
#include<cstring>
#include<vector>
#include<stack>
#include<map>
#include<set>
#define MAX 35
#define INF 0x3f3f3f3f
typedef long long ll;
using namespace std;int n;
ll l;struct node{int v,p;double per;bool operator < (const node &x) const{return per<x.per;}
}a[MAX];int main(){while(scanf("%d %lld",&n,&l)!=EOF){for(int i=0;i<n;i++){scanf("%d",&a[i].p);a[i].v=(int)pow(2,i);a[i].per=(double)a[i].p/a[i].v;}sort(a,a+n);ll sum=0,minl=0;int id=0;while(l>0){int v=a[id].v, p=a[id].p; //可乐的体积和单价sum+=(l/v)*p;if(id==0){minl=(l/v+1)*p; //多买一瓶}if(l%v==0){ //恰好可以买完minl=min(minl,sum);break;}if(sum+p<minl){minl=sum+p;}l=l%v;id++;}printf("%lld\n",minl);}return 0;
}

2018年 中南大学研究生复试机试题(1025~ 1028)相关推荐

  1. 1028: 安全路径(2014年中南大学研究生复试机试题 )

    1028: 安全路径 时间限制: 1 Sec  内存限制: 128 MB 提交: 228  解决: 96 [提交][状态][讨论版] 题目描述 卫斯理小说经常提及外星人,比如蓝血人. 在土星星球有很多 ...

  2. 2014年中南大学研究生复试机试题(字符串、基础dp、最短路)

    A.B.C题很简单. D.最大连续子序列 思路: 求最大连续子序列的值以及左右端点. 那么我们记录连续和值为s,最值为maxx,只有maxx改变时才改变左右端点,考虑记录l,r,即当前的区间端点. 那 ...

  3. 1019: 堆石子 2016年中南大学研究生复试机试题

    题目描述 在一片沙滩上摆放着 n堆石子. 现要将石子有次序地合并成一堆. 规定每次选2 堆相邻石子合并成新的一堆,合并的费用为新的一堆石子数.试设计一个算法,计算出将 n堆石子合并成一堆的最小总费用. ...

  4. 2016年中南大学研究生复试机试题(1015~1019)

    目录: **A:第几天 B:加油站 C:序列求平均 D:士兵排阵 ** A:第几天 http://39.106.164.46/problem.php?id=1015 思路: 分闰年和非闰年讨论即可. ...

  5. 中南大学2019研究生复试机试题

    中南大学2019研究生复试机试题 机试题共六题 1.选球问题 题目描述 输入 输出 样例输入 样例输出 解决代码 2.模拟出入栈游戏 题目描述 输入 输出 样例输入 样例输出 解决代码 3.爬楼梯游戏 ...

  6. 1004: 惠民工程 (2013年中南大学研究生复试机试 )

    1004: 惠民工程 时间限制: 1 Sec  内存限制: 128 MB 提交: 404  解决: 81 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 市政府"惠民工程&q ...

  7. 1028-可乐(中南大学18年研究生复试机试题)

    题目描述 猪年快乐!在这个快乐的日子里我们当然要去超市买可乐喝啦! 现在超市有n种可乐,第 i 种可乐的价格为C[i] ,体积为 2i-1 毫升,每种可乐都是无限供应的 ,现在你想买至少 L毫升的可乐 ...

  8. 13-19年复旦大学计算机学院研究生复试机试题

    (不保证代码完全正确,自己敲的可能存在不完善的地方,请各位大佬发现后指出,谢谢!) 暂时结束. 试题列表 2019上机题 2018上机题 2017上机题 2016上机题 2015上机题 2014上机题 ...

  9. 华科研究生复试机试题代码堆积供以后参考

    #include "stdafx.h" #include <cstdio> #include <cstring> using namespace std;# ...

最新文章

  1. lintcode-136-分割回文串
  2. 辽宁省风力发电行业“十四五”前景规划及竞争策略分析报告2022-2028年版
  3. 关于MULE ESB相关的介绍
  4. 交通安全与智能控制专业学计算机吗,交通安全与智能控制专业排名好不好_主要课程及就业前景分析...
  5. 卸载linux下的mysql数据库实例_Linux下卸载MySQL数据库实例教程
  6. 数据结构与算法--重建二叉树
  7. 我的docker随笔10:docker客户端使用其它主机的docker服务器
  8. mysql setnull_1、Mysql无法创建外键的原因 2、MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用...
  9. 使用MySQL UDFs来调用gearman分布式任务分发系统
  10. 吴恩达团队新研究!用MRNet进行膝关节磁共振影像诊断 已媲美医生 | 论文
  11. 图解 TCP IP 协议:三次握手、四次挥手
  12. Atitit uke人才分类 杰出人才 高级人才、专业技术人才、技能人才 杰出人才移民共包含科技丶艺术丶工商丶运动及教育五大领域 杰出人才定义 编辑 联邦移民法规定「杰出能力」是指在科学丶艺
  13. 致 Python 初学者
  14. 中国半导体如何自我救赎
  15. 在Excel中用VB批量生成二维码
  16. 带你了解什么是MySQL数据库(一)
  17. 【不一样的面经】阿里面试,我挂在了第四轮……
  18. 大数据分析师的就业前景如何?
  19. ug编程内公差和外公差是什么_UG编程曲面区域驱动方法切削区
  20. 软件工程专业女生测试方向,女生学软件工程好吗 就业方向有哪些

热门文章

  1. 古琴怎么学,古琴入门,初学者应该这么练(二)
  2. 常用Android代码
  3. 如何检查Mac配备的显卡(GPU)?
  4. 山东省出台《意见》配置公共体育设施
  5. 一个简单的ADFR的re-docking教程
  6. 故障分析 | MongoDB 5.0 报错 Illegal instruction 解决
  7. 2021李宏毅机器学习笔记--21 Anomaly Detection
  8. linux的几个发行网站
  9. might和could的区别用法_can,could,may might,must,ought 的区别和用法
  10. 聊聊并发(10)生产者消费者模式