2 条题解

  • 0
    @ 2025-10-23 22:27:27

    数学题 #include<stdio.h>

    int main()

    {

    int t;

    scanf("%d",&t);

    while(t--)

    {

    int d,b,c;

    scanf("%d%d%d",&d,&b,&c);

    int count=0;

    int a[3]={d,b,c};

    for(int i=0;i<2;i++)

    {

    for(int j=0;j<2-i;j++)

    {

    if(a[j]<a[j+1])

    {

    int tem=a[j+1];

    a[j+1]=a[j];

    a[j]=tem;

    }

    }

    }

    for(int i=0;i<3;i++)

    {

    if(a[i]!=0)

    {

    count++;

    a[i]--;

    }

    }

    if(a[0]*a[0+1]!=0)

    {

    count++;

    a[0]--;

    a[0+1]--;

    }

    if(a[0]*a[0+2]!=0)

    {

    count++;

    a[0]--;

    a[2]--;

    }

    if(a[1]*a[1+1]!=0)

    {

    count++;

    a[1]--;

    a[2]--;

    }

    if(a[0]*a[1+1]*a[1]!=0)

    {

    count++;

    }

    printf("%d\n",count);

    }

    return 0;

    }

    • 0
      @ 2025-8-20 14:59:14

      首次使用,凑合着看吧😋,主要运用贪心,先倒序排序,供应1个菜品,再到2个,3个

      进行减1操作后,可以发现操作后的序列仍然是单调不减的,统计每个情况加到cnt即可

      from math import sqrt,ceil,gcd,log;re=lambda:map(int,input().split())
      t, = re()
      for _ in range(t):
          cnt = 0
          a = list(re())
          a.sort(reverse=True)
          for i in range(3):
              if a[i]:
                  a[i] -= 1
                  cnt += 1
          for i in range(2):
              for j in range(i + 1, 3):
                  if a[i] and a[j]:
                      a[i] -= 1
                      a[j] -= 1
                      cnt += 1
          if all(i for i in a):
              cnt += 1
          print(cnt)
      
      • 1

      信息

      ID
      117
      时间
      1000ms
      内存
      256MiB
      难度
      7
      标签
      (无)
      递交数
      265
      已通过
      58
      上传者