长寿花:dp】的更多相关文章

当然可以打组合数+CRT什么的,但是其实不必那么麻烦. 先讲那个思路,再转化过来吧. 首先可以发现的一个问题:所有颜色之间是没有区别的,所以我们其实并不在意到底是哪几种,我们只需要知道有几种就可以了. 逐层递推:设dp[i][j]表示到了第i层,这层用了某j种颜色的总方案数. 注意这里为了方便去重,所以dp的含义里是已经确定了j种颜色,所以不要乘上 $ C_m^j $ 那么再设s[i]是填到第i曾为止的总方案数那么s[i]=Σdp[i][j]*C[m][j] 还需要预处理一下g数组,g[i][j…
题目描述 庭院里有一棵古树.圣诞节到了,我想给古树做点装饰,给他一个惊喜.他会不会喜欢呢?这棵树可以分为$n$层,第$i$层有$a_i$个防治装饰品的位置,有$m$种颜色的装饰品可供选择.为了能让他喜欢,我想让装饰品满足以下条件:$1.$在同一层两个相邻的装饰品不能有同一种颜色:$2.$相邻两层的颜色集合不能相同(这里颜色集合是指这一层所有出现的颜色去重之后的集合,也就是每个颜色只在集合被最多出现一次).我想知道,有多少种不同的方案能让他满意呢?由于方案书可能很多,请告诉我模$p$之后的答案.谢…
酱神赏花 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 262143/262143KB (Java/Others) Submit Status 酱神去杭州赏花. 1到nn编号,11号和nn号是左右两个端点,两个相邻端点之间的距离为11.本次花展一共要展出mm朵花,在第titi时刻,有一朵颜值为bibi的花将在第aiai个节点展出,如果酱神在titi时刻处于第xx个节点,那么他能获得的开心值为bi−|x−ai|bi−|x−ai|,注…
不要陷入思维定势,如果长时间没有突破就要考虑更改大方向. 不要把简单问题复杂化. 做完的题就先放下,不管能拿多少分.不能过一段时间就回来调一下. $Solutions:$ A.次芝麻 因为$n+m$始终为定值,所以可以发现每次操作相当与对$n$或$m$任意一个数在模$n+m$意义下$\times 2$,直接上快速幂. #include<bits/stdc++.h> using namespace std; typedef long long ll; ll n,m,K; ll qpow(ll a…
知识点: 字典, for 循环,if ...else 嵌套 永辉超市 = { '食品饮料':{ '休闲食品':{ '坚果':['山核桃','腰果'], '炒货':['瓜子','花生'] }, '牛奶':{ '进口牛奶':['安慕希','欧德堡'], '国产牛奶':['伊利','蒙牛'] }, '饮料':{ '碳酸饮料':['芬达','雪碧'], '咖啡':['星巴克','雀巢'] } }, '粮油副食':{ '食用油':{ '菜籽油':['鲁花','福临门'], '玉米油':['金龙鱼','长寿…
我貌似曾经说过我是个只会做水题的巨型辣鸡.. 这次证明我水题都不会做.. T1 平均数 区间数$n^2$ 枚举是不可能了 可是好像没有无用的计算量.. 刚想到这里,此时开考15min 看见天皇比手势说他阿卡了?? emmmmm??? (脏话) 是不是区间求和的时候可以快一点.. 那就前缀和优化一下? 把$\sum$换成$Sum[r]-Sum[l-1]$ 发现柿子变成了一个$(Sum[r]-Sum[l-1])/(r-(l-1))$的形式.. 好像0/1分数规划的感觉啊..(有关系吗?) 设$s=(…
次芝麻,喝喝喝,长寿花! 什么鬼畜题面...一看就不是什么正经出题人 skyh双双双AK了..太巨了... T1 次芝麻 稍稍手玩就能发现分界点以一个优美的方式跳动 然后就愉快地帮次货们次掉了这个题- T2 喝喝喝 考虑维护一个数组pos表示离目前点最近(靠右)的满足$ax%ay=k$的位置 通过每扫到一个点就根号n更新数组来维护 则可以知道对于每个点i 任何左端点在pos[i]以左的区间,它的右端点不能到达i 当时考虑到了线段树维护以每个点为左端点能到的最远右端点 用线段树区间赋值来弄这个东西…
前言:很久没有发博客了,以后会捡起来,之后很长一段时间内我都会把精力放在攻克DP问题上,所以会经常上传一些DP学习笔记,把一些比较好的,没见过类型的DP问题都会传上来,希望能够变强吧. 因为今天很清醒的意识到世上有很多很优秀很惊艳的人,自己也要努力,努力成为那样的人啊 . 例题 洛谷P1164 小A点菜 分析:乍看就是一个普通的01背包,仔细看下要求钱是要全花完的,而且dp数组内保存的不是最大价值,而应该是方法的数量,这样处理起来是很不一样了 这道题第三次做,之前两次做都是最后无奈的屈从了题解,…
/* 题意:给出一串字符(全部是小写字母),添加或删除一个字符,都会产生一定的花费. 那么,将字符串变成回文串的最小花费是多少呢? 思路:如果一个字符串增加一个字符 x可以形成一个回文串,那么从这个字符串中删除这个字符 x 同样也能形成回文串! 所以我们只记录删除,和增加这个字符 x 的最小的费用就好了!->转变成添加多少个字符形成回文串费用最少! str[i]!=str[k] dp[i][j]=min(dp[i][j-1]+cost[str[k]-'a'], dp[i+1][j-1]+cost…
题目传送门(内部题111) 输入格式 一个整数$T$,表示测试数据组数. 每组测试数据占一行,两个整数,分别表示$L$和$S$. 输出格式 对每组数据,输出一个整数表示答案. 样例 样例输入1: 13 7 样例输出1: 样例输入2: 24 210 11 样例输出2: 4410199993 数据范围与提示 样例$1$解释: 一共有$7$种形态,每种形态能构成$1$个方案. 样例$2$解释: AAAB ABBB BAAA BBBA 数据范围: 对于$60\%$的数据,$L\leqslant 30,S…