首页 > 编程语言 >2024/1/23 算法笔记

2024/1/23 算法笔记

时间:2024-01-23 23:55:27浏览次数:38  
标签:set 进制 23 int LL 2024 算法 余数 除数

1. 负进制数

[P1017 NOIP2000 提高组] 进制转换 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

所谓负进制数,就是进制数为负数的一种实数表示法。

例如,-15(十进制)相当于110001(-2进制),并且它可以被表示为2的幂级数的和数:
110001=1(-2)5+1*(-2)4+0(-2)3+0*(-2)2+0(-2)^1 +1(-2)^0

我们对于给定的一个数,求它关于进制x(一个负数)的进制表示,要怎么做呢?

首先,应该了解如何将10进制转换成n进制,这里需要用短除法。将10进制数取余n,其商再继续取余直到该数被除至0,依次得到的余数倒序即为该10进制数的n进制表示。如果将10进制转换为-n进制呢?方法基本一样,只不过要注意的是要使其余数>=0,绝对不能为负数。举个例子,将10进制数15转换成-2进制:

  • -15 - 8*(-2) = 1
  • 8 - (-4)*(-2)=0
  • -4-2*(-2)=0
  • 2-(-1)*(-2)=0
  • -1-1*(-2)=1
  • 1不用做处理直接多一位1 然后被除数=0 因为进制是负数

我们要保证 这个 除数 × 商 + 余数 = 被除数

在C++里,-15%-2=-1,-15/-2=7,而7*-2+(-1)=-15

但是因为我们是不断取余数倒序为转换结果,所以余数不能出现负数。

所以我们只需要将商+1,余数-除数即可,因为余数(绝对值)一定小于除数,所以这样就可以将余数装换为正数

证明:(商+1)×除数+(余数-除数)= 商×除数+除数+余数-除数=商×除数+余数=被除数

我们将mod改写一下,其他部分和正数进制转化是相同的。

int MOD(int &n,int a,int b){
    if(a<0 && a%b!=0){
        n = a/b+1; //这个n其实是每一次运算的商,下一次运算的被除数。
        return a-(a/b+1)*b;
    }
    n=a/b;
    return a%b;
}

2. set 和 unordered_set

P3913 车的攻击 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

方法简单,但是当你使用set去重的时候,要注意:

如果你的方法不需要用到set的自动排序的功能,推荐使用unordered_set,具体表现是插入速度更快。

有时候就卡你一手tle。所以还是要拓宽知识面。

然后该开longlong的时候要看清楚数据范围。不要忘记。

void solve(){
    LL n,k;
    cin>>n>>k;
    unordered_set<LL>s1,s2;
    for(int i=1;i<=k;i++){
        LL x,y;
        cin>>x>>y;
        s1.insert(x);
        s2.insert(y);        
    }
    int len1 = s1.size();
    int len2 = s2.size();

    cout<<1LL*len1*n + 1LL*abs(n-len1)*len2;
}

3. 其他

3.1 最大公约数和最小公倍数问题

[P1029 NOIP2001 普及组] 最大公约数和最小公倍数问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

tips:如果你想要使用标准库中的gcd :std::__gcd(int a,int b); //如果你要longlong类型的就把参数类型改一下。

LL gcd(LL a,LL b){  //最好记一下
    return b?gcd(b,a%b):a;
}

void solve(){
    int x,y;
    cin>>x>>y;
    LL tmp = x*y;
    int sum=0;
    int cnt=0;
    for(LL i=1;i*i<=tmp;i++){
        if(tmp % i ==0){
            LL j = tmp / i;
            if(gcd(i,j)==x) {
                // debug(i)debug(j)
                sum++;
                if(i==j) cnt++;
            }
            
        }
        else continue;
    }
    cout<<1LL*sum*2-cnt<<endl;
}

dont forget the LL

今天内容不是很多,因为打的都是宝宝巴士
总之有收获的我都会发。

标签:set,进制,23,int,LL,2024,算法,余数,除数
From: https://www.cnblogs.com/Akimizuss101/p/17983688

相关文章

  • 大语言模型的架构及其训练(目标函数和优化算法)
    先占坑24号早上起来补大模型的架构 大模型的训练模型训练=目标函数+优化算法可用任何模型将token序列映射到上下文嵌入中一、目标函数1.Decoder-only模型①映射到上下文嵌入②用嵌入矩阵获得每个token得分③指数化、归一化得预测分布用负对数最大似然作为目标函数2.Encoder-o......
  • 2023 的一些总结
    2023的一些总结李宗盛在山丘开头里面写道,"想说却还没说的还很多攒着是因为想写成歌"。同样的,在印象中在2023好像做了很多东西,接触了很多技术,但是一直没有整理,攒着攒着就到年底了。细细思考了一下,有两个板块是今年主要发力的点对网络的探索对业务代码优化的思考对网络......
  • 2024-01-23 闲话。
    总结一下最近想到的事情:闲话Novelty制胜。有乐子就能满足人们猎奇的需求,“山朗润起来了,水涨起来了,太阳的脸红起来了。”这种内容没有流量效应,受众太少production,平铺直叙感觉也没什么意思,最近在bilibili上看到一个叫做Zhao_Song的up主,满足了我对“我能解答的”谜语的......
  • 2024年是消费年,那保障和促进的措施就真的做到了吗?
    1、促消费,就要保护消费者吧。像那种宰客行为,要坚决打击吧。还是中国目前最大的消费问题,可是蛮触目惊心的。烂尾楼问题也没解决。有人说是企业行为,我觉得恰恰不是,预售制是谁制定的???预售制也没保护消费者呀。还有,国家就应该立刻马上立法,要么取消预售制,要么如果烂尾了,买房(消费者)就不......
  • 痞子衡嵌入式:我拿到了2023年度电子星球(eestar)年度黑马作者
    今天收到了「电源网旗下电子星球」颁发的2023年度黑马作者奖牌,这是痞子衡继2019年和与非网合作后的第二个媒体平台颁发的奖项。这个奖牌做得很有质感,拿在手里沉甸甸的。此外与奖牌配套的还有一本精选作者们的文章合辑而成的VIP技术年刊,仪式感直接拉满了。与电子星球的缘分......
  • Binary tree traversal-- beadth-first and depth-first【1月23日学习笔记】
    点击查看代码//Binarytreetraversal--beadth-firstanddepth-first#include<iostream>#include<queue>//STLusingnamespacestd;structnode{intdata;node*left,*right;};node*getnewnode(intx){node*temp=newnode;temp-&......
  • 1.23
    模拟赛题根本不想调啊。但是真的是模拟赛题吗,显然它不应当按照模拟赛来看,但是只有这样才会让我好受些。实力本来就不足,现在我就是在为之前的颓废而买单,错误的心态,过慢的进度,大量的颓废以及贺题解的恶习终于回报了我,所有小题都狠狠地挂分,当然最后的提高难度的题也是直接暴力,菜就......
  • Romberg 数值积分算法+P3779 题解(马上写完)
    Romberg算法吊打Simpson的且不玄学(没有什么十五倍)的数值积分算法。缺点是过程复杂一点,但是只体现在证明上,代码很短。铺垫算法梯形求积公式公式\[\int_a^bf(x)dx\approx\frac{(f(a)+f(b))(b-a)}2\\\text{令}(1)=\frac{(f(a)+f(b))(b-a)}2\]计算梯形求积公式的误差......
  • 1.23闲话
    推歌:光与影的对白/洛天依byCopy快期末考试了,所以来机房的只有我了但是我说的不对,今天其实有不少来的但是晚三之前就走光了找到了几张存起来的夏虫图,但是貌似有点小?唯一一张大图放末尾了阿$\infty$阿$\infty$我对贪心策略大幅改进,现在可以过掉很多数据了,感觉再改一下就......
  • UofTCTF 2024 比赛记录
    这次的题目挺有意思,难度适中,*开头的代表未做出,简单记录一下解题笔记。IntroductionGeneralInformation题目TheflagformatforallchallengesisUofTCTF{...},caseinsensitive.Ifyouareexperiencingtechnicaldifficultieswithchallenges,supportisonour......