- 【2021年省赛B组】试题B:卡片
给大家图一乐的超时的代码(超时报错)
- 2024-4-11 12:53:36 @
蛮力法解决,但是全超时了想着就是遍历,我感觉1最先用完所以判断位置只放了1(把其他都放上也可以),然后就是分解位数,应该是运算规模有点大了,反正总之,我是菜狗
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[10],j;
for(int i=0;i<10;i++)
{
a[i]=2021;
}
while(a[1]!=0)
{
for(j=1;j<=9999;j++)
{
int n=j;
while(n!=0)
{
int div=n%10;
a[div]--;
n/=10;
}
}
}
cout<<j<<endl;
return 0;
}
在想,如果是char类型能分解然后判断吗,害,书到用时方恨少,我还是做菜狗吧
1 条评论
-
hblgzsx 会长 LV 10 MOD @ 2024-4-11 16:13:17已修改
不一定1先用完,哪一位用完都有可能,你以a[1]为判断条件的话,有可能a[1]在循环内部变成了负数,就死循环了,换一个思路,你可以判断当前减的那一位是否小于0了。记住不是等于零了,等于零也是满足题意的,必须是使用超过2021次了。
- 1
信息
- ID
- 977
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 79
- 已通过
- 35
- 上传者