Yet Another Problem About Pi
题意 :
- 给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相关推荐
- 2021牛客暑假多校第八场 K题—Yet Another Problem About Pi
2021牛客暑假多校第八场 K题-Yet Another Problem About Pi 题意:告诉你一个单元格的长和宽,问你走Π(3.1415926-)的长度距离最多可以走几个单元格 思路:沿着单 ...
- matlab 解方程组_一文读懂MATLAB微分方程
此教程说明如何使用 MATLAB 构造几种不同类型的微分方程并求解.MATLAB 提供了多种数值算法来求解各种微分方程: 初始值问题 边界值问题 时滞微分方程 偏微分方程 初始值问题 vanderpo ...
- 2021牛客暑期多校训练营8,签到题ADEK
题号 标题 已通过代码 通过率 团队的状态 A Ares, Toilet Ares 点击查看 1035/5027 通过(分数相加取模,求逆元) B Dohna Dohna 点击查看 5/72 未通过 ...
- Fall 2020 Berkeley cs61a Hog Project
** Fall 2020 Berkeley cs61a Hog Project ** Fall 2020 的Hog和之前project有些变化,Github找不到,所以分享一下- "&quo ...
- 2020 UCB CS61A FALL -- project1 hog
UCB2020的秋季课,老师是Hany Farid和John DeNero hog是第一个项目,做的时候感觉细节挺多的,主要是熟悉下python的一些语法和高阶函数的使用 代码 "" ...
- 2021牛客暑期多校训练营
2021牛客暑期多校训练营1 A- Alice and Bob /* 博弈问题 两堆石头,每人每次从其中一堆拿k(k>0)个, 同时从另一堆拿s*k个(s>=0),不能进行操作的即失败 * ...
- 25593 Problem G 例题5-7 求圆周率pi的近似值
问题 G: 例题5-7 求圆周率pi的近似值 时间限制: 1 Sec 内存限制: 12 MB 题目描述 用如下公式 求圆周率PI的近似值,直到发现某一项的绝对值小于10-6为止(该项不累加). 要求 ...
- ADPRL - 近似动态规划和强化学习 - Note 3 - Stochastic Infinite Horizon Problem
Stochastic Infinite Horizon Problem 3.Stochastic Infinite Horizon Problem 定义3.1 无限范围的马尔可夫决策过程 (Marko ...
- ADPRL - 近似动态规划和强化学习 - Note 2 - Stochastic Finite Horizon Problem
2. Stochastic Finite Horizon Problem 在这一节中主要介绍了随机DP算法来解决不确定性下的有限地范围问题,如Denition 1.4所述,它被表述为一个组合优化问题. ...
最新文章
- MongoDB 主从复制集搭建
- 如何告别半途而废——韦东山嵌入式Linux视频学习笔记00
- 配置ip yum 单用户 救援 运行级别
- 5.2.5 标准的原子整型的相关操作
- Bean property 'preFix' is not writable or has an invalid setter method
- 关于Synchronized的用法
- js+html空间数据编码问题--以姓名为例(代码设涉及文件读取,文本数字提取,特别是文本x,y坐标的提取)
- 使用Arduino驱动 ADS1115 ADC采样芯片
- 计算机课反思的作文600字,中考反思作文600字6篇
- 31省市数字经济“十四五”规划路线图
- Windows10 如何禁用或删除大的Hiberfil.sys和Pagefile.sys文件
- 产品商业需求文档_【器】我的产品需求文档心法
- mysql 5.7 压缩包解压安装过程
- 威海海燕计算机学校,与中成学校一起成长 ——高海燕
- 警惕新骗术:虚假二维码生成器盗取 4.6 万美元!
- AndroidQ(八)Android Q隐私:更改相机和连接
- iOS实现App之间的分享
- C语言版家谱管理系统
- PMP考试可以自学吗?
- 【机器学习面经】实验室祖传机器学习重难点(第一弹)