多少块土地



/*多少块土地*/

#include<iostream>
#include<math.h>
#include<stdio.h>
#include<string>
using namespace std;

int E1(int n)
{
 int j = 0;
 int Vtotal = 0;
 for (j = 0; j <= n - 2; j++)
 {
  Vtotal += j*(n - 2 - j);
 }
 return Vtotal;
}
int E2(int n)
{
 int j = 0, Etotal = 0;
 for (j = 0; j <= n - 2; j++)
 {
  Etotal += j*(n - 2 - j) +1;
 }
 return Etotal;
}
int main()
{
 int n;
 while (cin >> n)
 {
  int E, V, island;
  E = n + n*E2(n)/2;
  V = n + n*E1(n)/4;
  //cout << E << "   " << V << endl;
  island = E - V + 1;
  cout << island << endl;
 }
 system("pause");
 return 0;
}


/*如果知道欧拉公式就很简单,我也是想了很久看答案才知道这公式的*/

面条老师决定不再经营他的面条店,而是回家继承家族农场。他雇佣了姜饼来帮助管理农场,并将 𝑛 n 土地交给了姜饼负责。每天,姜饼会进行 𝑚 m 次浇水作业,每次随机选择一土地进行浇水。 面条老师对农场的管理情况非常关心,他想知道: 在一天内,最多有多少不同的土地能被浇到水?最少又有多少? 最多会有多少不同的土地被重复浇水(即至少被浇两次)?最少又会有多少? 输入格式 输入共一行。 两个整数, 𝑛 n、 𝑚 m,表示面条老师将 𝑛 n 土地交给姜饼负责,姜饼每天会浇水 𝑚 m 次。 输格式 输共两行。 第一行为两个整数,表示最多和最少被浇水的不同土地数量。 第二行为两个整数,表示最多和最少被重复浇水的不同土地数量。 input1 复制代码 6 5 output1 复制代码 5 1 2 0 样例解释 对于输入 6 5: 最多有 5 5 不同的土地能被浇到水:每次都选择不同的土地浇水。 最少有 1 1 土地能被浇到水:每次都选择同一土地进行浇水。 最多有 2 2 土地会被重复浇水:可以第一次和第二次浇同一土地,第三和第四次浇另一土地,第五次随机浇水。 最少有 0 0 土地会被重复浇水:每次都选择不同的土地浇水,此时不会有土地被重复浇水 数据规模与约定 对于 100 % 100% 的数据, 1 ≤ 𝑛 , 𝑚 ≤ 1 0 6 1≤n,m≤10 6 。 c++简单
03-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值