Why C WA*16
  • 板块学术版
  • 楼主wangrunyang
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/4 21:48
  • 上次更新2025/1/5 10:29:38
查看原帖
Why C WA*16
1052626
wangrunyang楼主2025/1/4 21:48

又被有哪位路过的大佬帮我这个蒟蒻找找Hack数据啊【悬1关】 评测详情

#include <bits/stdc++.h>
using namespace std;

#define int long long

int f2(int a , int b){
	if(a < 0) a = 0;
	if(a == 0) return 0;
	int ret = 1;
	while(b--){
		ret *= a;
	}
	return ret;
}

int f(int x){
	if(x < 10) return 0;
	string sx = to_string(x);
	string sx2 = sx.substr(1);
	int x2 = stoll(sx2);
	int fst = sx[0] - '0';
	int ans = 0;
	for(int i = 1;i + 1 < sx.size();i++){
		ans += min((long long)(sx[i] - '0') , fst - 1) * f2(fst , sx.size() - i - 1);
	}
	ans++;
	for(int i = 1;i < sx2.size();i++){
		for(int j = 0;j <= 9;j++){
			ans += f2(j , i);
		}
	}
	for(int i = 1;i < fst;i++){
		ans += f2(i , sx2.size());
	}
	return ans;
}

signed main(){
	int l , r;
	cin >> l >> r;
	cout << f(r) - f(l - 1) << "\n";
	return 0;
}
2025/1/4 21:48
加载中...