Electric Fence USACO 3.4

本文通过一个具体的C++代码示例介绍了如何使用模拟算法解决特定的数学问题。该算法涉及不同条件下的循环和条件判断,根据输入参数的不同,程序会采用不同的计算方式来求解问题。文章提供了一个完整的代码实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这题...额 我就是模拟着一条一条数完为止,4种情况,模拟过了,没想到到了第三章还有这么简单的题

 

  1 /*
  2 
  3 ID: hubiao cave
  4 
  5 PROG: fence9
  6 
  7 LANG: C++
  8 
  9 */
 10 
 11 
 12 
 13 
 14 #include<iostream>
 15 
 16 #include<fstream>
 17 
 18 #include<string>
 19 
 20 using namespace std;
 21 
 22 
 23 
 24 int main()
 25 
 26 {
 27 
 28     ifstream fin("fence9.in");
 29 
 30     ofstream fout("fence9.out");
 31 
 32     int n,m,p;
 33     int sum=0;
 34 
 35     
 36 
 37     fin>>n>>m>>p;
 38 
 39     if(n==0)
 40     {
 41 
 42         for(int i=1;i<p;i++)
 43         {
 44             if((p-i)*m%p)
 45                 sum+=max((p-i)*m/p,0);
 46             else
 47                 sum+=max((p-i)*m/p-1,0);
 48         }
 49 
 50     }
 51     else if(n==p)
 52     {
 53         for(int i=1;i<p;i++)
 54         {
 55             if(i*m%p)
 56                 sum+=max(i*m/p,0);
 57             else
 58                 sum+=max(i*m/p-1,0);
 59         }
 60     }
 61     else if(n<p)
 62     {
 63         for(int i=1;i<=n;i++)
 64         {
 65             if(i*m%n)
 66                 sum+=max(i*m/n,0);
 67             else
 68                 sum+=max(i*m/n-1,0);
 69         }
 70 
 71         for(int i=n+1;i<p;i++)
 72         {
 73             if((p-i)*m%(p-n))
 74                 sum+=max((p-i)*m/(p-n),0);
 75             else
 76                 sum+=max((p-i)*m/(p-n)-1,0);
 77         }
 78 
 79     }
 80     else
 81     {
 82         for(int i=1;i<=p;i++)
 83         {
 84             if(i*m%n)
 85                 sum+=max(i*m/n,0);
 86             else
 87                 sum+=max(i*m/n-1,0);
 88         }
 89 
 90         for(int i=p+1;i<n;i++)
 91         {
 92             if(i*m%n)
 93             {
 94                     sum+=(i*m/n)-((i-p)*m/(n-p));
 95             }
 96             else
 97                 sum+=(i*m/n)-((i-p)*m/(n-p))-1;
 98         }
 99     }
100     fout<<sum<<endl;
101     return 0;
102 
103 
104 }

 

转载于:https://www.cnblogs.com/cavehubiao/p/3383069.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值