第十四届题目

日期统计

cs 复制代码
#include <stdio.h>
#include <string.h>

int arr[100] = {
    5,6,8,6,9,1,6,1,2,4,9,1,9,8,2,3,6,4,7,7,5,9,5,0,3,8,7,5,8,1,5,8,6,1,
    8,3,0,3,7,9,2,
    7,0,5,8,8,5,7,0,9,9,1,9,4,4,6,8,6,3,3,8,5,1,6,3,4,6,7,0,7,8,2,7,6,8,
    9,5,6,5,6,1,4,0,1,
    0,0,9,4,8,0,9,1,2,8,5,0,2,5,3,3
};

int check(const char *date_str)
{
  int i=0,j=0;
  int len=strlen(date_str);
  while(i<100&&j<len)
  {
    if(arr[i]==date_str[j]-'0') j++;
    i++;
  }
  return j==len;
}

int main() {
  int momth_day[]={31,28,31,30,31,30,31,31,30,31,30,31};
  int count=0;
  char date_str[9];
  for(int month=1;month<=12;month++)
  {
    for(int day=1;day<=momth_day[month-1];day++)
    {
      sprintf(date_str,"2023%02d%02d",month,day);
      if(check(date_str)) count++;
    }
  }
  printf("%d",count);
  return 0;
}

01串的熵

cs 复制代码
#include<stdio.h>
#include<math.h>
int main()
{
    double n = 23333333,sum = 0;
    int o = 0,l = 0;
    for(o = 0;o <= n/2;o++){
        sum = 0;
        sum -= o*(o / n) * log2(o / n) + (n - o)*((n - o) / n) * log2((n - o) / n);
        if(sum > 11625907.5 && sum < 11625907.6){
            printf("%d",o);
            break;
        }
    }
    return 0;
}

冶练金属

cs 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

int main(int argc, char *argv[])
{
  int n;
  scanf("%d",&n);
  int min=0;
  int max=INT_MAX;
  for(int i=0;i<n;i++)
  {
    int a,b;
    scanf("%d %d",&a,&b);
    int lower=a/(b+1)+1;
    int upper=a/b;
    if(lower>min) min=lower;
    if(upper<max) max=upper;
  }
  printf("%d %d",min,max);
  return 0;

飞机降落

cs 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int max(int a,int b)
{
  return a>b?a:b;
}

typedef struct
{
  int t,d,l;
}Plane;

Plane p[15];
int vis[15];
int flag;

void dfs(int m,int cnt,int last)
{
  if(cnt==m)
  {
    flag=1;
    return;
  }
  for(int i=0;i<m;i++)
  {
    if(!vis[i]&&(p[i].t+p[i].d)>=last)
    {
      vis[i]=1;
      dfs(m,cnt+1,max(last,p[i].t)+p[i].l);
      vis[i]=0;
      if(flag) return;
    }
  }
}

int main(int argc, char *argv[])
{
  int T;
  scanf("%d",&T);
  while(T--)
  {
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
      scanf("%d %d %d",&p[i].t,&p[i].d,&p[i].l);
    }
    flag=0;
    memset(vis,0,sizeof(vis));
    dfs(n,0,0);
    if(flag) printf("YES\n");
    else printf("NO\n");
  }
  return 0;
}

接龙数列

cs 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int getfirst(int x)
{
  while(x>=10) 
  {
    x/=10;
  }
  return x;
}

int getlast(int x)
{
  return x%10;
}

int main(int argc, char *argv[])
{
  int n;
  scanf("%d",&n);
  int dp[10];
  memset(dp,0,sizeof(dp));
  for(int i=0;i<n;i++)
  {
    int a;
    scanf("%d",&a);
    int s=getfirst(a);
    int e=getlast(a);
    int new_len=dp[s]+1;
    if(new_len>dp[e]) dp[e]=new_len;
  }
  int max_len=0;
  for(int i=0;i<10;i++)
  {
    if(dp[i]>max_len) max_len=dp[i];
  }
  printf("%d",n-max_len);
  return 0;
}

子串简写

cs 复制代码
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#define N 500006
typedef long long ll;
int main(int argc, char *argv[])
{
  ll k,i,j,n,sum=0,cnt=0;
  char a[N],c1,c2;
  scanf("%lld",&k);
  scanf("%s %c %c",a,&c1,&c2);
  n=strlen(a);
  for(i=k-1;i<n;i++)
  {
    if(a[i-k+1]==c1)
    {
      cnt++;
    }
    if(a[i]==c2)
    {
      sum+=cnt;
    }
  }
  printf("%lld",sum);
  return 0;
}
相关推荐
汀、人工智能2 小时前
[特殊字符] 第97课:前K个高频元素
数据结构·算法·数据库架构··数据流·前k个高频元素
美式请加冰2 小时前
简单多状态问题
数据结构·算法·leetcode
计算机安禾2 小时前
【数据结构与算法】第38篇:图论(二):深度优先搜索(DFS)与广度优先搜索(BFS)
数据结构·算法·矩阵·排序算法·深度优先·图论·宽度优先
佑白雪乐2 小时前
<LeetCode>二叉树前/中/后/层遍历**递归&&非递归**
算法·leetcode·深度优先
汀、人工智能2 小时前
[特殊字符] 第56课:在排序数组中查找元素的首末位置
数据结构·算法·数据库架构·图论·bfs·在排序数组中查找元素的首末位置
小O的算法实验室2 小时前
2026年IEEE TASE,面对突发危险区域的基于强化学习的多无人机路径规划,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
AI科技星2 小时前
全维度相对论推导、光速螺旋时空与北斗 GEO 钟差的统一理论
开发语言·线性代数·算法·机器学习·数学建模
ECT-OS-JiuHuaShan2 小时前
科学的本来意义,是基于规范的共识逻辑,而非共识方法
人工智能·科技·学习·算法·生活
木子墨5163 小时前
LeetCode 热题 100 精讲 | 动态规划进阶篇:最大子数组和 · 分割等和子集 · 最长公共子序列 · 打家劫舍 III
数据结构·c++·算法·leetcode·动态规划·力扣