每日总结3.25

发布于:2025-03-26 ⋅ 阅读:(16) ⋅ 点赞:(0)

第九届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组


1.第几天(√);


2.乘积尾零(√);(拆分为2和5,统计个数)

#include <iostream>
using namespace std;
int a[11][11];
int main()
{
  int x=0,y=0;
  for(int i=1;i<=10;i++)
  {
    for(int j=1;j<=10;j++)
    {
      cin>>a[i][j];
      while(a[i][j]%2==0)
      {
        a[i][j]/=2;
        x++;
      }
      while(a[i][j]%5==0)
      {
        a[i][j]/=5;
        y++;
      }
    }
  }
  cout<<min(x,y);
  return 0;
}

3.递增三元组

#include<stdio.h>
#include<algorithm>
using namespace std;
const int maxn=100010;
int main()
{
    int n;
    int a[maxn],b[maxn],c[maxn];
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    sort(a,a+n);
    for(int i=0;i<n;i++){
        scanf("%d",&b[i]);
    }
    sort(b,b+n);
    for(int i=0;i<n;i++){
        scanf("%d",&c[i]);
    }
    sort(c,c+n);
    long long sum=0,s1=0,s2=0;
    for(int i=0;i<n;i++){
        while(s1<n&&a[s1]<b[i]) s1++;
            while(s2<n&&c[s2]<=b[i])s2++;
        sum+= ((long long)s1*(n-s2));
    }
    printf("%lld",sum);
    return 0;
}

3.日志统计

#include <bits/stdc++.h>
using namespace std;
const int N=100005;
struct Node{
  int ts,id;
}p[N];
bool cmp(Node a,Node b)
{
  return a.id<b.id;
}
int main()
{
  int n,d,k;
  cin>>n>>d>>k;
  for(int i=0;i<n;i++)
  {
    cin>>p[i].id>>p[i].id;
  }
  sort(p,p+n,cmp);
  for(int i=0,j=i;i<n&&j<n;i++)
  {
    int z=0;
    while(p[i].id==p[j].id&&p[j].ts<p[i].ts+d&&j<n)
    {
      z++;
      j++;
    }
    if(z>=k)
    {
      cout<<p[i].id<<endl;
    }
  }
  return 0;
}