找规律(约瑟夫的数论问题,uva 1363)

这篇博客鼓励读者在面对非模板题时,通过扎实的基础知识和深入思考来解决问题。作者以UVA 1363题为例,说明如何通过找规律而非依赖特定算法来优化时间复杂度。指出错误往往源于编程细节和边界条件的忽视,建议多加分析思考,以提高解题能力。
摘要由CSDN通过智能技术生成

感觉你现在的知识储备还可以了,问题在于如何做题。

很多时候题目都不是模板题,不是说你一定要知道某个经典算法才能做的。大部分时候都是依靠着基础的算法,自己创造出一个解决办法。这就需要对基础知识掌握得十分牢固以及大量的做题思考后才能达到。希望自己以后做题要多乱搞,或者说多分析思考,而不是总想着套什么算法。


找规律就是一种乱搞,能优化时间复杂度。至于怎么想到答案,我只能说,就认真想就好了。认真想你就会分析,然后能找到一些突破口进而解决问题。突破口其实就那么点,线索也就那么点,所以大部分人思考后的解法都是差不多的。


与其说是找规律,不如说是乱搞,或者说想尽办法去解决问题。


一个一个加会超时,那就尝试找到一段一段的规律,然后一整段加起来。


一开始WA还以为是要高精度呢,事实上只是自己在编程时有一些细节漏掉了。


在一些结束的边界情况有所遗漏。


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

ll n,k;

int main()
{
    while(scanf("%lld %lld",&n,&k)!=EOF)
    {
        ll i=1;
        ll ans=0;
        while(1)
        {
            ll p=k/i;
            if(p==0)
            {
               
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值