标签:
题意:给l和r,问l和r里有多少个数的每位数字都不同。
解法:打个表用r的减l-1的即可。
代码:
#include<stdio.h> #include<iostream> #include<algorithm> #include<string> #include<string.h> #include<math.h> #include<limits.h> #include<time.h> #include<stdlib.h> #include<map> #include<queue> #include<set> #include<stack> #include<vector> #define LL long long using namespace std; bool judge(int x) { int cnt[11] = {0}; while(x) { cnt[x % 10]++; x /= 10; } for(int i = 0; i < 10; i++) if(cnt[i] > 1) return false; return true; } int num[100005] = {0}; void init() { for(int i = 1; i < 100005; i++) { if(judge(i)) num[i] = num[i - 1] + 1; else num[i] = num[i - 1]; } } int main() { init(); int T; while(~scanf("%d", &T)) { while(T--) { int l, r; scanf("%d%d", &l, &r); printf("%d\n", num[r] - num[l - 1]); } } return 0; }
标签:
原文地址:http://www.cnblogs.com/Apro/p/4695621.html