Yuan
|
首页
|
发新随笔
|
发新文章
|
联系
|
聚合
|
管理
CF78D 统计的方法
/**/
/*
如果所示的6边形图,询问半径为r的圆能完整包含多少个6边形
一开始想找规律,wa
看了解题报告,解法很好
.
先向上找到最高的被完全包含的6边形,然后往右上走
若右上越界了,就下一层
.就这样
.一边走一边统计
---------------------OMG
若以中间那块的中心为坐标原点的话,可以发现所以六边形的顶点的坐标会是(1/2x, sqrt(3)/2y)
如(0.5, sqrt(3)/2)等,这里x,y是整数
不超过圆就有x*x + 3*y*y <= 4*r*r
然后x,y可以用整数点去走,用上面的表达式去判出界
代码是看第一名的那个~~~Orz
*/
#include
<
iostream
>
#include
<
cstdio
>
#include
<
cmath
>
#include
<
algorithm
>
using
namespace
std;
int
main()
{
//
freopen("in", "r" ,stdin);
for
(
long
long
r; cin
>>
r;)
{
long
long
ans
=
0
;
long
long
x
=
1
, y
=
1
;
while
(x
*
x
+
3
*
y
*
y
<=
4
*
r
*
r)
{
y
+=
2
;
}
y
-=
2
;
ans
+=
y;
//
右上角那块
y
+=
1
;
x
+=
3
;
while
(y
>=
0
)
{
if
(x
*
x
+
3
*
y
*
y
<=
4
*
r
*
r
&&
(x
+
1
)
*
(x
+
1
)
+
3
*
(y
-
1
)
*
(y
-
1
)
<=
4
*
r
*
r )
{
ans
+=
2
*
y;
y
+=
1
;
//
往右上
x
+=
3
;
}
else
{
y
-=
2
;
//
下来一格
}
}
cout
<<
ans
<<
endl;
}
return
0
;
}
发表于 2011-05-13 09:27
_Yuan
阅读(173)
评论(0)
编辑
收藏
引用
所属分类:
OThers
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
hdu 3403 回文日期
ural 1720
poj 3274 保存相对值
CF78D 统计的方法
76D 比较巧
zoj 3491 优先队列 很巧 路线的编码
ural 1113 Jeep problem
CodeForces 66
贴做题记录...
做题记录...
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
常用链接
我的随笔
我的评论
我参与的随笔
随笔分类
Dp(27)
(rss)
OJ解题报告(153)
(rss)
OThers(17)
(rss)
TopCoder
(rss)
计算几何(2)
(rss)
枚举(4)
(rss)
数据结构(6)
(rss)
数论(5)
(rss)
搜索(2)
(rss)
贪心(4)
(rss)
图论(10)
(rss)
学习笔记(6)
(rss)
学习总结(19)
(rss)
组合数学(3)
(rss)
Links
Lord Li
Lord zeus
搜索
最新评论
1. re: 双向BFS[未登录]
博主,只用一个队列不就可以解决你第一个问题了吗
--jason
2. re:nvgagkguaioguaiiananfajfofajiosfgoasoajgia[未登录]
cscdcuis
--1
3. re: zoj 3436 逆推 搜
评论内容较长,点击标题查看
--ZH
4. re: zoj 2318 计算几何 spfa判负环
写得好!
--ipqhjjybj
5. re: Poj 1066
@杨书鉴
你写的排序好像不对啊。。。
--小猊