一开始想了想,没有什么好的办法,以为要用什么科技。
然后没有什么想法,就去网上查题解,原来暴力打表就可以…
以后还得看数据范围分析时间空间复杂度啊…
想复杂了…本来就是一道水题
AC代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
int dig[10001][10];
void init()
{
for (int i = 1; i <= 10000; i++)
{
for (int j = 0; j < 10; j++)
dig[i][j] = dig[i - 1][j];
for (int j = i; j > 0; j /= 10)
dig[i][j % 10]++;
}
}
int main()
{
int t;
init();
scanf("%d", &t);
while (t--)
{
int x;
scanf("%d", &x);
for (int i = 0; i < 10; i++)
{
if (i != 0)
printf(" %d", dig[x][i]);
else
printf("%d", dig[x][i]);
}
printf("\n");
}
// system("pause");
return 0;
}
暴力解决编程难题:从复杂到简单

本文探讨了一道看似复杂的编程题,通过深入分析数据范围和采用暴力打表的方法,成功简化了解题过程。文章强调了在解决编程问题时,先分析数据范围和时间空间复杂度的重要性,避免不必要的复杂思考,从而找到更简洁有效的解决方案。
2314

被折叠的 条评论
为什么被折叠?



