P8431 「WHOI-2」彗星蜜月题目背景看完这首 mv 的前奏之后你应该知道f ff是什么鬼了误。题目描述定义f ( x ) f(x)f(x)是x xx的各位数码翻转以后形成的数。例如f ( 12323 ) 32321 f(12323)32321f(12323)32321f ( 114514 ) 415411 f(114514)415411f(114514)415411f ( 250 ) 52 f(250)52f(250)52给定一个n nn。求最大的k kk使得对于所有处于[ 1 , k ] [1,k][1,k]区间中的正整数m mm有f ( m ) ≤ n f(m)\leq nf(m)≤n。输入格式本题多测第一行一个正整数T TT表示测试点数目。接下来每个测试点一个正整数n nn。输出格式T TT行对应每个测试点的答案。输入输出样例 #1输入 #13 12 991 114514输出 #111 298 100001输入输出样例 #2输入 #22 99999 99998输出 #2100000 99998说明/提示对于测试样例1 11f ( 1 ) 1 , f ( 2 ) 2 , f ( 3 ) 3 , f ( 4 ) 4 , f ( 5 ) 5 , f ( 6 ) 6 , f ( 7 ) 7 , f ( 8 ) 8 , f ( 9 ) 9 , f ( 10 ) 1 , f ( 11 ) 11 , f ( 12 ) 21 f(1)1,f(2)2,f(3)3,f(4)4,f(5)5,f(6)6,f(7)7,f(8)8,f(9)9,f(10)1,f(11)11,f(12)21f(1)1,f(2)2,f(3)3,f(4)4,f(5)5,f(6)6,f(7)7,f(8)8,f(9)9,f(10)1,f(11)11,f(12)21。所以k kk最大为11 1111。本题采用捆绑测试subtask1(10pts) : 1 ≤ T , n ≤ 10 3 \text{subtask1(10pts)}:1\leq T,n\leq10^3subtask1(10pts):1≤T,n≤103。subtask2(30pts) : 1 ≤ n ≤ 10 6 \text{subtask2(30pts)}:1\leq n\leq10^6subtask2(30pts):1≤n≤106。subtask3(40pts) : 1 ≤ n ≤ 10 9 \text{subtask3(40pts)}:1\leq n\leq10^9subtask3(40pts):1≤n≤109。subtask4(20pts) : \text{subtask4(20pts)}:subtask4(20pts):无特殊限制。对于100 % 100\%100%的数据1 ≤ T ≤ 10 5 , 1 ≤ n ≤ 10 18 1\leq T\leq10^5,1\leq n\leq10^{18}1≤T≤105,1≤n≤1018。提示unsigned long long可以储存0 00到18 , 446 , 744 , 073 , 709 , 551 , 615 ( 2 64 − 1 ) 18,446,744,073,709,551,615(2^{64}-1)18,446,744,073,709,551,615(264−1)的自然数。C实现#includeiostream#includecstdio#includecmathusingnamespacestd;typedeflonglongLL;intLEN(LL n){intcnt0;while(n)cnt,n/10;returncnt;}LLf(LL n){LL ans0;while(n)ansans*10(n%10),n/10;returnans;}voidsolve(){LL n,minn9e18;scanf(%lld,n);intlenLEN(n);for(inti0;ilen;i){LL ppow(10,(LL)i);//第 i 位加一。LL nin-(n%p)p;//后面的位全部变成 0。if(ni%100)ni;// 最后一位变成 1。minnmin(minn,f(ni));}printf(%lld\n,minn-1);}intmain(){intT;scanf(%d,T);while(T--)solve();return0;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容