题目链接:2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
A. Weather Patterns
题意:有四种天气,给你一个4*4的矩阵,a[i][j]表示从天气i转变为天气j的概率,然后又四个询问(两种),第一种是,给你两个观察序列,问你按照这个观察序列转变的概率是多少,第二种是给你i和j,表示连续若干天都是i天气或j天气的期望为多少
解析:求概率,那不就是一直乘么,求期望,那不就是几何分布的期望么,您就欺负我英语不好吧!!!
B. Train Seats Reservation
题意:有一辆火车,有100个火车站台,站台编号为1~100,每个乘客能预定k张火车票,从t1站台上车,从t2站台下车,问你这两火车最少要多少个座位才能满足说有乘客的要求
解析:直接开个数组记录下每个站台的时候有多少个座位被座了,然后算一下最大值输出就可以了,记住先下后上(重点)
D. Path Search with Constraints
题意:好像是求什么(1,1)到(I,J)的最短路径的,要求权值最小,根据样例得出的题意大概就是,给你一个矩阵,题面又告诉你了一个转移方程,然后让你输出最小花费,和路径
解析:大概猜出题意了,想着,动态转移方程都告诉我了,直接套不就好了么,输出路径的时候发现,和答案一点都不想,看了半天题目,猜测是有两个状态要多存一个结点吧。试着交了一下,A了,真的是猜了半年的题意:)
F. Overlapping Rectangles
题意:矩形面积并
解析:线段树,直接套模板
G. Finding the Radius for an Inserted Circle
题意:给你三个半径为R的圆(Ca,Cb,Cc),然后根据这三个圆生成C1,即和之前三个圆相切,然后C2也是类似这样生成的,总之看图就好啦,要求的就是Ck的半径,要直接截断小数点后面的数
解析:其实第一个圆很好求,如下图所示
对于第2个圆,一直到第k个圆来说,求法是一样的,如下图所示
H. A Cache Simulator
题意:模拟一个缓存器
解析:表示好险队友是计科专业的
I. GSM Base Station Identification
题意:给你10个坐标,问你这10个点在哪个正六边形里面(题目的图片上)
解析:当初感觉这题很麻烦不是特别想写,比赛结束后,发现可以通过把每个正六边形的中心表示出来,然后枚举所有正六边形的中心,判断两点间的距离是是否小于5
J. Minimum Distance in a Star Graph
题意:给你5组长度为n的字符串s和e,问你e要执行多少次交换操作才能使得s和e相等,交换操作的定义为:第一个位置的数字和其他交换,仅此而已
解析:直接bfs即可,(一开始bfs不敢交,后面试了一下,发现竟然是WA了,在队友的提醒下,发现自己看错了题目,以为可以任意换。。。。
L. The Heaviest Non-decreasing Subsequence Problem
题意:让你求一个最重的不严格递增子序列,也就是给你一个长度要你自己算的序列,每一个序列有一个权值,即该元素为负数,权值为0,该元素>=10000,权值为5,否则权值为1,然后让你求一个最大权值和的子序列(不减)
解析:其实把>=10000的元素,重复5次加到原序列中,然后求一次最长不减子序列即可
M. Frequent Subsets Problem
题意:给以一个全集U={1,2,…,n},然后又m个全集的子集,现在给你一个α,问你存在几个集合,在这m个集合出现的次数大于等于α*m,输入第一行是n和α,接下来m行分别是m个集合
解析:题目看懂后,应该算是比较好做吧,除去输入不说以外,我的想法是,记录1~n个元素,每个元素在这m个集合里出现的次数,然后答案的集合肯定是这些元素(出现次数大于ceil(α*m))组合起来,那么直接把这些数全都放到一个集合里,然后枚举这个集合的子集是否满足条件,如果满足ans++