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

AtCoder Beginner Contest 296 A-E

时间:2023-04-02 18:45:12浏览次数:37  
标签:AtCoder Beginner int void stk read low ans 296

AtCoder Beginner Contest 296

A - Alternately

 1 void solve(){
 2     int n=read();
 3     string s;
 4     cin>>s;
 5     int ans=1;
 6     for(int i=0;i<s.size()-1;i++){
 7         if(s[i]==s[i+1])ans=0;
 8     }
 9     puts(ans>0?"Yes":"No");
10 }

 

B - Chessboard

void solve(){
    int n=8,ansx,ansy;
    for(int i=1;i<=8;i++){
        for(int j=1;j<=8;j++){
            char a;
            cin>>a;
            if(a=='*'){
                ansx=i;
                ansy=j;
            }
        }
    }
    char ans;
    ans=ansy-1+'a';
    cout<<ans<<9-ansx<<endl;
}

 

C - Gap Existence

#define int long long
map<int,int>mp;
void solve(){
    int n=read(),k=read(),ans=0;
    for(int i=1;i<=n;i++){
        int x=read(); mp[x]++;
        if(mp[x+k]||mp[x-k]){
            ans=1;
        }
       
    }
    puts(ans>0?"Yes":"No");
}

 

D - M<=ab

比赛的时候一直尝试增大m找符合的因数 然后tle

赛后看了题解才知道 可以遍历1-1e6的因数 找每个因数第一个大于等于m的值 记录最小的就可以得到答案

 1 void solve(){
 2     int n=read(),m=read();
 3     int ans=INF;
 4     for(int i=1;i<=min(n,1000000ll);i++){
 5         int j=m/i;
 6         if(i*j<m){
 7             j++;
 8         }
 9         if(j<=n){
10             ans=min(ans,i*j);
11         }
12     }
13     if(ans==INF){
14         cout<<-1<<"\n";
15     }else cout<<ans<<"\n";
16 }

 

E - Transition Game

知道是求强连通 但是奈何本人太菜 只能赛后补知识点了/悲

int h[N], e[N], ne[N], idx, a[N];
int dfn[N], low[N], timestamp;
int stk[N], top;
bool in_stk[N];
int id[N], scc_cnt, siz[N];
void add(int a, int b){
    e[idx] = b, ne[idx] = h[a], h[a] = idx ++;
}
void tarjan(int u){
    dfn[u] = low[u] = ++ timestamp;
    stk[ ++ top] = u, in_stk[u] = true;
    for (int i = h[u]; ~i; i = ne[i]){
        int j = e[i];
        if (!dfn[j]){
            tarjan(j);
            low[u] = min(low[u], low[j]);
            }
            else if (in_stk[j])
                low[u] = min(low[u], dfn[j]);
        }
        if (dfn[u] == low[u]){
            ++ scc_cnt;
            int y;
            do {
                y = stk[top -- ];
                in_stk[y] = false;
                id[y] = scc_cnt;
                siz[scc_cnt]++;
            } while (y != u);
        }
    }
void solve(){
    idx = 0;
    memset(h, -1, sizeof h);
    int n=read(),ans=0;
    for(int i=1;i<=n;i++){
        a[i]=read();
        if(i!=a[i]){
            add(i,a[i]);
        }
    }
    for(int i=1;i<=n;i++){
        if(a[i]!=i&&!dfn[i]){
            tarjan(i);
        }
    }
    for(int i=1;i<=n;i++){
        if(a[i]==i||siz[id[i]]>1){
            ans++;
        }
    }
    cout<<ans<<endl;
}

 

标签:AtCoder,Beginner,int,void,stk,read,low,ans,296
From: https://www.cnblogs.com/edgrass/p/17281000.html

相关文章

  • AtCoder Beginner Contest 296
    AtCoderBeginnerContest296赛时代码A-Alternately//Problem:A-Alternately//Contest:AtCoder-AtCoderBeginnerContest296//URL:https://atcoder.jp/contests/abc296/tasks/abc296_a//MemoryLimit:1024MB//TimeLimit:2000ms////PoweredbyCP......
  • AtCoder Beginner Contest 153
    AtCoderBeginnerContest153https://atcoder.jp/contests/abc153这套比较简单。E-CrestedIbisvsMonster完全背包#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constintN=1e3+5,M=1e4+5;lln,m,a[N],b[N],f[M*2],mx;int......
  • AtCoder Beginner Contest 296
    DM<=ab枚举。复杂度\(O(\sqrt{m})\)。C++Code#include"bits/stdc++.h"usingnamespacestd;usingi64=longlong;intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);i64n,m;cin>>n>>m;if(m&......
  • AtCoder Beginner Contest 296 ABCD
    https://atcoder.jp/contests/abc296A-Alternately#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<LL,LL>PII;constLLMAXN=1e18,MINN=-MAXN,INF=0x3f3f3f3f;constLLN=2e6+10,M=3023;constLLmod=100000007;cons......
  • AtCoder Beginner Contest 152
    AtCoderBeginnerContest152https://atcoder.jp/contests/abc152F我看了半天,编码方式那里还算是感觉比较玄乎,这题确实妙。D-Handstand2只需记录两端数字即可,不要想太复杂。#include<bits/stdc++.h>#definelllonglongusingnamespacestd;lln,sum,a[10][10];......
  • AtCoder Beginner Contest 295
    题解报告基本的一些理解和问题都在注释中A:ProbablyEnglish//水题#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<unordered_map>usingnamespacestd;constintmaxn=1e3+10;strings[......
  • AtCoder Beginner Contest 246
    AtCoderBeginnerContest246A(思维)A这个题大意是告诉你一个矩形的三个点,求第四个点,并且已知每条边都是平行于\(x\)轴或者是\(y\)轴的,那么我们可以确定,\(x\)坐标只有两......
  • AtCoder Beginner Contest 295
    A-ProbablyEnglish#include<bits/stdc++.h>usingnamespacestd;intread(){intx=0,f=1,ch=getchar();while((ch<'0'||ch>'9')&&ch......
  • Coinc1dens's lessons for cryptography beginner
    Coinc1dens'slessonsforcryptographybeginner10分题懒得写,赛后浅写一下(有些还真写不出来)太屑了古典懒得写,相信都写的出来1.childexgcdi即为m在模p情况下的乘法逆......
  • AtCoder Beginner Contest 145
    AtCoderBeginnerContest145https://atcoder.jp/contests/abc145D-Knight乍一看以为是dp,但是数据范围不允许。仔细一看发现,两种操作的次数是固定的,可以枚举出来每......