遮挡判断

Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 907    Accepted Submission(s): 292

Problem Description
在一个广场上有一排沿着东西方向排列的石柱子,阳光从东边以一定的倾角射来(平行光)。有的柱子可能被在他东边的高大的柱子的影子给完全遮挡住了。现在你要解决的问题是求出有多少柱子是没有被完全遮挡住的。
假设每个石柱子是一根细棒,而且都垂直于地面摆放。
Input
输入包含多组数据。每组数据第一行是一个整数N(0<N<=100000),表示柱子的个数。N=0代表输入结束。接下来有N行,每行是两个整数,分别给出每根柱子的水平位置X和高度H(X越大,表示越在西边,0<=X<=10000000,0<H<=10000000保证不会有两根柱子在同一个X坐标上)。最后有一行,以分数的形式给出太阳光与地面的夹角的正切值T/A(1<=A,T<=10)。
Output
对每组数据,输出包含所求数目的一行。
Sample Input
4 0 3 3 1 2 2 1 1 1/1 0
Sample Output
2提示: 输入数据很多,请用scanf代替cin。
Source
UESTC 6th Programming Contest Online
Recommend
lcy   |   We have carefully selected several similar problems for you:  2538 2545 2542 2541 2543 

当我调试了好久发现是因为分子和分母输错的时候,心中万匹草泥马奔腾而过,不说了,都是泪,附代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;//这道题好难啊
struct node//不会做怎么办
{long y;//储存高度 long x;//储存X轴坐标
}t[220000];
int cmp(node a,node b)//按x轴排序
{return a.x<b.x;
}
long i,j,k,l,m,n;
double fz,fm;//分子和分母,就是因为这两个输入反了,才无限wa的
int main()
{while(scanf("%ld",&k),k){for(i=0;i<k;i++)scanf("%ld%ld",&t[i].x,&t[i].y);sort(t,t+k,cmp);scanf("%lf/%lf",&fz,&fm);long ans=0;//先算出来,被挡住的有多少 double Max=t[0].y*1.0;//第一栋楼一定没有被完全挡住,所以他遗留下来的高度就是它本身 for(i=1;i<k;i++){if(Max-(t[i].x-t[i-1].x)*fz*1.0/fm*1.0-t[i].y>=0)//若果挡住了当前这一根 {ans++;//完全挡住的根数+1 Max=Max-(t[i].x-t[i-1].x)*fz*1.0/fm*1.0;//当前操作所遗留下来的最大的能遮挡下一根的高度 }elseMax=t[i].y;}ans=k-ans;printf("%d\n",ans);}return 0;
}

杭电2540遮挡判断相关推荐

  1. 【ACM】杭电OJ 2000

    题目链接:杭电OJ 2000 注意使用getchar(),因为"\n"也是一个字符 #include "stdio.h" int main () {char a ...

  2. 杭电 1272 poj 1308 小希的迷宫

    这道题是我学了并查集过后做的第三个题,教我们的学姐说这是并查集的基础题,所以有必要牢牢掌握. 下面就我做这道题的经验,给大家一些建议吧!当然,我的建议不是最好的,还请各位大神指出我的错误来,我也好改正 ...

  3. 杭电 汉诺塔问题总结

    看了一下杭电的各种汉诺塔问题,遇到些奇奇葩葩的小问题,也有很多很好的思想,比如最后一题,来来回回的颠倒很有意思.总结一下: Pro.ID 1207 :http://acm.hdu.edu.cn/sho ...

  4. 杭电2669拓展欧几里得

    杭电2669 给a,b求Xa Yb = 1.如果没有则输出sorry. 可以通过拓展欧几里得指导Xa Yb = gcd(a,b). 不言而喻要判断gcd(a,b)是否等于1.如果不等于1,那么就是so ...

  5. 杭电1325java实现

    题目链接 问题描述 树是一个众所周知的数据结构,它可以是空的(null,void,nothing),也可以是一组由节点之间的有向边连接起来的一个或多个节点,满足以下属性. 只有一个节点称为根,没有有向 ...

  6. 杭电1232 畅通工程

    Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通 ...

  7. 杭电1430康托 bfs(java)

    魔板: Problem Description 在魔方风靡全球之后不久,Rubik先生发明了它的简化版--魔板.魔板由8个同样大小的方块组成,每个方块颜色均不相同,可用数字1-8分别表示.任一时刻魔板 ...

  8. 杭电1254java实现(双bfs 优先队列)

    推箱子 推箱子是一个很经典的游戏.今天我们来玩一个简单版本.在一个M*N的房间里有一个箱子和一个搬运工,搬运工的工作就是把箱子推到指定的位置,注意,搬运工只能推箱子而不能拉箱子,因此如果箱子被推到一个 ...

  9. 杭电1016Java实现

    主环问题: 问题描述 如图所示,环由n个圆组成.将自然数1,2,-,n分别放入每个圆圈中,并且相邻两个圆圈中的数字总和应为素数. 注意:第一个圆圈的数量应该始终为1. 输入 n(0<n<2 ...

最新文章

  1. 如何用 ndctl/ipmctl 管理工具 配置不同访问模式的pmem设备
  2. 程序员哪个时间敲代码效率最高?| 每日趣闻
  3. 讨论:有多少项目是因为程序的原因而失败的
  4. java 异常 理解_java中的异常理解
  5. docker history 查看docker镜像构建过程 还原dockerfile 查看启动参数
  6. centos中mysql启动失败,解决CentOS下mysql启动失败
  7. [BZOJ5329] [SDOI2018] 战略游戏
  8. cocos2dx-3.0创建Android项目时遇到的错误。
  9. extjs Ext.XTemplate
  10. 面向对象程序设计——总结作业
  11. 机器学习笔记(二十四):召回率、混淆矩阵
  12. C++银行管理系统设计分析及程序设计介绍
  13. 腾讯2016实习生招聘后台研发面试经
  14. 联通发布沃Phone,全球为之震动
  15. (github附源码)毕设微信小程序二手书交易后台PHP微擎
  16. 教你玩转QQ的10大绝招
  17. 当好领导者(一)——团结团队
  18. Vue + 原生Canvas实现生成电子证书的实践
  19. 解析eBay BASE模式、去哪儿及蘑菇街分布式架构
  20. Go语言占位符的使用

热门文章

  1. 机器学习解决问题思路 — 词嵌入矩阵E对于NLP问题的重要性
  2. crontab 不能执行git命令问题备忘
  3. LoadRunner10自带的WEBTOURS,无法显示Flights页面问题解决办法
  4. cocos2d-x史上最著名的诗
  5. C++数据类型与C#对应关系 c#调用WINDWOS API时,非常有用
  6. 用CMarkup类创建xml文件的方法
  7. pytorch扩展——如何自定义前向和后向传播
  8. 大咖专栏 | DevOps组织如何有效地实施MSA
  9. 蔬菜基地售卖系统stage1
  10. python资源库——socket网络编程