2019牛客暑期多校训练营 题解

本文精选了多场算法竞赛的题目解析,涵盖中国剩余定理、构造、分块、前缀和、单调栈、并查集、线段树、数位DP等高级算法,提供了详细的解题思路和代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【第十场】

B:Coffee Chicken(思维)

D:Han Xin and His Troops(中国剩余定理 or 构造)

E:Hilbert Sort(分块+找规律)

H:Stammering Chemists(签到题)

题解:根据每个点所拥有的边的数目可以区分直接三种,然后根据拥有三条边的点的邻点所拥有的边只有一条的数目是1还是2区分剩下的两种。

【第九场】

A:The power of Fibonacci(中国剩余定理)

B:Quadratic equation(二次剩余)

D:Knapsack Cryptosystem(折半枚举)

E:All men are brothers(并查集+组合数学)

【第八场】

A:All-one Matrices(前缀和+单调栈)

B:Beauty Values

题解:枚举每个数字,求原序列有多少个子区间包含至少一个该数字,最后把答案累加起来即可。 

    ll ans=0;
    for(int i=1;i<=n;i++){
        int x; scanf("%d",&x);
        ans+=1ll*(i-last[x])*(n-i+1);
        last[x]=i;
    }
    printf("%lld\n",ans);

C:CDMA(构造)

E:Explorer(线段树+按秩优化并查集)

G:Gemstones

题解:用栈存储元素,每次比较当前是否有连续三个相同的元素,如果有就删除,最后输出栈的大小。

【第七场】

A:String (暴力水题)

题解:暴力+贪心。从左到右依次取出最长的01串判断是否为完美串,是的话更新下一次判断开始位置,不是的话长度减一继续判断。

B:Irreducible Polynomial

题解:数学。原题poj2126。

C:Governing sand(离散化+树状数组+二分)

D:Number (傻逼题)

题解:如果n小于给定的p的位数那么输出T_T,否则输出p+(n-p的位数)个0即可。

E:Find the median(离散化区间+树状数组+二分)

H:Pair(数位dp)

J:A+B problem (傻逼签到题)

题解:按题意模拟即可。

【第六场】

A:Garbage Classification

题意:按题意模拟即可。

B:Shorten IPv6 Address(贪心)

D:Move(multiset+枚举)

J:Upgrading Technology(贪心+思维)

【第五场】

G:subsequence 1(递推)

H:subsequence 2(拓扑)

【第四场】

J:free(分层图最短路裸题)

D:triples I(按位或运算)

【第三场】

F:Planting Trees(单调队列)

【第二场】

F:Partition problem(dfs)

H:Second Large Rectangle(前缀和+思维)

【第一场】

A:Equivalent Prefixes(单调栈+思维)

H:Second Large Rectangle(前缀和+思维)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值