NOIP2018模拟9.13

第五场模拟,收获比较大,分也比较低。

100+0+47

第一题比较简单,第二题写了一个程序,写到一半卡住了,手出样例搞错,写不下去了。

第三题会做,但是考虑得实在是不周全。

主要还是因为心态没调整好,第二题把它想得太难,没想清楚就开始打,到了剩下一个半小时的时候发现思路错了,写不下去。

但是改第二题我只用了15分钟。

而且是在睡觉的时候想好的,思考过程5分钟。

冷静思考还是比较重要。

T1

题目大意:

平面上分别有n个起点和n个终点,每个起点只能匹配它右上方的终点。

求最大匹配。

n<=1e5

题解:

二位偏序问题,按某一维排序,剩下一维用multiset就好了。

T2

题目大意:

给出n*m的图案,每个位置时大写字母,可以进行相邻两行或两列的交换,问能否交换成中心对称图形。

多组数据。

t<=10,n,m<=12

题解:

大概就是说行和列可以任意排列。

最暴力的方法就是枚举行和列的排列。

考虑优化一下,预处理任意两行、两列可否有可能通过变换实现中心对称。

暴力完成这个是O(n^4)的,可以接受。

每次枚举可以直接一对一对地枚举,这样方案数只会有11*9*7*5*3=10395

用这些来优化原有的暴力。

T3

题目大意:

给出正整数n、k,问是否有可行的方法用k的因数的和(数可重复)组成n。

n<=1e18,k<=1e15,多组数据,数组组数<=1e4,保证不同的k最多50个 

题解:

分情况讨论吧。

设c为k的质因数个数。

当c=1,直接判断。

当c=2,可以用拓展欧几里得解一下方程。

当c>=3,可以转换成最短路模型,经典题了啊。

猜你喜欢

转载自www.cnblogs.com/lmlysklt/p/9649084.html