称号:放置在一个圆中的矩形,它要求每个圆的每行或列是切线,问:多少能竖起来。

分析:计算几何。数论。首先计算矩形显示屏,然后计算互显示器(每一行与相邻行相同差1个月)求最大,你可以。

说明:╮(╯▽╰)╭作为全球最大的显示器WA美好时光。

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cmath> using namespace std; //题目方式摆放
int getmin(double x, double y)
{
int a = (int)x,m = 0;
int b = (int)(2.0*(y-1.0)/sqrt(3.0))+1;
if (m < a*b-b/2)
m = a*b-b/2;
a = (int)x;
if (a+0.5 <= x && m < a*b)
m = a*b;
return m;
} //最大数目摆放
int getmax(double x, double y)
{
int a = (int)x,m = 0;
//n+1,n,n+1方式
while (a > 1 && y >= 1) {
double d = (x-1.0)/(a-1.0);
if (d >= 2) break;
double r = sqrt(1.0-0.25*d*d);
if (r < 0.5) r = 0.5;
int b = (int)((y-1.0)/r)+1;
if (m < a*b-b/2)
m = a*b-b/2;
a --;
}
//n,n,n方式
a = (int)x;
while (a > 0 && y >= 1) {
double d = 2*(x-1.0)/(2*a-1.0);
if (d >= 2) break;
if (d >= 1) {
double r = sqrt(1.0-0.25*d*d);
if (r < 0.5) r = 0.5;
int b = (int)((y-1.0)/r)+1;
if (m < a*b)
m = a*b;
}
a --;
}
return m;
} int main()
{
double x,y;
while (cin >> x >> y) {
int n = (int)x*(int)y,m = 0,p,q; p = getmin(x, y);
if (p > m) m = p;
q = getmin(y, x);
if (q > m) m = q; if (m > n && x >= 1 && y >= 1)
cout << m << " skew" << endl;
else cout << n << " grid" << endl;
}
return 0;
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

UVa 121 - Pipe Fitters的更多相关文章

  1. UVA 303 Pipe

    点击打开链接 题意: 求光线能达到的最大横坐标 注意光线可以和管道重合 也可以经过转折点 解法: 枚举每种光线是否能通过每个转折点的截面(线段)即可 //大白p263 #include <cma ...

  2. HOJ题目分类

    各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...

  3. echarts地图 绘制部分上海市公交线路数据

    源代码地址 https://github.com/a1115040996/MyHTML/blob/gh-pages/echarts/roadMap.html 预览地址 https://a1115040 ...

  4. Uva 12186 工人的请愿书

    题目链接:https://uva.onlinejudge.org/external/121/12186.pdf 题意: 给出一个树状关系图,公司里只有一个老板编号为0,其他人员从1开始编号.除了老板, ...

  5. UVA 10798 - Be wary of Roses (bfs+hash)

    10798 - Be wary of Roses You've always been proud of your prize rose garden. However, some jealous f ...

  6. UVa 12100 Printer Queue (习题 5-7)

    传送门:https://uva.onlinejudge.org/external/121/12100.pdf 题意:队列中待打印的任务(1 <= n <= 100)带有优先级(1-9), ...

  7. [uva] 10067 - Playing with Wheels

    10067 - Playing with Wheels 题目页:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Ite ...

  8. Fast Matrix Operations(UVA)11992

    UVA 11992 - Fast Matrix Operations 给定一个r*c(r<=20,r*c<=1e6)的矩阵,其元素都是0,现在对其子矩阵进行操作. 1 x1 y1 x2 y ...

  9. angular2系列教程(六)两种pipe:函数式编程与面向对象编程

    今天,我们要讲的是angualr2的pipe这个知识点. 例子

随机推荐

  1. DBV-00111: OCI failure (3722) (ORA-01002: fetch out of sequence解决

    在使用DBV检测segment的时候出现 DBV-00111: OCI failure (3722) (ORA-01002: fetch out of sequence)错误: 在寻找原因过程中发现相 ...

  2. QQ聊天原理初识

    1:qq之间文件的传输是通过p2p通信进行的. 2:qq之间的表情发送实际上就是文字的发送,是client再接受到文字之后在本地自己进行转换 3:qq之间的通信既能够通过udp也能够通过Tcp 尽管u ...

  3. Objective-c 协议(protocol)

    协议的作用类似地C++中对抽象基类的多重继承.类似于Java中的接口(interface)的概念.   协议是多个类共享方法的列表,协议中列出的方法在本类中并没有相应实现,而是别的类来实现这些方法. ...

  4. Spark调研笔记第2篇 - 怎样通过Sparkclient向Spark提交任务

    在上篇笔记的基础上,本文介绍Sparkclient的基本配置及Spark任务提交方式. 1. Sparkclient及基本配置 从Spark官网下载的pre-built包中集成了Sparkclient ...

  5. win7如何快速设置开机启动项?

    添加开机启动项方法: 找到windows开始菜单->所有程序->启动,右键打开, 进入C:\Users\Ocean\AppData\Roaming\Microsoft\Windows\St ...

  6. OCP-1Z0-053-V13.02-712新题

       Why does the number of blocks for the table remain the sale after the shrink operation? A.Because ...

  7. cookie保存分页参数

    <script src="../Public/js/jquery.cookie.js"></script> <script type="te ...

  8. c++ 对象作为参数传递

    对象作为参数传递时是传值.把实参的对象赋值给形参.因此效率有点低. c++传参方式可以分为2种: 1.传值 (指针作为参数,本质上也只是把地址作为值传递了而已). 2.传引用. 所以,一切传递方式不是 ...

  9. 飘逸的python - 简单探索time模块

    time模块中方法众多,不过在了解本质和联系之后,就会发现其实很简单. 在python中可以用3种方式来表达时间.看似很乱,其实就只是这3种变来变去来回转换而已. 1.时间戳 2.时间tuple,由9 ...

  10. Linux多线程编程(一)---多线程基本编程

    线程概念 线程是指运行中的程序的调度单位.一个线程指的是进程中一个单一顺序的控制流,也被称为轻量级线程.它是系统独立调度和分配的基本单位.同一进程中的多个线程将共享该系统中的全部系统资源,比如文件描述 ...