若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

1459: 3.4.3 Electric Fence 电网

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,177

题目描述

在本题中,格点是指横纵坐标皆为整数的点。
为了圈养他的牛,农夫约翰建造了一个三角形的电网。他从原点(0,0)牵出一根通电的电线,连接格点(n,m)(0<=n<32000,0<m<32000),再连接格点(p,0)(p>0),最后回到原点。
牛可以在不碰到电网的情况下被放到电网内部的每一个格点上(十分苗条的牛)。如果一个格点碰到了电网,牛绝对不可以被放到该格点之上。那么有多少头牛可以被放到农夫约翰的电网中去呢?

输入

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

输出

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

样例输入

7 5 10

样例输出

20

参考代码

#include <stdio.h>
int res;
int solve(int n,int m) 
{
    int sum=0,i,a;
    if(n==m)
            return (n-1)*(n-2)/2;
    if(m<n) 
    {
        m^=n;
        n^=m;
        m^=n;
    }
    res=0;
    for (i=1;i<n;i++) 
    {
        a=m*i/n;
        sum+=a;
        if(a*n==m*i)
                    res++;
    }
    return sum-res;
}
int main() 
{
    int n,m,p;
    while(scanf("%d%d%d",&n,&m,&p)!=EOF) 
    {
        if(n<=p)
                    printf("%dn",solve(n,m)+solve(p-n,m)+((n==p || n==0)?0:m-1));
        else
            printf("%dn",solve(n,m)-solve(n-p,m)-res);
    }
    return 0;
}

解析

暂无

hustoj

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

Skip 原站点 Dreams孤独患者
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist