首页 > 其他分享 >AtCoder Beginner Contest 336

AtCoder Beginner Contest 336

时间:2024-01-15 11:11:40浏览次数:16  
标签:std AtCoder Beginner int 336 long -- solve include

AtCoder Beginner Contest 336

比赛链接

A - Long Loong

思路:

简单的模拟

代码:

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

#define int long long

void solve() {
    int n;
    // cin>>n;
    cin>>n;
    

    cout<<"L";
    for(int i=1;i<=n;i++){
        cout<<"o";
    }
    cout<<"ng"<<endl;
    
}

signed main() {
    int t=1;
    // cin >> t;
    
    while (t--) {
        solve();
    }
    
    return 0;
}

B - CTZ

思路:

就是将十进制数字转换成二进制数字,最后看看二进制数字最后有多少个零就可了

代码:

#include <bits/stdc++.h>
#include<cstdlib> 
using namespace std;

#define int long long
// int l;
std::vector<int> v;
void func(int x){
    while(x){
        v.push_back(x%2);
        x/=2;
    }
}

void solve() {
    int n;
    cin>>n;
    func(n);
    int ans=0;
    
    for(auto x:v){
        if(x==0){
            ans++;
        }
        else{
            cout<<ans<<endl;
            return ;

        }
        
    }

    
}

signed main() {
    int t=1;
    // cin >> t;
    
    while (t--) {
        solve();
    }
    
    return 0;
}

C - Even Digits

思路:

因为只能是由偶数数字组成的,偶数数字又只有0 2 4 6 8,但是除一位数字以外最高位不能是0
这里就可以把他看成是一个五进制数,因为这里我们只有五个数,然后我们将给定的n转换成五进制数,最后每一位乘2就可以了,但是需要注意一下特殊情况就行

代码:

#include <bits/stdc++.h>
#include<cstdlib> 
using namespace std;

#define int long long


void solve() {
    int n;
    cin>>n;
    std::vector<int > v;
    if(n==1){
        cout<<0<<endl;
        return ;
    }

    n--;
    
    while(n){
        v.emplace_back(n%5);
        n/=5;

    }
    for(int i=v.size()-1;i>=0;i--){
        cout<<v[i]*2;

    }
    
    
}

signed main() {
    int t=1;
    // cin >> t;
    
    while (t--) {
        solve();
    }
    
    return 0;
}

D - Pyramid

思路:

正反各算一下每个位置的前后缀的最大有效长度,然后取最小值的最大值

代码:

#include <bits/stdc++.h>

using namespace std;
#define int long long

void solve() {
    int n;
    cin>>n;

    std::vector<int> a(n+1);
    std::vector<int> l(n+1),r(n+1);
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n;i++){
        l[i]=r[i]=0;

    }
    for(int i=1;i<=n;i++){
        l[i]=min(a[i],l[i-1]+1);

    }
    for(int i=n;i>=1;i--){
        r[i]=min(a[i],r[i+1]+1);

    }
    int ans=0;
    for(int i=1;i<=n;i++){
        ans=max(ans,min(l[i],r[i]));

    }
    cout<<ans<<endl;
    
}

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    int t;
    t = 1;
    // cin>>t;
    
    while(t--) {
        solve();
    }
    
    return 0;
}

标签:std,AtCoder,Beginner,int,336,long,--,solve,include
From: https://www.cnblogs.com/du463/p/17964984

相关文章

  • AtCoder Grand Contest 051 D C4
    洛谷传送门AtCoder传送门下文的点\(1,2,3,4\)对应原题面中的\(S,T,U,V\)。直接对无向图欧拉回路计数不太好做。考虑给边定向。枚举有\(i\)条边是从\(1\)到\(2\)的。那么\(2\to1\)有\(a-i\)条边。由于这个图必须满足每个点的入度等于出度,设\(j\)条\(......
  • ABC336
    T1:LongLoong模拟代码实现n=int(input())print('L'+'o'*n+'ng')T2:CTZ__builtin_ctz或countr_zero代码实现#include<bits/stdc++.h>usingnamespacestd;intmain(){unsignedn;cin>>n;cout<......
  • AtCoder Beginner Contest 336
    AtCoderBeginnerContest336A-LongLoong#include<bits/stdc++.h>#defineendl'\n'//#defineintlonglongusingnamespacestd;voidsolve(){ intx; cin>>x; cout<<"L"; while(x--)cout<<"o&q......
  • AtCoder World Tour 2022 B The Greatest Two
    原题面:https://atcoder.jp/contests/wtf22-day2/tasks/wtf22_day2_b题面翻译:一个长度为\(n\)的排列\(p\),每次可以把一个长\(k\)区间的最大与次大值交换,问操作任意次数后可以得到的排列数量对\(998244353\)取模。这题被我搬到了一场多校联考中。在搬到的题面中,我加入了......
  • AtCoder Beginner Contest 335 G Discrete Logarithm Problems
    洛谷传送门AtCoder传送门考虑若我们对于每个\(a_i\)求出来了使得\(g^{b_i}\equiva_i\pmodP\)的\(b_i\)(其中\(g\)为\(P\)的原根),那么\(a_i^k\equiva_j\pmodP\)等价于\(kb_i\equivb_j\pmod{P-1}\),有解的充要条件是\(\gcd(b_i,P-1)\midb_j\)。显然......
  • AtCoder Beginner Contest 335 (Sponsored by Mynavi)
    AtCoderBeginnerContest335(SponsoredbyMynavi)A-2023代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;usingpii=pair<ll,ll>;#definefifirst#definesesecondvoidsolve(){strings;cin>>s;......
  • AtCoder Beginner Contest 335 总结
    ABC335总结A.202<s>3</s>翻译给你一个由小写英文字母和数字组成的字符串\(S\)。\(S\)保证以2023结尾。将\(S\)的最后一个字符改为4,并打印修改后的字符串。分析两种做法:直接把最后一个字符改为4,然后输出。输出前\(n\)个字符后输出4。code#include<bits/stdc......
  • AtCoder Beginner Contest 295
    B-Bombsd难度:⭐题目大意给定一个n*m的网格,其中'.'表示空白,'#'表示障碍物,数字x表示此处有一个炸弹,会将附近曼哈顿距离小于等于x的格子都变成空白;问所有炸弹爆炸后的网格;解题思路数据范围很小,暴力即可;神秘代码#include<bits/stdc++.h>#definei......
  • AtCoder Regular Contest 167 C MST on Line++
    洛谷传送门AtCoder传送门我是傻逼。很平凡的一个计数。但是不会啊。怎么会是呢。考虑Kruskal求解MSTonLine问题。我们可以想到统计边权\(=a_i\)的出现次数。然后又可以容斥转化成统计边权\(\lea_i\)的出现次数,设其为\(f_i\)。考虑求\(f_i\)。就相当于把\(p\)......
  • AtCoder Beginner Contest 334
    B-ChristmasTrees难度:⭐⭐题目大意小莫从坐标轴的某个位置n种了一棵树,并且每隔m米就再种一棵树,注意是双向的,两边都种;给定一个区间,问这个区间中有多少棵树;解题思路我们可以让区间的边界都减去n,这样区间中的树都位于坐标km上;然后我们把边界都平移到正......