TLE 求调!!!悬棺!
  • 板块P1239 计数器
  • 楼主wky_wsy_
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/11/29 21:14
  • 上次更新2024/11/30 06:26:26
查看原帖
TLE 求调!!!悬棺!
1323415
wky_wsy_楼主2024/11/29 21:14

80 分代码:

#include <cstdio>
#include <algorithm>
#include <cstring>
#define int long long
using namespace std;
inline int wei(int a){
    int w=0;
    while(a){
        a/=10;
        ++w;
    }
    return w;
}
inline int Pow(int x,int y){
    if(y==0) return 1;
    int c=1;
    for(int i=1;i<=y;i++){
        c*=x;
    }
    return c;
}
int num[10],n;
//void dfs(int a){
//    if(a==n) return ;
//    int w=wei(a);
//    for(int i=0;i<w;i++){
//        //int l=a/Pow(10,i)%10;
//        int l=a%10;
//        ++num[l];
//        a/=10;
//    }
//    dfs(a+1);
//}
signed main(){
    //int n;
    scanf("%lld",&n);
    //dfs(1);
    for(int i=1;i<=n;i++){
    	int w=wei(i);
    	for(int j=0;j<w;j++){
    		int l=i/Pow(10,j)%10;
    		num[l]++;
		}
	}
    for(int i=0;i<10;i++){
        printf("%lld\n",num[i]);
    }
}

90 分代码:

#include <cstring>
#include <string>
using namespace std;
int y[10];
int main(){
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        string s=to_string(i);
        int l=s.size();
        for(int j=0;j<l;j++){
            if(s[j]=='0') y[0]++;
            else if(s[j]=='1')y[1]++;
            else if(s[j]=='2')y[2]++;
            else if(s[j]=='3') y[3]++;
            else if(s[j]=='4')y[4]++;
            else if(s[j]=='5')y[5]++;
            else if(s[j]=='6') y[6]++;
            else if(s[j]=='7')y[7]++;
            else if(s[j]=='8')y[8]++;
            else if(s[j]=='9') y[9]++;
        }
    }
    printf("%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d",y[0],y[1],y[2],y[3],y[4],y[5],y[6],y[7],y[8],y[9]);
    return 0;
}
2024/11/29 21:14
加载中...