(打卡)第十四届蓝桥杯三月真题刷题训练——第 13 天 (3.16)

debuger 2023-03-16 23:52:22

第 1 题:特殊日期 

#include <iostream>
using namespace std;
bool check(int y, int m, int d) {
    if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
        if (m == 2 && d >= 1 && d <= 29) return true;
    }
    else {
        if (m == 2 && d >= 1 && d <= 28) return true;
    }

    if ((m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) && d >= 1 && d <= 31) return true;
    if ((m == 4 || m == 6 || m == 9 || m == 11) && d >= 1 && d <= 30) return true;
    return false;
}
int main()
{
    int sum = 0;
    for (int y = 1900; y <= 9999; y++) {
        for (int m = 1; m <= 12; m++) {
            for (int d = 1; d <= 31; d++) {
                if (check(y, m, d)) {
                    int t, x = 0;
                    t = y;
                    while (t) {
                        x += t % 10;
                        t /= 10;
                    }
                    t = m;
                    while (t) {
                        x -= t % 10;
                        t /= 10;
                    }
                    t = d;
                    while (t) {
                        x -= t % 10;
                        t /= 10;
                    }
                    if (x == 0) sum++;
                }
            }
        }
    }
    cout << sum;
    return 0;
}

 第 2 题:重合次数

#include <iostream>
using namespace std;
int sum;
void init(){
  for(int h=6;h<=14;h++){
    for(int m=0;m<=59;m++){
      for(int s=0;s<=59;s++){
        if(h==14&&m==36&&s==20) return;
        if(((h==6&&m>=13&&s>=22)||(h>=7))&&m==s) sum++;
      }
    }
  }
}
int main()
{
  init();
  cout<<sum;
  return 0;
}

 第 3 题:左移右移

#include <bits/stdc++.h>
using namespace std;
const int nmax=2*1e5+5;
int n,m;
struct snum
{
  int num,val;
}nums[nmax];
bool cmp(snum &sn1,snum &sn2){
  return sn1.val<sn2.val;
}
int main()
{
  cin>>n>>m;
  for(int i=1;i<=n;i++) {
    nums[i].num=i;
    nums[i].val=i;
  }
  for(int i=n+1;i<=n+1+m;i++){
    char c;
    int x;
    cin>>c>>x;
    if(c=='L'){
      nums[x].val=-i;
    }else if(c=='R'){
      nums[x].val=i;
    }
  } 
  sort(nums+1,nums+1+n,cmp);
  for(int i=1;i<=n;i++){
    cout<<nums[i].num<<" ";
  }
  return 0;
}

 

 

...全文
6 回复 打赏 收藏 举报
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
发帖
高校算法学习社区

4.1w+

社区成员

和众多高校算法内卷分子,一起学习和交流算法那。浓郁的算法交流氛围,拒绝躺平,有效内卷。加入我们,私信我拉你入核心内卷群。
算法数据结构leetcode 个人社区
社区管理员
  • 执 梗
  • Dream-Y.ocean
  • ღCauchyོꦿ࿐
加入社区
帖子事件
创建了帖子
2023-03-16 23:52
社区公告

 刷题!