题意 :

  • 给w和d,w定义为经线间距,d定义为纬线间距,从任意点出发向任意方向走 π km,求最多能经过多少个方格。

思路 :

  • 每沿着网格线走一段贡献为2,每沿着斜角线走一段贡献为3,但斜角线比网格线长,令a = min(w, d), b = sqrt(w * w + d * d),答案即为在满足 a * x + b * y <= π的 情况下,2 * a + 3 * b的最大值。
  • w和d的范围只有5,π只有3,所以可以暴力枚举x和y的值,满足条件时用 2 * x + 3 * y + 4更新答案即可(4是起始和结束的贡献)
// p.s. this is wa!!!wa!!!wa!!!wa!!!wa!!!wa!!!wa!!!
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <vector>
#include <unordered_map>
#include <unordered_set>
#include <set>
#define endl '\n'
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long ll;const double pi = acos(-1);int main()
{IOS;int T;cin >> T;while (T -- ){double w, d;cin >> w >> d;double a = min(w, d), b = sqrt(w * w + d * d);ll ans = 4;for (int x = 0; x <= 100 && a * x <= pi; x ++ )     // 贴线走ans = max(ans, 2 * x + (ll)(3 * ((pi - x * a) / b)) + 4);for (int y = 0; y <= 100 && b * y <= pi; y ++ )     // 斜线走ans = max(ans, 2 * (ll)((pi - y * b) / a) + 3 * y + 4);cout << ans << endl;}return 0;
}
// ac
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <vector>
#include <unordered_map>
#include <unordered_set>
#include <set>
#define endl '\n'
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long ll;const double pi = acos(-1);int main()
{IOS;int T;cin >> T;while (T -- ){double w, d;cin >> w >> d;double a = min(w, d), b = sqrt(w * w + d * d);ll ans = 4;for (int x = 0; x <= 100 && a * x <= pi; x ++ )     // 贴线走ans = max(ans, 2 * x + 3 * (ll)(((pi - x * a) / b)) + 4);for (int y = 0; y <= 100 && b * y <= pi; y ++ )     // 斜线走ans = max(ans, 2 * (ll)((pi - y * b) / a) + 3 * y + 4);cout << ans << endl;}return 0;
}

Yet Another Problem About Pi相关推荐

  1. 2021牛客暑假多校第八场 K题—Yet Another Problem About Pi

    2021牛客暑假多校第八场 K题-Yet Another Problem About Pi 题意:告诉你一个单元格的长和宽,问你走Π(3.1415926-)的长度距离最多可以走几个单元格 思路:沿着单 ...

  2. matlab 解方程组_一文读懂MATLAB微分方程

    此教程说明如何使用 MATLAB 构造几种不同类型的微分方程并求解.MATLAB 提供了多种数值算法来求解各种微分方程: 初始值问题 边界值问题 时滞微分方程 偏微分方程 初始值问题 vanderpo ...

  3. 2021牛客暑期多校训练营8,签到题ADEK

    题号 标题 已通过代码 通过率 团队的状态 A Ares, Toilet Ares 点击查看 1035/5027 通过(分数相加取模,求逆元) B Dohna Dohna 点击查看 5/72 未通过 ...

  4. Fall 2020 Berkeley cs61a Hog Project

    ** Fall 2020 Berkeley cs61a Hog Project ** Fall 2020 的Hog和之前project有些变化,Github找不到,所以分享一下- "&quo ...

  5. 2020 UCB CS61A FALL -- project1 hog

    UCB2020的秋季课,老师是Hany Farid和John DeNero hog是第一个项目,做的时候感觉细节挺多的,主要是熟悉下python的一些语法和高阶函数的使用 代码 "" ...

  6. 2021牛客暑期多校训练营

    2021牛客暑期多校训练营1 A- Alice and Bob /* 博弈问题 两堆石头,每人每次从其中一堆拿k(k>0)个, 同时从另一堆拿s*k个(s>=0),不能进行操作的即失败 * ...

  7. 25593 Problem G 例题5-7 求圆周率pi的近似值

    问题 G: 例题5-7 求圆周率pi的近似值 时间限制: 1 Sec  内存限制: 12 MB 题目描述 用如下公式 求圆周率PI的近似值,直到发现某一项的绝对值小于10-6为止(该项不累加). 要求 ...

  8. ADPRL - 近似动态规划和强化学习 - Note 3 - Stochastic Infinite Horizon Problem

    Stochastic Infinite Horizon Problem 3.Stochastic Infinite Horizon Problem 定义3.1 无限范围的马尔可夫决策过程 (Marko ...

  9. ADPRL - 近似动态规划和强化学习 - Note 2 - Stochastic Finite Horizon Problem

    2. Stochastic Finite Horizon Problem 在这一节中主要介绍了随机DP算法来解决不确定性下的有限地范围问题,如Denition 1.4所述,它被表述为一个组合优化问题. ...

最新文章

  1. MongoDB 主从复制集搭建
  2. 如何告别半途而废——韦东山嵌入式Linux视频学习笔记00
  3. 配置ip yum 单用户 救援 运行级别
  4. 5.2.5 标准的原子整型的相关操作
  5. Bean property 'preFix' is not writable or has an invalid setter method
  6. 关于Synchronized的用法
  7. js+html空间数据编码问题--以姓名为例(代码设涉及文件读取,文本数字提取,特别是文本x,y坐标的提取)
  8. 使用Arduino驱动 ADS1115 ADC采样芯片
  9. 计算机课反思的作文600字,中考反思作文600字6篇
  10. 31省市数字经济“十四五”规划路线图
  11. Windows10 如何禁用或删除大的Hiberfil.sys和Pagefile.sys文件
  12. 产品商业需求文档_【器】我的产品需求文档心法
  13. mysql 5.7 压缩包解压安装过程
  14. 威海海燕计算机学校,与中成学校一起成长 ——高海燕
  15. 警惕新骗术:虚假二维码生成器盗取 4.6 万美元!
  16. AndroidQ(八)Android Q隐私:更改相机和连接
  17. iOS实现App之间的分享
  18. C语言版家谱管理系统
  19. PMP考试可以自学吗?
  20. 【机器学习面经】实验室祖传机器学习重难点(第一弹)

热门文章

  1. 为工厂分配用于公司间开票的销售范围
  2. 采购交货期延误的原因分析
  3. CO-ACT物料分类账
  4. 欧锦赛球星谱:帕克领豪阵 诺天王对决加索尔
  5. SAP创建中国版免费在线课程openSAP
  6. 报工提示错误:“没有内部作业价格可被确认”的解决方法
  7. SAP SD 定价过程的16个字段的作用说明
  8. 苏宁的另类“存在感”
  9. 支付宝不止怀有“社交梦”,社区金融才是它的野心所在
  10. java 微信多媒体文件_java微信开发之上传下载多媒体文件