#1445. 完善练习2

完善练习2

三. 完善程序

题目描述:

nn 根木棒,现在从中选 44 根,想要组成一个正三角形,问有几种选法?

答案对 109+710^9+7 取模。

输入格式:

第一行一个整数 nn

第二行往下 nn 行,每行 11 个整数,第 ii 个整数 aia_i 代表第 ii 根木棒的长度。

输出格式:

一行一个整数代表答案。

数据规模与约定:

1n1051 \leq n \le 10^51ai5×1031 \le a_i \le 5 \times 10^3

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int kMaxn = 1e6 + 10;
const ll kMod = 1e9 + 7;
ll n, ans, maxa, a[kMaxn], num[kMaxn];
ll C(ll x, ll k) { 
    return (k == 1ll ? x : (1)) % kMod;
}
int main() {
    scanf("%lld\n", &n);
    for (int i = 1; i <= n; ++ i) { 
        scanf("%lld", &a[i]); 
        maxa = max(a[i], maxa);
        num[a[i]] ++;
    }

    for (int i = 2; i <= (2); ++ i) { 
        if ((3)) {
            ll times = C(num[i], 2ll) % kMod; 
            for (int j = 1; j <= i / 2; ++ j) {
                if (j != i - j && num[j] >= 1 && num[i - j] >= 1) 
                    ans += times * C(num[j], 1) * (4) % kMod;
                if ((5) && num[j] >= 2) 
                    ans += times * C(num[j], 2) % kMod;
                ans %= kMod;
            }
        }
    }
    printf("%lld", ans);
    return 0;
}

1.(1)处应该填写的代码为(){{ select(1) }}

  • x×(x1ll)/2llx \times (x - 1ll) / 2ll
  • x×(x+1ll)/2llx \times (x+1ll)/2ll
  • x×(x1ll)x \times (x-1ll)
  • x×(x+1ll)x \times (x+1ll)

2.(2)处应该填写的代码为(){{ select(2) }}

  • maxa
  • n
  • num[i]
  • a[i]

3.(3)处应该填写的代码为(){{ select(3) }}

  • num[i]>=1llnum[i] >= 1ll
  • num[i]>=2llnum[i] >= 2ll
  • num[i]>=3llnum[i] >= 3ll
  • num[i]==2llnum[i] == 2ll

4.(4)处应该填写的代码为(){{ select(4) }}

  • C(num[i],1)C(num[i], 1)
  • C(num[ij],1)C(num[i - j], 1)
  • C(num[i],2)C(num[i], 2)
  • C(num[ij],2)C(num[i - j], 2)

5.(5)处应该填写的代码为(){{ select(5) }}

  • j>=ijj>=i-j
  • j<=ijj<=i-j
  • j==ijj==i-j
  • j>ijj>i-j

问题描述:

小博每天都喝牛奶,现在他在超市里,他想选择一瓶牛奶。超市里有许多种牛奶,所以小博想知道哪种牛奶最便宜。

以下是一些规则:

  1. 小博永远不会喝6天前或之前生产的牛奶。这意味着如果牛奶是在2005-1-1生产的,小博在2005-1-6(含)之后不会再喝这瓶牛奶。
  2. 小博每天喝200毫升的牛奶。
  3. 如果瓶子里剩下的牛奶少于200毫升,小博会把它扔掉。
  4. 超市里的所有牛奶都是今天刚刚生产的。

注意,小博只想买一瓶牛奶,所以如果一瓶牛奶的容量小于200毫升,你应该忽略它。 给出一些牛奶的信息,你的任务是告诉小博哪种牛奶最便宜。

输入:

第一行输入一个整数 NN1<=N<=1001<=N<=100),表示牛奶的种类数。然后是 N 行,每行包含一个字符串 SS(长度最多为100100个字符),表示牛奶的品牌,然后是两个整数:PP(元),表示一瓶牛奶的价格,VV(毫升),表示一瓶牛奶的容量。

输出:

你应该输出最便宜的牛奶品牌。如果有多个最便宜的品牌,你应该输出容量最大的那个。

#include <bits/stdc++.h>

using namespace std;

struct node {
    string name;
    int v;   
    int money;
} f[105]; 

int main() {
    int n,i,j,p,max;  
    double sum;
    (1);
    sum=0;j=0;max=-1;
    cin>>m;
    for(i=1;i<=n;i++) cin>>f[i].name>>f[i].money>>f[i].v;
    for(i=1;i<=n;i++) {
        if((2)) continue;     
        if(f[i].v>1000) (3);
        else p=f[i].v/200;
        (4);
        if(sum<min) {
            j=i;
            min=sum; 
        }
        else if(sum==min) {
            if((5)) j=i;
        }
    }
    cout<<f[j].name<<endl;  
    return 0;
}

6.(1)处应该填写的代码为(){{ select(6) }}

  • double min=0double\ min=0
  • double min=1double\ min=-1
  • double min=1double\ min=1
  • double min=999999999double\ min=999999999

7.(2)处应该填写的代码为(){{ select(7) }}

  • f[i].vf[i].v
  • !f[i].v!f[i].v
  • f[i].v<=200f[i].v<=200
  • f[i].v<200f[i].v<200

8.(3)处应该填写的代码为(){{ select(8) }}

  • p=1p=-1
  • p=0p=0
  • p=1p=1
  • p=5p=5

9.(4)处应该填写的代码为(){{ select(9) }}

  • sum=f[i].money1.0/psum=f[i].money*1.0/p
  • sum=f[i].money/p1.0sum=f[i].money/p*1.0
  • sum=p1.0/f[i].moneysum=p*1.0/f[i].money
  • sum=p/f[i].money1.0sum=p/f[i].money*1.0

10.(5)处应该填写的代码为(){{ select(10) }}

  • f[i].v>f[j].vf[i].v>f[j].v
  • f[i].v<f[j].vf[i].v<f[j].v
  • f[i].v==f[j].vf[i].v==f[j].v
  • f[i].v>=f[j].vf[i].v>=f[j].v