思维题
新笑雨
这个作者很懒,什么都没留下…
展开
-
一道区间dp题
题意你有一个有序的数组,现在要插入一个新的数,相信你一定学过二分查找,也知道最坏情况下需要比较几次才能找到新的数该插入什么位置,但是现在,我们稍微改变下套路,把新的数与数组中的每一个数比较都会有一个特定的代价,代价在1-9之间,求最坏情况下,假设你采用最优的比较策略,你会花费多少费用插入新的数。数据范围有t(t≤10)t(t\le 10)t(t≤10)组数据,数组大小n≤100000n\le 100000n≤100000解法首先考虑一个常规的区间dp:f[l][r]表示查询[l,r]中任意一个数的原创 2020-05-11 20:37:18 · 130 阅读 · 0 评论 -
noi.ac 767
orz zhf题目链接解法首先把问题方向转化一下,变成考虑每个点的贡献,这样就是考虑每个点左边m个比它大的数的位置,右边m个比它大的数的位置,有了这些数据就可以稍微推一下式子算出这个点一共在多少个区间中产生了贡献。然后首先有一个O(nmlogn)O(nmlogn)O(nmlogn)的做法,就是对于每个数,向左向右二分查找第一个比它大的数,用st表+二分,但是不能的满分,考虑更快的做法。我...原创 2020-02-26 19:35:03 · 130 阅读 · 0 评论 -
codeforces 1290C
题目链接题意有一个长度为n的01字符串和m个子集,保证任意3个子集∩为空,问将长度从1到n的字符串前缀全部变成1的最小步数,其中每一步可以做的事情是选择一个子集,将这些位置上的字符全部取反。保证可以将整个字符串变成全1状态数据范围n,m≤3e5n,m \le 3e5n,m≤3e5解法首先观察到,任意3个子集的交为空说明任意一个位置只会最多在两个子集中出现,所以对于一个位置,如果它出现在...原创 2020-02-03 18:50:33 · 199 阅读 · 0 评论 -
codeforces 848C
题目链接题意给定长度为n的数组, 定义数字X在[l,r]内的值为数字X在[l,r]内最后一次出现位置的下标减去第一次出现位置的下标给定m次询问, 每次询问有三个整数a,b,c,询问规则如下:当a=1时, 将数组内第b个元素更改为c当a=2时, 求区间[b,c]所有数字的值的和输入:第一行两个整数n,m第二行n个整数, 表示数组第3到3+m行, 每行三个整数, 表示每次询问输出:...原创 2020-01-15 17:50:49 · 284 阅读 · 0 评论 -
codeforces 17E
题目链接题意给定一个长度为n的小写字母串。问你有多少对相交的回文子 串(包含也算相交) 。 输入格式第一行是字符串长度n(1<=n<=2*10^6),第二行字符串 输出格式相交的回文子串个数%51123987Translated by liyifeng解法因为首先是回文串,所以考虑manacher,求出每个节点的f[i],然后考虑直接求相交的回文串对数量不是很好求,所以用...原创 2020-01-15 09:23:35 · 203 阅读 · 0 评论 -
一道数位dp练习题
题意给定一个n*m的网格图,图上有一个起点和一个终点(起点和终点处没有障碍),以及若干障碍,对于每个数字0-9都将会给出一对数(ai,bi)。对于一个数t,我们从高位到低位扫一遍,对于t的每一个数字i将当前位置行加上ai列加上bi,若从起点开始在模拟过程中能不走出边界且不走到障碍最终到达终点,就说数t对于当前网格图合法。问区间[L,R]内合法的数t个数有多少,答案对1,000,000,007取模...原创 2020-01-09 13:31:40 · 233 阅读 · 0 评论 -
一道网络流练习题
题意现有一款游戏,你作为玩家,拥有k种物品。开始时,每种物品有1000件。现在,在你面前有n个任务,每种任务都可能消耗一些物品,也可能得到一些物品。做第i个任务的物品得失情况用一个包含k个字母的字符串Si表示,其中每个字母都是+,-,/中的一种,第j个字母表示该任务对物品j的数量的影响。+表示做这个任务能得到一个物品j,-表示做这个任务会消耗一个物品j,/表示做这个任务对物品j的数量不产生影响...原创 2020-01-08 19:33:02 · 277 阅读 · 0 评论 -
codeforces 1263F
题目链接题意给两棵有根树,叶子数相同,每个叶子都连接着某个电机,同一棵树的叶子连着不同的电机,电机数等于叶子数,问最多可以删掉几条边,使得每台电机至少连接着一个树根数据范围叶子数num≤1000,树的节点个数n,m≤2000叶子数num\le 1000,树的节点个数n,m\le 2000叶子数num≤1000,树的节点个数n,m≤2000解法dp设val[0/1][l][r]表示第0...原创 2020-01-07 19:44:43 · 200 阅读 · 0 评论 -
luogu P2737
题意,给一些数,问最大的不能被这些数表示出来的数(自由相加)是多少。(大凯的疑惑)解法一个想法是dp,然后对答案有影响的上界接近于最大数的平方。这个和noip 2018 d1t2也差不多另一个做法是先选择这些数中的一个数,我们为了方便就选最小的一个mn,然后可以发现如果可以表示出x,那么x+mn,x+2×mn,x+3×mnx+mn,x+2\times mn,x+3\times mnx+mn...原创 2019-12-26 22:18:58 · 125 阅读 · 0 评论