【NOIP模拟赛】正方形大阵
正方形大阵
【问题描述】

【输入格式】
第一行一个正整数n代表询问次数。
接下来n行每行一个不超过八位的小数k代表一组询问。
【输出格式】
输出共n行,代表每次询问的答案;如果有无数个交点,输出“-1”。
【输入样例】
3
0.375
0.001
0.478
【输出样例】
-1
4
20
【数据规模与约定】
100%的数据满足1<=n<2*1000,0<k<0.5。
【试题分析】
其实这实际上就是一道数学题,我们其实就知道第一个三角形的高、第二个高、第三个高……
由题可判断出:第二个三角形的高*2=第一个三角形的高。
其实我们可以根据勾股定理:0.5^2+0.5^2=0.5(第二个正方形的面积)
那么我们需要用第二个正方形的面积-第三个正方形的面积=4*第一个三角形的面积
第三个正方形的面积:根号(0.5/2)^2*2=1/4
第二个正方形减去第三个正方形:0.5-0.25=0.25
除4:0.25/4=0.0625
三角形面积为0.0625
由此可推出三角形高为0.25
第二个三角形的高:0.125
以此类推……
我们只需要判断输入的数在那个区间内。
我们可以继续数点:第一个区间(0~0.25)交点个数为4,第二个为8……
所以这道题就非常简单喽……
【代码】
#include<iostream>
using namespace std;
double a[2004],A[2004];
int b[2004];
int n;
double k;
void init()
{
a[1]=0.25;
A[1]=0.25;
a[0]=0;
b[0]=4;
for(int i=2;i<=2001;i++) {A[i]=(double)A[i-1]/2;}
for(int i=2;i<=2001;i++) {a[i]=(double)(a[i-1]+(double)A[i]);}
for(int i=1;i<=2001;i++) b[i]=b[i-1]+4;
}
void ans(double k)
{
for(int i=1;i<=2001;i++) if(a[i]==k) {cout<<"-1"<<endl;return ;}
for(int i=1;i<=2001;i++) if(a[i-1]<k&&a[i]>k) {cout<<b[i-1]<<endl;return ;}
}
int main()
{
init();
cin>>n;
while(n--)
{
cin>>k;
ans(k);
}
}
【NOIP模拟赛】正方形大阵的更多相关文章
- noip模拟赛 正方形
题目描述在一个10000*10000的二维平面上,有n颗糖果.LYK喜欢吃糖果!并且它给自己立了规定,一定要吃其中的至少C颗糖果!事与愿违,LYK只被允许圈出一个正方形,它只能吃在正方形里面的糖果.并 ...
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程
数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...
- 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...
- CH Round #54 - Streaming #5 (NOIP模拟赛Day1)
A.珠 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2354%20-%20Streaming%20%235%20(NOIP模拟赛Day1)/珠 题解:sb题, ...
- 【noip模拟赛5】细菌 状压dp
[noip模拟赛5]细菌 描述 近期,农场出现了D(1<=D<=15)种细菌.John要从他的 N(1<=N<=1,000)头奶牛中尽可能多地选些产奶.但是如果选中的奶牛携 ...
- 10.16 NOIP模拟赛
目录 2018.10.16 NOIP模拟赛 A 购物shop B 期望exp(DP 期望 按位计算) C 魔法迷宫maze(状压 暴力) 考试代码 C 2018.10.16 NOIP模拟赛 时间:2h ...
随机推荐
- Swift-11-委托模式
委托是一种设计模式,它允许类或者结构体将一些需要它们负责的功能交由(或委托)给其他的类型的实例.委托模式很简单:定义协议来封装那些需要被委托的函数和方法,使其遵循者拥有这些被委托的函数和方法.委托模式 ...
- Swift-01 UIWebView加载网页
UIWebView在swift里面的语法,和OC不太一样,但是,使用方法什么的,都是从OC演变过来的.比如,都得有init方法,都有loadRequest方法,所以,有了OC这个基础,学习swift是 ...
- PySe-004-Se-WebDriver 启动浏览器之二 - Chrome
上篇文章简略讲述了 WebDriver 启动 firefox 浏览器的示例脚本源码,具体请参阅: PySe-003-Se-WebDriver 启动浏览器之一 - Firefox 此文主要讲述在 Mac ...
- imx6 uboot lcd
本文记录imx6 uboot中关于lcd初始化的过程. uboot中相关的文件: cpu/arm_cortexa8/start.S lib_arm/board.c board/freescale/mx ...
- Windows Server 2008标准证书使用记录
Windows Server 2008标准证书使用记录 近期准备将单位的服务器全部升级到Windows Server 2008,但有一些“遗留”问题需要解决: (1)现在单位还有一台Windows ...
- App Store idfa被拒检查办法
最近应用因为这个问题被拒两次,理由如下: PLA 3.3.12We found your app uses the iOS Advertising Identifier but does not in ...
- asp.net 项目在 IE 11 下出现 “__doPostBack”未定义 的解决办法
最近项目在 IE 11 下<asp:LinkButton> 点击出现 “__doPostBack”未定义”,经过一番google,终于知道了原因:ASP.NET 可能无法辨识出一些浏览器的 ...
- JBOSS安全配置
1.jmx-console登录的用户名和密码设置 默认情况访问http://localhost:8080/jmx-console就可以浏览jboss的部署管理的一些信息,不需要输入用户名和密码,使用起 ...
- Android之创建自定义属性
一. 在res/values 文件下定义一个attrs.xml 文件.代码如下: <?xml version="1.0" encoding="utf-8" ...
- MongoDB安装、管理工具、操作
1. mongoDB安装.启动.关闭 1.1 下载安装包 wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.3.tgz 1.2 ...