紫色百合

p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify }
p.western { font-family: "Calibri", serif; font-size: 10pt }
p.cjk { font-size: 10pt }
p.ctl { font-family: "Calibri"; font-size: 10pt }
--
--> { }
p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify }
p.western { font-family: "Calibri", serif; font-size: 10pt }
p.cjk { font-size: 10pt }
p.ctl { font-family: "Calibri"; font-size: 10pt }

【问题描述】

“牵着你的手的是她,路边开满了紫色的百合花……”

你从梦中醒来,却依然忘不了梦中的她百合花,每朵百合花都有一个权值,在二进制下写成一行‘1’,第i朵紫色百合的权值在二进制下写成i个‘1’。你想挑出其中一些组成“一束百合花”且价值在二进制下恰好为一个‘1’后面P个‘0’,那么有多少种挑选方案呢?

定义“一束百合花”的价值为这些百合花组成的集合的所有子集的权值乘积的和(空集的权值乘积算1)。如价值为1和3组成的一束百合花价值为1+1+3+1*3=8

【输入格式】

一行两个正整数N,P,含义如题目中所示n,p<=100000

【输出格式】

一个整数代表方案数模 998244353 的结果

【样例输入1

3 3

【样例输出1

2

【样例输入2

233 666

【样例输出2

572514965

p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify }
p.western { font-size: 10pt }
p.cjk { font-size: 10pt }
p.ctl { font-family: "Calibri" }

稍稍运用一下数学知识发现题目要求的是选出的集合每个元素+1之后的乘积等于2^P的方案数,取个log就变成了↓

在1~N选若干个数使得总和等于P,求方案数

然后用普通的背包DP可以就拿到60分了

 然后我们发现,由于物品大小是1~N,所以最多选取O(sqrt(P))个物品,背包就满了

满分做法可以用状态f[i][j]表示选i个物品,占容量为j的方案数

由于每个背包是不同的,所以根据已选的最小的物品分类讨论一下:

如果最小的物品是1,相当于i-1个物品凑出了j-i的大小,然后整体+1

如果最小的物品不是1,相当于i个物品凑出了j-i的大小,然后整体+1

需要注意我们要防止出现选择了大小为N+1的物品的情况,所以需要减去

得到递推式f[i][j]=f[i-1][j-i]+f[i][j-i]-f[i-1][j-(N+1)]

时间复杂度O(Nsqrt(N))

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 typedef long long lol;
 7 lol Mod=998244353;
 8 int f[451][100011];
 9 lol ans;
10 lol n,p;
11 int main()
12 {lol i,j;
13     cin>>n>>p;
14     f[0][0]=1;
15     for (i=1;i*(i+1)/2<=p;i++)
16     {
17         for (j=i;j<=p;j++)
18         {
19             f[i][j]=f[i-1][j-i]+f[i][j-i];
20             if (j>=(n+1)) f[i][j]-=f[i-1][j-n-1];
21             if (f[i][j]<0) f[i][j]+=Mod;
22             if (f[i][j]>=Mod) f[i][j]-=Mod;
23         }
24         ans=(ans+f[i][p])%Mod;
25     }
26     cout<<ans%Mod;
27 }

p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify }
p.western { font-family: "Calibri", serif; font-size: 10pt }
p.cjk { font-size: 10pt }
p.ctl { font-family: "Calibri"; font-size: 10pt }
a:link { }

【问题描述】

“牵着你的手的是她,路边开满了紫色的百合花……”

你从梦中醒来,却依然忘不了梦中的她百合花,每朵百合花都有一个权值,在二进制下写成一行‘1’,第i朵紫色百合的权值在二进制下写成i个‘1’。你想挑出其中一些组成“一束百合花”且价值在二进制下恰好为一个‘1’后面P个‘0’,那么有多少种挑选方案呢?

定义“一束百合花”的价值为这些百合花组成的集合的所有子集的权值乘积的和(空集的权值乘积算1)。如价值为1和3组成的一束百合花价值为1+1+3+1*3=8

【输入格式】

一行两个正整数N,P,含义如题目中所示

【输出格式】

一个整数代表方案数模 998244353 的结果

【样例输入1

3 3

【样例输出1

2

【样例输入2

233 666

【样例输出2

572514965

【数据范围与约定】


测试点编号


N


P


1



8



100


2



12



100


3



15



100


4



100



100


5



1000



1000


6



2000



2000


7



100000



100000


8



100000



100000


9



100000



100000


10



100000



100000

时间: 2024-10-12 12:50:31

紫色百合的相关文章

发晶还是紫色的好

紫色是人类从光谱中所能看到的波长最短的光,比其波长更短的称为紫外线.紫色是彩虹光谱中的最后一种颜色,代表着已知王国的边界和未知王国的开端. 自古以来,紫色代表了高贵.神秘,甚至是不可理喻.如果问世间什么东西是高贵.神秘和不可理喻的,相信很多人会回答出两个字----"宗教".事实上,紫色也是常被运用于宗教中的颜色,一直与灵性相关.<大乘无量寿经>中,阿弥陀佛四十八大愿之一就是"十方世界所有众生令生我刹,皆具紫磨真金色身",紫磨金指带紫色的黄金,是黄金中的最

百合网“免费”革命 一场饮鸩止渴的大戏

在线婚恋市场一直以来都是有风乍起,吹乱一池春水的同时,也往往会带来自身的迷茫. 刚宣布融了15亿资的百合网计划下一步登陆A股, 于是推出了免费沟通的杀手锏,更是号称要彻底颠覆婚恋行业--果然是腰包鼓了,说话都财大气粗. 这个免费沟通,即现在登录百合网PC和手机网页版的注册用户,均可享有线上免费沟通权利, 安卓和iOS客户端在等待应用商店审核完成之后也会实现免费沟通功能. 何必婚恋,直接约不更好? 免费婚恋,似乎听上去很美,因为无论高富帅还是矮矬穷,同性恋还是双性恋,万物皆是平等的,你可以根据自由

终于在CoderForce冲上紫色了(Round #258, Div. 2)

一个多月来历尽艰难, 终于冲上了紫色. 17 Codeforces Round #258 (Div. 2) 93 3 +76 1751 Became Candidate Master htbb → htbb 16 Codeforces Round #257 (Div. 2) 200 3 +165 1675   15 Codeforces Round #256 (Div. 2) 1797 1 -98 1510   14 Codeforces Round #FF (Div. 2) 625 2 -88

SegmentFault 社区访谈 | 依云: 一只想依偎在云上的野百合

社区访谈的上期说到上帝有明是如何通过他的个人魅力撩得妹纸归,回忆传送门,不过逗得了妹纸笑,引得了汉纸拜(唔,崇拜的拜,不是拜天地的拜)这种境界也不是一般人所能达到的,逗得了妹纸笑,清蒸看来需要一点天赋加成,引得了汉纸拜,这点嘛,只要努力,磨练下技术还是可以实现的,只要技术过硬成得了大佬,忽略天赋加成,你见过哪个大佬单身?摊手,所以,技术是第一生产力,本期的访谈嘉宾就是一个技术非常厉害的社区小伙伴 -- 依云酱,为什么要加一个「酱」字呢?因为真的超级可爱呀~ 有请本期嘉宾 -- 依云 ?? 必经之

Ubuntu 16.04在启动和关机时不显示启动和关机画面且显示详细的命令信息,没有进度条和Logo,或者只有紫色界面,或者没有开机画面等问题解决

主要有以下解决方法: 1.如果之前配置过Grub来显示详细的命令信息的,那么改回去就行了,参考:http://www.cnblogs.com/EasonJim/p/7129873.html,通过这种方式还原一般都没有问题. 2.如果是Nvidia显卡装了专有驱动,或者是Intel集成显卡装了专有驱动的,通过上面方式还原后一般有关机界面,但是开机界面变成了全紫色.可以参考以下解决方法: 注意:在操作之前必须参考http://www.cnblogs.com/EasonJim/p/7129873.ht

紫色范冰冰WIN7主题包

应吾爱论坛网友要求打包制作的紫色范冰冰WIN7主题,希望大家支持!~ 下载地址

孤军奋战的百合网 下一城会在哪?

7月31日,盛达矿业股份有限公司(以下简称"盛达矿业")披露<关于对外投资的补充公告>显示,其以现金方式参股百合网,总投资额为8000万人民币,股权占比5.1299%,成为百合网第六大股东. 公告还显示,百合网创始人团队中的田范江.钱江则分别从79.43%以及20.57%的股份占比骤降至3.8902%和1.0077%,两人的股东位置也分别从第一和第二降至第七和第十三,这意味着原来的股权结构已经迅速洗牌,百合网创始人团队对于企业的掌控力降至历史最低点. 在百合网在如火如荼地筹

查询,珍爱网ID,百合网ID,世纪佳缘ID,有缘网ID

在珍爱网,百合网,世纪佳缘等婚恋网上经常看到自己心爱的那位,可惜高额的会员费是漫漫银河,阻挡了我们联系.  珍心会员,不过是个幌子,骗我等辛苦钱,红娘不过是披着爱情的豺狼. 在此,推荐一个网站给大家分享 寻Ta网http://www.xunttt.com  ,通过这个网站可以查询到对方的联系方式,同时可以将自己的信息传递给你心目中那个它. 寻Ta网 才是真正的红娘,善良的红娘.

紫色的手链(求最大值和次大值的异或值最大)

描述 那是木姑娘十七岁时,我送给她的生日礼物.(后来手链也成为了我最喜欢的出题媒介) 记得最初买的手链,由n段紫色的珠子构成,每一颗珠子都被赋予了一种价值评价w[i]. 为了木姑娘,我只惋惜自己不能摘下漫天繁星送给她. 不过我并没有将整个手链都送出去,木姑娘的手腕是纤细的.我只需要截取一个子段就可以了,长度无论多少都可以. 不过我希望,这个子段的最大值异或次大值可以最大,这样或许木姑娘会更喜欢吧.(这里次大是说严格次大) 格式 输入格式 第一行一个数n 第二行n个数,依次表示这个序列w[1],w