2019年第十届“浪潮杯”山东省大学生ACM程序设计竞赛--解题报告

本文精选了多项算法竞赛题目,包括日历问题、翻转游戏、迷航机器人、图上游戏等,涵盖从简单思维题到复杂算法挑战,提供了解题思路与技巧。

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

目录

A、 calandar 

B、Flipping Game

C、Wandering Robot

D、Game on a Graph

E、BaoBao Loves Reading

F、Stones in the Bucket

G、Heap,

H、Tokens on the Segments

I、Connected Intervals

J 、riangle City

K、Happy Equation

L、Median

M、Sekiro


A、 Calandar 

题意:重定义,一年12个月,每月30天,一周五天,T组数据,给定第一个日期的年月日,是周几,求第二个日期是周几

例:输入:

1

2019 5 12 Monday

2019 5 14

输出:

Wednesday

思路:简单思维,一周只有5天,一月30天,30%5==0,所以月年都能省略,只需要看日就可以了。

B、Flipping Game

题意:

n盏灯,进行k轮,每次转换m盏灯的状态,给出n,k,m,n盏灯的初始状态和最终状态,求有几种方式能够k轮后使得n盏灯的初始状态到最终状态

1<=n,m<=100,1<=m<=n

例:输入:3

3 2 1

001

100

3 1 2

001

100

3 3 2

100

001

输出:

2

1

7

思路:跟某些高斯消元题意特别像,但是并不是,因为灯之间是没有相互关联关系的。感觉是数学组合数的,跟灯的奇偶变换次数有关,不过最后并没有做出来。。

C、Wandering Robot

题意:机器人走路的,初始在原点,给出走的路径字符串,只有上下左右,复制k倍,求路径中距离原点最远的曼哈顿距离

1<=n<=1e5 ,1<=k<=1e9

例:输入:2

3 3

RUL

1 1000000000

D

输出:

4

1000000000

思路:模拟是不可以模拟的,思维题,换个图,就能发现,因为是重复的路径,所以是最远点,要么在第一次,要么是最后一次

D、Game on a Graph

题意:有一个n个点m条边的图,k个人做游戏,分为2队,按顺序依次给图去一条边,若某人去边后,图不连通了,那么这个人所在的队伍就输了,输出赢的队伍

2<=k<=1e5, 2<=n<=1e5, n-1<=m<=1e5

例:输入:

3

5

11212

4 6

0 1

0 2

0 3

1 2

1 3

2 3

5

11121

5 7

0 2

1 3

2 4

0 3

1 2

3 2

4 1

3

121

4 3

0 1

0 2

1 3

输出:

2

1

2

思路:也很简单,算思维题+并查集

n个点的图若要联通,最少要n-1条边,所以若图本身联通,第(m-(n-1)+1)个人所属的队就输了。

注意本身图若不联通,第一个人所属的队就输了。可以用并查集判图连通性,

E、BaoBao Loves Reading

题意:操作系统学的LRU置换法,n次访问,第i次访问a[i]页,求栈容量为1-n的分别的缺页次数

1<=n<=1e5, 1<=ai<=n

例:输入:1

7

4 3 4 2 3 1 4

输出:

7 6 5 4 4 4 4

思路:感觉是个树状数组+单调队列的题,但是最后40min没有A成。,也不知道错在哪里,找不出错误样例,,难过,如果A了就能金了,

F、Stones in the Bucket

题意:n堆石头,给出每堆石头的数量,每次两种操作:要么移除某堆石头的一块石头,要么将某堆的一块石头移到另一堆,求最少操作几次,能使每堆石头的数量一样,
1<=n<=1e5, 0<=ai<=1e9

例:输入:4

3

1 1 0

4

2 2 2 2

3

0 1 4

1

1000000000

输出:

2

0

3

0

思路:签到题,简单思维,就是先求n个数的平均数ave,然后每堆数量>ave的与ave的差的和就是答案。

G、Heap,

难题,pass了。。

H、Tokens on the Segments

题意:n条线段,第i条线段端点为( [li , i] , [ri , i] ),每列最多选择一个整数点(行列编号都是整数的点),求至少有1点被选择的线段最多有几条,

1<=n<=1e5, 1<=li<=ri<=1e9

例:输入:2

3

1 2

1 1

2 3

3

1 2

1 1

2 2

输出:

3

2

思路:贪心+优先队列,贪心的是,线段最多只删除1点,所以删除点的时候,可以直接将点所在的线段删除

若要删除i列的某个点,那么选择的线段一定是包含i列的点,并且r最小的那个线段,这个就可以用优先队列维护。然后依次对列进行考虑是否删点。

I、Connected Intervals

pass

J 、riangle City

pass

K、Happy Equation

a^{x}\equiv x^{a}(mod 2^{p}) 

1<=a<=1e9, 1<=p<=30

L、Median

思路:n个数m组大小关系,求第i个数是否能作为第(n+1)2大的数。

例:输入:2

5 4

1 2

3 2

2 4

2 5

3 2

1 1

2 3

输出:

01000

000

思路:也不是难题,先拓扑判环,然后就两个dfs,分别判断一定比第i 个数大的数有几个,另一个判断一定比第i 个数小的数有几个,然后就有第i个数可能范围了。

M、Sekiro

思路:简单水题,直接模拟循环(+1)/2,变成0,1的时候break就行,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值