TOJ 4146 4147 4148 4149 4150 4151 4152 4153 4154

toj 4146 seq 难度系数(1-5):2
对于操作0:用add[v][x]表示对于i%b[v]=x的a[i]需要加上的add的累加和。
读取完所有操作后对于a[i], a[i]+= add[v][i%b[v]]
对于操作1:我们知道 x*b[v] 到x*b[v]+b[b]-1的数字都要加上add,所以可以用一个数据结构维护对于一个区间的数字都加上一个数。


4147 strange network 难度系数(1-5):4
kd树+最小生成树


4148 number 0 难度系数(1-5):2
这一题方法挺多,
法1:用一个数组a[9]模拟加法 1108
a[0]-a[9]表示一个数字的每一位,对于输入的询问从小到大排序,用一个数字记录1到当前数出现了几个0,模拟加法到i的时候,对于询问i给出答案。再做+1时,判断一下当前数字有几个0,用一个变量记录0的个数即可。
法2:对于n如果能算出与n位数一样且不超过n的数字中出现0的次数,那么把n分为 191099....10xn x是n的位数,分别进行计算就能得到0的个数了。
计算10^x-n中0的个数的方法,举例:n = 999
先计算990,991,..999中出现了几个0
然后90*,91*,92*…98*,*表示可以出现任意数字,那么可以把这些数拆分成3段
n1=9,k=0-8,x=*,x是0-9的任意组合,所以n1,k出现0的次数乘上x的组合数就是0出现的个数,再加上x中出现的0的个数即可,


4149 wordcount 难度系数(1-5):3
AC自动机,后缀数组
AC自动机1:忽略字母表的大小,用hash的方法找到一个节点u的第x个孩子,x就是第x个字母。自动机的建立是o(n)的,由于hash的设计会产生冲突,最终的复杂度为o(cn)
AC自动机2:字母表重新编码,增加一个字符表示字母结束标识对于如1111的字母,用1111*表示这个字母,那么自动机的字母表只需11个字符即可,重新编码以后相当于单词变成一个字符串形如: x1x2.....xn ,就可以用模板做了。o(11n*logn)
后缀数组:也是增加一个结束标识 o(nlogn)


4150 wordrank 难度系数(1-5):1
字符串排序,可以把字符串映射到一个long long 的数字,然后排序,
也可以直接排序,但是排序的时候要避免字符数组的赋值操作,复杂度nlogn是可以过的


4151 eat 难度系数(1-5):4
树链剖分


4152 Tetris of llin 难度系数(1-5):3
dp或者分治 由于题太长,看的人不多,其实算中等题


4153 I like graph 难度系数(1-5):2
最长上升子序列,想得通就一下能做出来。


4154 TAC 难度系数(1-5):1
判断三角形是否在圆内,用每一个点判断是否在圆内即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GDRetop

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值