水题,就是把一个矩形平分。

题意:一个wid*hei的矩形,过底边上的一点(dor,0)做m-1条射线,把这个矩形的面积平均分成m份,求这些射线和矩形的另外一个交点。

直接枚举,然而求三角形高底移动坐标即可。

  1. #include <iostream>
  2. #include <algorithm>
  3. #include <cstdio>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7. struct pointer {
  8. double x,y;
  9. }ans[120];
  10. const double eps=0.00000001;
  11.  
  12. int main(){
  13. int wid,heg,door,p;
  14. while(scanf("%d%d%d%d",&wid,&heg,&door,&p)!=EOF){
  15. if(wid==0&&heg==0&&door==0&&p==0) break;
  16. double ye=0,xe=wid,ys=heg;
  17. double parea=(wid*heg)*1.0/p;
  18. double part1=(wid-door)*heg*1.0/2;
  19. double part2=wid*heg*1.0/2;
  20. double part3=(door)*heg*1.0/2;
  21. double tmp;
  22. for(int i=0;i<p;i++){
  23. tmp=parea;
  24. if(part1>eps){
  25. if(tmp-eps>part1){
  26. tmp-=part1;
  27. part1=0;
  28. }
  29. else if(fabs(tmp-part1)<=eps){
  30. ans[i].x=wid; ans[i].y=heg;
  31. part1=0;
  32. continue;
  33. }
  34. else {
  35. double yy=(tmp*2)/(wid-door);
  36. ye+=yy;
  37. ans[i].x=wid; ans[i].y=ye;
  38. part1-=tmp;
  39. continue;
  40. }
  41. }
  42. if(part2>eps){
  43. if(tmp-eps>part2){
  44. tmp-=part2;
  45. part2=0;
  46. }
  47. else if(fabs(tmp-part2)<=eps){
  48. ans[i].x=0; ans[i].y=heg;
  49. part2=0;
  50. continue;
  51. }
  52. else {
  53. double xx=(tmp*2)/heg;
  54. xe-=xx;
  55. ans[i].x=xe; ans[i].y=heg;
  56. part2-=tmp;
  57. continue;
  58. }
  59. }
  60. if(part3>eps){
  61. if(tmp-eps>part3){
  62. tmp-=part3;
  63. part2=0;
  64. }
  65. else if(fabs(tmp-part3)<=eps){
  66. ans[i].x=0; ans[i].y=0;
  67. part3-=0;
  68. continue;
  69. }
  70. else{
  71. double yy=(tmp*2)/door;
  72. ys-=yy;
  73. ans[i].x=0; ans[i].y=ys;
  74. part2-=tmp;
  75. continue;
  76. }
  77. }
  78. }
  79. printf("%.3lf %.3lf",ans[0].x,ans[0].y);
  80. for(int i=1;i<p-1;i++){
  81. printf(" %.3lf %.3lf",ans[i].x,ans[i].y);
  82. }
  83. printf("\n");
  84. }
  85. return 0;
  86. }

  

HDU 3432的更多相关文章

  1. HDU 5643 King's Game 打表

    King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...

  2. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  3. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  4. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  5. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  6. HDU 4006The kth great number(K大数 +小顶堆)

    The kth great number Time Limit:1000MS     Memory Limit:65768KB     64bit IO Format:%I64d & %I64 ...

  7. HDU 1796How many integers can you find(容斥原理)

    How many integers can you find Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d ...

  8. hdu 4481 Time travel(高斯求期望)(转)

    (转)http://blog.csdn.net/u013081425/article/details/39240021 http://acm.hdu.edu.cn/showproblem.php?pi ...

  9. HDU 3791二叉搜索树解题(解题报告)

    1.题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=3791 2.参考解题 http://blog.csdn.net/u013447865/articl ...

随机推荐

  1. 把一个文件夹下的多个csv文件合并到一个excel的多个sheet

    #!/usr/bin/env python3 # -*- coding: UTF-8 -*- import pandas as pd import os import re if __name__ = ...

  2. alipay.trade.refund (统一收单交易退款接口)[支付宝退款]

    首页官网退款的api: https://doc.open.alipay.com/docs/api.htm?spm=a219a.7395905.0.0.UTBitT&docType=4& ...

  3. 1.ArcGis几何图形之几何计算

    /// <summary> /// 检测几何图形A是否包含几何图形B /// </summary> /// <param name="pGeometryA&qu ...

  4. ES6 Template String 模板字符串

    模板字符串(Template String)是增强版的字符串,用反引号(`)标识,它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量. 大家可以先看下面一段代码: $(&quo ...

  5. VC常用代码之创建进程

    作者:朱金灿 来源:http://blog.csdn.net/clever101 创建进程是编程开发的常用操作.Windows中的创建进程采用API函数CreateProcess实现.下面是一个使用例 ...

  6. JWPL工具处理维基百科wikipedia数据用于NLP

    JWPL处理维基百科数据用于NLP 处理zhwiki JWPL是一个Wikipedia处理工具,主要功能是将Wikipedia dump的文件经过处理.优化导入mysql数据库,用于NLP过程.以下以 ...

  7. EF CodeFirst 基础命令

    PM> enable-migrations 已在项目"EasyWeChat.Data"中启用迁移.若要覆盖现有迁移配置,请使用 -Force 参数. PM> add-m ...

  8. Eclipse 插件ibeetl

    启动Eclipse 打开菜单栏按一下菜单路径依次打开 Help -> Install New Softwave… ->点击Add按钮弹出一个对话框 弹出的对话框中Name随意填写,如填写“ ...

  9. json简介及josn数组中取字符

    1.json字符串就是字符串,只不过格式是Json格式的,以键值对的形式存在,键和值可以是字符串,数字,空值,数组等. json对象在花括号中书写,一个json对象包含多个键值对,json对象以花括号 ...

  10. List集合的特有功能概述和测试

    List集合的特有功能概述和测试A:List集合的特有功能概述void add(int index,E element)E remove(int index)E get(int index)E set ...