2 条题解
-
0
数学题 #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
首次使用,凑合着看吧😋,主要运用贪心,先倒序排序,供应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
- 上传者