标签:style blog http color os io 数据 2014
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4956(它放在题库后面的格式有一点点问题啦,所以就把它粘下来,方便读者观看)
题目意思:给出一个范围 [l, r] 你, 问是否能从中找到一个数证明 Hanamichi’s solution 的解法是错的。
Hanamichi’s solution 是这样的:
对于某个数 X,从右往左数它的每一位数字(假设第一位是从0开始数)。它 偶数位的数字之和 - 奇数位的数字之和 = 3 而且 这个 X 满足函数 X mod 11 = 3 。
一开始见数据范围达到1e18 就刹时吓坏了,怕暴力超时,于是比赛的时候,就不敢做咯~~~~点知,原来可以啦,真奇怪= =
一个个枚举即可,题目有点长,意思有点难明,关键是太多干扰的地方,例如这句:
纯粹是吓人滴 = =
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 6 bool check(__int64 x) 7 { 8 int sum[2] = {0, 0}; 9 __int64 t = x; 10 int p = 0; 11 while (x) 12 { 13 sum[p] += x % 10; 14 x /= 10; 15 p = !p; 16 } 17 if (sum[0]-sum[1] != 3 && t % 11 == 3) 18 return false; 19 if (sum[0]-sum[1] == 3 && t % 11 != 3) 20 return false; 21 return true; 22 } 23 24 int main() 25 { 26 __int64 l, r; 27 int T; 28 while (scanf("%d", &T) != EOF) 29 { 30 while (T--) 31 { 32 scanf("%I64d%I64d", &l, &r); 33 34 __int64 tmp = l; 35 while (tmp <= r) 36 { 37 if (!check(tmp)) 38 break; 39 tmp++; 40 } 41 if (tmp > r) 42 printf("-1\n"); 43 else 44 printf("%I64d\n", tmp); 45 } 46 } 47 return 0; 48 }
hdu 4956 Poor Hanamichi 解题报告,布布扣,bubuko.com
标签:style blog http color os io 数据 2014
原文地址:http://www.cnblogs.com/windysai/p/3918366.html