原题:http://acm.hdu.edu.cn/showproblem.php?pid=6043
思路:
一开始我以为这题可以纯模拟,发现TLE,于是打表发现有规律,和b有关
讲道理,模拟看上去肯定更科学点啊
源代码:
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; typedef long long ll; ll n,k; int main() { int kase=1; while(scanf("%lld%lld",&n,&k)!=EOF) { if(n>=k) printf("Case #%d: %d\n",kase++,k); else { ll a=(k-n)/(n-1); ll b=(k-n)%(n-1); if(a&1) { if(b==0) printf("Case #%d: %d\n",kase++,n-1); else printf("Case #%d: %d\n",kase++,b); } else { if(b==0) printf("Case #%d: %d\n",kase++,n); else printf("Case #%d: %d\n",kase++,b); } } } return 0; }
本文提供了一道来自HDU在线评测系统的题目(PID 6043)的解题思路及源代码实现。该题通过数学方法找到规律解决,而非单纯的模拟方法。文中分享了具体的算法实现,包括如何根据输入参数n和k来计算并输出答案。
208

被折叠的 条评论
为什么被折叠?



