暑假前挑战赛1—— A,B题解

A - A^B Mod C

给出3个正整数A B C,求A^B Mod C。

例如,3 5 8,3^5 Mod 8 = 3。

Input

3个正整数A B C,中间用空格分隔。(1 <= A,B,C <= 10^9)

Output

输出计算结果

Sample Input

3 5 8

Sample Output

3
解题思路:
1.题目数据较大,所以计算乘方的时候直接用for或while循环会超时这里我们采用快速幂算法Ps:贴上百度百科快速幂代码
int pow(int a,int b)
{
    int r=1,base=a;
    while(b!=0)
    {
        if(b%2)  r*=base;
        base*=base;
        b/=2;
    }
    return r;
}

2.此题在快速幂过程中即可取模。

附上代码

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;

long long A,B,C;//int应该不行,所以此处采用long long
long long p;

long long ksm(long long a,long long b,long long c)//即a^b Mod c
{
    long long ans=1;
    a=a%c;
    while(b>0)
    {
        if(b%2==1)
        {
            ans=(ans*a)%c;
        }
        b/=2;
        a=(a*a)%c;
    }
    return ans;
}
int main()
{
    scanf("%lld%lld%lld",&A,&B,&C);
    printf("%lld",ksm(A,B,C));
    return 0;
}

B - 2 3 5 7的倍数

给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。 例如N = 10,只有1不是2 3 5 7的倍数。

Input

输入1个数N(1 <= N <= 10^18)。

Outpu

t输出不是2 3 5 7的倍数的数共有多少。

Sample Input

10

Sample Output

1

此题的关键是要去掉重复算出的倍数

如果只求2 3 5 7的倍数那么其中会有重复例如6的倍数10的倍数等

即网上说的容斥原理

引用其理解:

先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理--简而言之,就是对于重叠次数只有奇数次的,我们加上,重叠次数为偶数次的,我们要减去。

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;

long long N;
long long a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;

int main()
{
    scanf("%lld",&N);
    a=N/2;//此处求倍数的个数,不需要for枚举
    b=N/3;
    c=N/5;
    d=N/7;
    e=N/6;
    f=N/10;
    g=N/14;
    h=N/15;
    i=N/21;
    j=N/35;
    k=N/30;
    l=N/42;
    m=N/70;
    n=N/105;
    o=N/210;
    long long cnt=(a+b+c+d)-(e+f+g+h+i+j)+(k+l+m+n)-o;//加单减双
    printf("%lld",N-cnt);
    return 0;
}

原文地址:https://www.cnblogs.com/wanghaixv/p/9128575.html

时间: 2024-10-14 01:08:00

暑假前挑战赛1—— A,B题解的相关文章

【CQ18高一暑假前挑战赛3】标程

[A:LCM] #include<bits/stdc++.h> using namespace std; #define ll long long int main() { ll a,b,g; cin>>a>>b; g=__gcd(a,b); cout<<a/g*b<<endl; return 0; } [B:STL,用set或者queue+map都行] #include<bits/stdc++.h> using namespace

【CQ18高一暑假前挑战赛5】标程

[A:暴力] #include<bits/stdc++.h> using namespace std; const int maxn=100010; int a[maxn],vis[maxn],N,M; int main() { scanf("%d%d",&N,&M); for(int i=1;i<=M;i++){ scanf("%d",&a[i]); vis[a[i]]=1; } for(int i=1;i<=N;i

暑假集训之专题----拓扑排序题解

第一单: Problem A Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 26   Accepted Submission(s) : 5 Problem Description ACM-DIY is a large QQ group where many excellent acmers get together. It is so h

世界上最遥远的距离莫过于:「暑假前」和「暑假后」

相信很多人开学第一天的反应都是这样的:不过一个暑假,怎么一切都变得陌生了? 整个学院,焕然一新,清一色的白墙,换上了各种小清新的鹅黄.淡粉,俨然进入了「童话世界」: 校园里挂满了各种欢迎新生的创意横幅,「防火.防盗.防学长」之类的调侃,随处可见: 隔壁班那个心仪的男孩,依然「耀眼」,只是一个暑假后,他的身边俨然多了一个十指相扣的「她」: 就连同一寝室那些曾经最为亲近的人,也变得倍感「陌生」. 分分钟让人徒添一种感慨:世界上最遥远的距离莫过于:「暑假前」和「暑假后」. 人与人之间的差距,是从假期拉

暑假爆零欢乐赛SRM08题解

这真的是披着CF外衣的OI赛制?我怎么觉得这是披着部分分外衣的CF?果然每逢cf赛制必掉rating,还是得%%%cyc橙名爷++rp.. A题就是找一找序列里有没有两个连在一起的0或1,并且不能向两端延伸(比如--1001--或110--或者--100),找到了之后就可以把整个序列分成这两个数左边,这两个数和他的右边三部分,然后这两个0或1每个都能与左边右边串在一起构成两个相同的子序列,并且这个子序列在原序列中只会出现这两次,满足题目条件.如果没找到,再看看原来的序列里是不是只有两个0或1,那

2014,说说这个燥热的暑假

<2014,说说这个燥热的暑假> 时间:2014/07/15--2014/08/31 地点:淄博市山东理工大学 天气:热,极热,简直热! 说明:暑假结束前就写好了,一直没发,算是暑假总结吧,补发一下! 关于暑假前的计划: 在备考期末的那几天我还在在纠结放假后集训开始前的那几天休息时间到底是去青岛洗海澡呢还是去爬泰山呢,这么热的天还是去青岛吧,海滩上的风景一定很好吧!哼哼..万万没想到的是考完试第二天就被告知全哥23就要去上海实习了,叫我务必在这段时间内完成基本的交接工作.我:.........

2017暑假就看了这几本书

写在前面 高效能人士的七个习惯:精华版.第2版 / (美) 史蒂芬·柯维著 心智时间:意识中的时间因素:the temporal factor in consciousness / (美) 本杰明·里贝特著 谈判力 / (美)罗杰·费希尔,(美)威廉·尤里,(美)布鲁斯·巴顿著影响力心理学 / (美)菲利普·津巴多,(美)迈克尔·利佩著[未完成]来源:长清图书馆 阅读用时:2017.7.7-2017.8.28共52天,书的容量并不是很大,看上去看的挺多,其实并没有,最后一本是很早之前就借了的,觉

玲珑oj 1117 线段树+离线+离散化,laz大法

1117 - RE:从零开始的异世界生活 Time Limit:1s Memory Limit:256MByte Submissions:438Solved:68 DESCRIPTION 486到了异世界,看到了一群可爱的妹子比如蕾姆啊,艾米莉亚啊,拉姆啊,白鲸啊,怠惰啊等等!有一天膜女告诉486说她的能力可能不能再用了,因为膜女在思考一个数据结构题,没心情管486了.486说我来帮你做,膜女说你很棒棒哦! 给一个集合,最开始为空(不是数学上的集合)五个操作: 1.插入x2.把小于x的数变成x3

2014赛季个人总结

虽然现在只是十月份,但是随着鞍山的打铁,我的ACM2014可以说已经结束了 从四月份听说即将到来的校赛开始第一次接触acm,到半年后参加的人生第一场regional,有acm的日子真是挺充实的 刚开始真是什么都不会,最简单的模拟都要敲半天,做xdoj照猫画虎写出了第一个dfs,校赛选拔学会了第一个dp(01背包) 校赛水了个二等奖,不过真是水,省赛选拔资格都没有,那时也没实验室,于是一个人泡图书馆开始刷题 先水了水hdu的acm step,发现没什么意思,在学长的建议下开始做usaco 定下目标