牛客IOI周赛19-普及组

   日期:2020-10-09     浏览:87    评论:0    
核心提示:A(sort排序),B(思维),C

Powered by:AB_IN 局外人

A 小y的考试

元组组成的列表 s o r t sort sort。用个 l a m b d a lambda lambda即可。
按照长度排序:

  • 如果最大的和次大的不相等,那么输出最大的。
  • 如果最小的和次小的不相等,那么输出最小的。
  • 否则输出 C C C
for _ in range(int(input())):
    a=input()
    b=input()
    c=input()
    d=input()
    lst=[(len(a),"A"),(len(b),"B"),(len(c),"C"),(len(d),"D")]
    lst.sort(key=lambda x:x[0])
    if lst[0][0]!=lst[1][0]:
        print(lst[0][1])
    elif lst[3][0]!=lst[2][0]:
        print(lst[3][1])
    else:
        print("C")

B 小y的序列

首先先把基本表打出来,从 1 1 1开始到 n n n 0 , 1 , 3 , 6 , 10 , 15 … … 0,1,3,6,10,15…… 0,1,3,6,10,15

将输入的列表分别减去模板,差值作为下标利用 m a p map map进行自增,同一特质的序列差值都是一样的,所以看差值自增最多的,就是改最少的序列

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e8+10;
ll n,b[N],x,ans;
unordered_map <ll, ll> a;
int main()
{ 
    cin>>n;
    for(int i=1;i<=n;i++) b[i]=b[i-1]+i-1;
    for(int i=1;i<=n;i++){ 
        cin>>x;
        a[x-b[i]]++;
        ans=max(ans,a[x-b[i]]);
    }
    cout<<n-ans<<endl;
}

C 小y的旅行

先把两个都是 > k \gt k >k的边用并查集连起来,再把含有 k ≤ k\le k的边进行判断,如果这俩本身连起来了,那么这俩就得拆开, a n s + + ans++ ans++。如果没有连起来,就让他们连起来。

#include<bits/stdc++.h>
using namespace std;
const int N=2e6+10;
int n,m,k,ans;
int fa[N],a[N],b[N];

inline void finit ()
{ 
	for(int i=1;i<=n;i++) fa[i]=i;
}
inline int find(int x) 
{ 
    if(fa[x] == x) return x;
    return fa[x] = find(fa[x]);
}
inline void join(int a,int b)
{ 
    int a1=find(a),b1=find(b);
    if(a1!=b1) fa[a1]=b1;
}

int main()
{ 
    cin>>n>>m>>k;
    finit();
    for(int i=1;i<=m;i++){ 
        cin>>a[i]>>b[i];
        if(a[i]>k && b[i]>k) join(a[i],b[i]);
    }
    for(int i=1;i<=m;i++){ 
        if(a[i]<=k || b[i]<=k){ 
            int u=find(a[i]);
            int v=find(b[i]);
            if (u==v) ans++;
            fa[u]=v;
        }
    }
    cout<<ans<<endl;
    return 0;
}

完结。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服