【♂Not The Triumph♂O(∩_∩)O哈哈~But The Struggle♂】

竞赛决不是捷径,它只是另一种艰辛的生活方式。得到与失去,只有时间会去评判;成功与失败,只有历史能去仲裁。我不会永远成功,正如我不会永远失败一样

  C++博客 :: 首页 :: 联系 ::  :: 管理
  6 Posts :: 239 Stories :: 25 Comments :: 0 Trackbacks

常用链接

留言簿(7)

我参与的团队

搜索

  •  

积分与排名

  • 积分 - 108800
  • 排名 - 230

最新评论

阅读排行榜

评论排行榜

在本题中,格点是指横纵坐标皆为整数的点。

为了圈养他的牛,农夫约翰建造了一个三角形的电网。他从原点(0,0)牵出一根通电的电线,连接格点[n,m](0<=n<32000,0<m<32000),再连接格点[p,0](p>0),最后回到原点。

牛可以在不碰到电网的情况下被放到电网内部的每一个格点上(十分苗条的牛)。如果一个格点碰到了电网,牛绝对不可以被放到该格点之上。那么有多少头牛可以被放到农夫约翰的电网中去呢?

格式
PROGRAM NAME: fence9
INPUT FORMAT:(file fence9.in)

输入文件只有一行,包含三个用空格隔开的整数:n,m和p。

OUTPUT FORMAT:(file fence9.out)

输出文件只有一行,包含一个整数,代表能被指定的电网包含的牛的数目。

SAMPLE INPUT
7 5 10

SAMPLE OUTPUT
20


【参考程序】:

/*
ID: XIONGNA1
PROG: fence9
LANG: C++
*/
#include
<iostream>
#include
<cmath>
#include
<cstring>
int n,m,p;
int main()
{
    freopen(
"fence9.in","r",stdin);
    freopen(
"fence9.out","w",stdout);
    scanf(
"%d%d%d",&n,&m,&p);
    
int s=0,x1,x2;
    
for (int y=1;y<=m-1;y++)
    {
        
if (y*(n-p)%m==0) x2=(y*(n-p)/m)+p-1;
        
else x2=(int)floor(y*(n-p)/(m*1.0)+p);
        x1
=(int)floor(y*n/(m*1.0))+1;
        s
+=x2-x1+1;
    }
    printf(
"%d\n",s);
    
return 0;
}
posted on 2009-07-27 09:22 开拓者 阅读(205) 评论(0)  编辑 收藏 引用 所属分类: USACO 题解

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理