首页 > 其他分享 >AtCoder Beginner Contest 152 A-E

AtCoder Beginner Contest 152 A-E

时间:2023-05-11 21:02:27浏览次数:35  
标签:AtCoder 152 Beginner int res void read solve dp

AtCoder Beginner Contest 152

A - AC or WA

void solve(){
    int n=read(),m=read();
    puts(n==m?"Yes":"No");
}

B - Comparing Strings

void solve(){
    int n=read(),m=read();
    if(m<n)swap(n,m);
    for(int i=1;i<=m;i++){
        cout<<n;
    }
}

C - Low Elements

int a[N];
void solve(){
    int n=read();
    for(int i=1;i<=n;i++){
        a[i]=read();
    }
    int minn=inf,ans=0;
    for(int i=1;i<=n;i++){
        if(a[i]<minn){
            minn=a[i];
            ans++;
        }
    }
    cout<<ans<<'\n';
}

D - Handstand 2

对每个数取头尾构成dp数组 然后穷举 (dp真好用)

int dp[20][20];
void solve(){
    int n=read(),ans=0;
    for(int i=1;i<=n;i++){
        int y=i%10;
        int x=i;
        while(x>=10){
            x/=10;
        }
        dp[x][y]++;
    }
    for(int i=0;i<=9;i++){
        for(int j=0;j<=9;j++){
            ans+=dp[i][j]*dp[j][i];
        }
    }
    cout<<ans<<'\n';
}

E - Flatten

map<int,int>mp;
int a[N];
int qmi(int m, int k, int p){
    int res = 1 % p, t = m;
    while (k){
        if (k&1) res = res * t % p;
        t = t * t % p;
        k >>= 1;
    }
    return res;
}
void divide(int x){
    for (int i = 2; i <= x / i; i ++ )
        if (x % i == 0){
            int s = 0;
            while (x % i == 0) x /= i, s ++ ;
            mp[i]=max(mp[i],s);
        }
    if (x > 1) mp[x]=max(mp[x],1ll);
}
void solve(){
    int n=read(),ans=0;
    for(int i=1;i<=n;i++){
        a[i]=read();
        divide(a[i]);
        ans+=qmi(a[i],mod-2,mod);
        ans%mod;
    }
    int j=1;
    for(auto i=mp.begin();i!=mp.end();i++){
        int x=qmi(i->first,i->second,mod);
        ans*=x;
        ans%=mod;
    }
    cout<<ans<<'\n';
}

标签:AtCoder,152,Beginner,int,res,void,read,solve,dp
From: https://www.cnblogs.com/edgrass/p/17392215.html

相关文章

  • AtCoder 好题选做
    AtCoderRegularContest091-F-StrangeNimhttps://atcoder.jp/contests/arc091/tasks/arc091_d清北学堂讲的一道题,我艹感觉这结论很难猜啊。做这种题一定是先写爆搜打表啊,先写了一个博弈论求SG函数:然后发现了一个规律:\(\text{SG}(nk,k)=n\)。还有一个规律:当\(n<k......
  • AtCoder Beginner Contest 298 题解
    题面:https://atcoder.jp/contests/abc298/tasks_printA-JobInterview直接模拟即可。#include<bits/stdc++.h>#include<ext/pb_ds/assoc_container.hpp>#include<ext/pb_ds/tree_policy.hpp>#include<ext/pb_ds/hash_policy.hpp>usingnamespace......
  • AtCoder DP系列刷题记录
    直面自己的弱点。AFrog1简单线性\(\text{dp}\),令\(dp_i\)为跳到第\(i\)块石头的最小花费,易得:\[dp_i+=\min(|a_i-a_{i-1}|,|a_i-a_{i-2}|)\]BFrog2很快就写完了,但是一直调了十分钟,耻辱啊。如果反着跳,第\(i\)根木桩只能从第\(i+1\)或\(i+2\)木桩上跳到,则有:\[d......
  • CF1527E, Partition Game
    题意定义一个数组的\(cost\)为数组中出现过的每个元素的最后一个位置减第一个位置。\[cost(array)=\sum_{x\inset(array)}last(x)-first(x)\]给定一个\(N\)个数的数组\(A\),将其分为\(K\)段,求最小\(cost\)。题解设\(dp_{i,j}\)为前\(i\)个数分为\(j\)段的......
  • AtCoder Beginner Contest 234 Ex Enumerate Pairs
    洛谷传送门AtCoder传送门把每个点分到\((\left\lfloor\frac{x}{K}\right\rfloor,\left\lfloor\frac{y}{K}\right\rfloor)\)的正方形内,枚举相邻正方形,计入答案。正确性显然。复杂度证明就是所有每个正方形内距离为\(K\)的点对下界为\(\Omega(n^2)\)。考虑分成四个边长为......
  • AtCoder Beginner Contest 221 F Diameter set
    洛谷传送门AtCoder传送门显然,选出的每两个点都要组成一条直径。还是显然,每条直径的重合部分只可能是一个点或一条边。简单证一下,没有重合显然不可能,重合超过一个点或一条边,直径会更长。进一步发现,设直径点数为\(x\),如果\(x\nmid2\),重合部分是一个点,否则重合部分是一条边......
  • AtCoder Beginner Contest 206(Sponsored by Panasonic)(E,F)
    AtCoderBeginnerContest206(SponsoredbyPanasonic)(E,F)E(容斥,gcd)E这个题大意就是给出一个\(l\)和一个\(r\),寻找满足以下条件的一对数\((x,y)\)的数量\(gcd(x,y)!=1\)\(gcd!=x\)并且\(gcd!=y\)(从这一句我们可以知道\(x\)不可能被\(y\)整除)那么我们可以设\(x\)是\(t\)的倍......
  • AtCoder Beginner Contest 217 G Groups
    洛谷传送门AtCoder传送门不妨钦定组之间的顺序是最小值越小的组越靠前,这样可以给每个组按顺序编号。设\(f_{i,j}\)为考虑了模\(m\)后\(<i\)的数,目前有\(j\)个非空组的方案数。转移就是枚举模\(m=i-1\)的数新开了\(k\)个组,设\(\len\)的数中模\(m=i-1......
  • [AtCoder-AT_ABC070C]题解(C++)
    PartIPreface原题目(Luogu)原题目(AtCoder)PartIISketch给定一个正整数\(N(1\leqN\leq100)\),表示时钟数量。接下来\(N\)行,每行一个正整数\(T_i(1\leqT_i\leq10^{18})\),表示每个时钟旋转\(T_i\)秒后还会回到原来的地方。求出在多少秒之后,所有时钟还会同时......
  • [AtCoder-AT_ABC070_A]题解(C++)
    PartIPreface原题目(Luogu)原题目(AtCoder)PartIISketch给定一个正整数\(n(100\leqn\leq999)\)。求\(n\)是否是一个回文数,是输出\(\texttt{Yes}\),不是输出\(\texttt{No}\)。PartIIIAnalysisSolve1如果仔细观察的话,应该都能发现,\(n\)一定是一个三位数。......