2018 河北省大学生程序设计竞赛

problem d:

ch给你一个长度为n的数列,有两种操作:

1.set  l  r  x :将[l,r]内的数全部赋值为x;

2.query  l  r ;查询[l,r]中占主导地位的数字是哪个;

该数字占主导地位指:该数在该区间中出现的此时占了区间长度的一半以上(出现一半不算占主导地位)。若没有,输出-1.

input:

第一行,一个数:n,表示序列的长度(1<=n<=200000);

第二行,n个数,分别为a1~an(0<=ai<=1000000);

第三行,一个数q,表示操作的个数(1<=q<=200000);

接下来q行,每一个操作,给出操作区间.

output:

对于每个query,输出主导区间数字,若不存在,输出-1.

problem J 商店

ice的商店里一共有15件商品,商品的价格很特殊。第一件商品价格1元,第二件商品价格2元,设第n件商品的价格是W(n)元,则:Wn(n)=W(n-1)+W(n-2)(3<=n<=15)

如果你猜的数字和ice想要的数字一致,你可以免费得到这些商品。

例如:ice想要的数字是4,那么共有4种购买方案:

1.买4个 第一种商品

2.买2个 第一种商品  和1个 第二种商品

3.买两个 第二种商品

4.买1个 第一种商品  和1个 第三种商品

请你计算共有多少种免费购物方案,方案数对(1000000000+9)取模。

input:第一行,一个整数t,表示有t组数据

接下来t行每行一个正整数x,表示ice这次想要的数字。

1<=t<=3000;1<=x<=3000

output:输出t行,每行有个正整数,表示在第i次活动中免费购物的方案数,取模。

例:input:

3

5

20

30

output:

6

134

509

求教。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值