• ACM-ICPC实验室周赛2020.3.3


    唉 发挥的不太好,总是想错想多。。。

    下一周加强训练,争取冲进前十。

    一定要去天梯赛。

    A

    判断一个大数是否能被13整除。

    #include<bits/stdc++.h>
    using namespace std;
    string s;
    long long a[100014];
    int main () {
        cin>>s;
        int len=s.length();
        int flag=0;
        for (int i=0;i<s.length();i++)
            a[i]=s[i]-'0';
        for (int i=0;i<s.length()-1;i++) 
            if (abs(a[i]-a[i+1])>3) flag=1;
        for (len;len>=1;len--) {
            a[len]%=13;
            a[len-1]+=(long long)a[len]*4;    
        } 
        if (a[0]%13==0&&!flag) printf ("Yes");
        else printf ("No");
        return 0;
    }
    View Code

    B

    给出开始排名和结束排名,问有多少人把原本排在自己前面的人超过了。

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=100014;
    int a[maxn],b[maxn];
    int a1[maxn],b1[maxn];
    int N;
    int main () {
        scanf("%d",&N);
        int x;
        for (int i=1;i<=N;i++) 
            scanf("%d",&x),a[x]=i,a1[i]=x;
        for (int i=1;i<=N;i++)
            scanf("%d",&x),b[x]=i,b1[i]=x;
        int ans=0;
        for (int i=1;i<=N;i++) {
            if (b[i]<a[i]) {
                ans++;
                continue;
            }
            if (b[i]>=a[i]) {
                int flag=0;
                for (int j=b[i]+1;j<=N;j++) 
                    if (a[b1[j]]<a[i]) {
                        flag=1;break;
                    } 
                if (flag) ans++;
            }
        }
        printf ("%d",ans);
        
    }
    View Code

    C

    给出一颗树,和三个点,要求输出必须经过三个点的最短路径长度。

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1014;
    const int inf=1e9;
    vector<int> g[maxn]; 
    int visit[maxn];
    int d[maxn][maxn];
    int N;
    void bfs (int s) {
        fill(visit,visit+maxn,0);
        visit[s]=1;
        d[s][s]=0;
        queue<int> q;
        q.push(s);
        while (!q.empty()) {
            int u=q.front();
            q.pop();
            for (int i=0;i<g[u].size();i++) {
                int v=g[u][i];
                if (visit[v]) continue;
                d[s][v]=d[s][u]+1;
                q.push(v);
                visit[v]=1;
            }
        }
    }
    int main () {
        scanf("%d",&N);
        int x,y;
        for (int i=1;i<=N-1;i++) {
            scanf("%d%d",&x,&y);
            g[x].push_back(y);
            g[y].push_back(x);
        }
        int a,b,c;
        int M;
        scanf("%d",&M);
        for (int i=1;i<=N;i++) bfs(i);
        for (int i=0;i<M;i++) {
            scanf("%d%d%d",&a,&b,&c);
            int x=min(d[a][b]+d[b][c],min(d[a][b]+d[a][c],d[a][c]+d[b][c]));
            printf ("%d
    ",x);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    Medium | LeetCode 179. 最大数 | 排序
    Medium | LeetCode 448. 找到所有数组中消失的数字 | 原地Hash
    Medium | LeetCode 78. 子集 | 回溯
    Medium | LeetCode 39. 组合总和 | 回溯
    js上传头像进行图片压缩
    js 点击按钮复制文本
    eclipse下载
    gulp打包修改配置文件
    vuejs之过滤器(filters)的使用
    关于layui弹出层关闭之后,弹出的dom显示问题
  • 原文地址:https://www.cnblogs.com/zhanglichen/p/12405489.html
Copyright © 2020-2023  润新知