码迷,mamicode.com
首页 > 其他好文 > 详细

JZ模拟赛 8.18

时间:2018-08-19 11:55:58      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:问题   直线   article   排列   是你   esc   数学   要求   除了   

A组:

T1:

string

Description

给定一个由小写字母组成的字符串 s。有 m 次操作,每次操作给 定 3 个参数 l,r,x。如果 x=1,将 s[l]~s[r]升序排序;如果 x=0,将 s[l]~s[r] 降序排序。你需要求出最终序列。

Data Constraint

对于 40%的数据,n,m<=1000。
对于 100%的数据,n,m<=100000

Solution:

注意到,只有26个字符。用一个线段树,维护区间a~z的个数。

每次操作,求出总共的a个数,b个数。。。。z个数。

26次区间修改即可。把前k1个变成a,k1+1到k1+k2个变成b.....

 

T3:

number

Description

给定正整数 n,m,问有多少个正整数满足: (1)不含前导 0; (2)是 m 的倍数; (3)可以通过重排列各个数位得到 n。

Data Constraint

对于 20%的数据,n<10^10。
对于 50%的数据,n<10^16,m<=20。
对于 100%的数据,n<10^20,m<=100。

直接数位dp。但是(3)条件还要记录出现了哪些数字。很麻烦。

n<=20,直接bool记录这个位置的数有没有出现过,2^20肯定不行。

如果记录0~9每一个数出现次数,以出现次数最多的数的个数为进制数呢?显然,很多状态都是没有用的。

还是会被卡到10^10更惨。

 

zyz:变进制法,1~9开一个桶,有多少个数,就是几进制。那么一个状态S就代表:k0+ k1*num0+k2*num0*num1+...k9*(num0*...*num8)

ki表示,i这个数在状态中出现的次数。numi表示,原来n中,i出现的次数。

转移,提取i这一位,S%∏(num0~i)/∏(num0~i-1) (类似一般10进制的取法)

如果能多取,i多取了一个,转移到S+i*∏(num0~i-1)

变进制法不错的讲解:NKOJ1633 神仙开山【变进制数状压DP】

这样,很多多余的状态就都压进去了。总共不到2000个状态。

 

我的做法:暴力找到所有可能的情况,暴力n^2判断能否相互转移。给每个情况开一个vector啥的。转移直接访问vector

反正2000的情况,也能过,就是不优美。

 

B组:

T1:

Description

鸡腿是CZYZ的著名DS,但是不想学数学的DS不是好GFS,所以鸡腿想通过提高数学水平来增强他的GFS气质!虽然你对鸡腿很无语,但是故事的设定是你帮助鸡腿增强了GFS气质,所以现在你必须教鸡腿学数学! 

鸡腿想到了一个很高(sha)明(bi)的问题,在 N 条水平线与 M 条竖直线构成的网格中,放 K 枚石子,每个石子都只能放在网格的交叉点上。问在最优的摆放方式下,最多能找到多少四边平行于坐标轴的长方形,它的四个角上都恰好放着一枚石子。 

Data Constraint

对于50%的数据0 < N, M ≤ 30; 

对于100%的数据0 < N, M ≤ 30000;K ≤ N*M。

rectangle:显然k个点必定摆成以下两种情况可能最优:

             XXX...XXX

             XXX...XXX

             .

             .

             .

             XXX...XXX

             X..X

 

 

             XXX...XXXX

             XXX...XXX.

             .        . 

             .        .

             .        .

             XXX...XXX

          所以只要枚举一行的个数(或者一列的个数)。

          假设第一种情况除了最后一行每行都是i个,那么矩形的个数就是C(k/i,2)*C(i,2)+C(k%i,2)*k/i,第二种情况同理。

 (来自题解)

 

JZ模拟赛 8.18

标签:问题   直线   article   排列   是你   esc   数学   要求   除了   

原文地址:https://www.cnblogs.com/Miracevin/p/9500631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!