09 2018 档案

摘要:比较特别的区间dp。小的区间转移大的区间时,也要枚举断点。不过和普通的区间dp比,断点有特殊意义。表示断点是区间最后取走的点。而且一个区间表示两端都不取走时中间取走的最小花费。 阅读全文
posted @ 2018-09-30 20:47 degvx 阅读(143) 评论(0) 推荐(0)
摘要:先得出区间为1和2时的结果。用arr[i][j]记录i,j内的和。dp[i][j]记录i,j区间全加起来的最小花费。那么区间大小为1和2时都是明显的。为3时枚举断点。其中一个区间大小为1也是可行的。 虽然复杂度为n^3,不过比n!好。 阅读全文
posted @ 2018-09-30 19:41 degvx 阅读(102) 评论(0) 推荐(0)
摘要:题意:一个数,二进制形式去掉leading zero后,如果0的数量大于等于1的数量,计算区间内这样数的个数。 右区间转为二进制形式,然后在二进制上数位dp,递归的时候记录leading zero是否消除了,以及0比1多的数量delta。dp记录时有没有leading zero也是一个状态。 阅读全文
posted @ 2018-09-30 15:02 degvx 阅读(101) 评论(0) 推荐(0)
摘要:题意:给出n,问1-n中有13且能整除13的数数量。 就是hd3555和codeforces beautiful number的合成版。dp记录待填长度,是否带有13,前面数的模13余数,前一个数是k的时候的b-number数数量。 阅读全文
posted @ 2018-09-30 13:55 degvx 阅读(129) 评论(0) 推荐(0)
摘要:题意:一个数能整除它所有的位上的数字(除了0),统计这样数的个数。 注意离散化,为了速度更快需存入数组查找。 不要每次memset,记录下已有的长度下符合条件的个数。 数位dp肯定是从高位到低位。 记录数字已经有多大,还有lcm,递归传下去。 阅读全文
posted @ 2018-09-30 11:31 degvx 阅读(113) 评论(0) 推荐(0)
摘要:题意:几个人要去一个城市k天,现给出各航班的日期和花费,让这n个人能相会k天的最小花费? 用数组arr1[i]记录在第i天人到齐的最小花费。arr2[i]记录第i天之后才有人开始走的最小花费。然后取arr1[i]+arr2[i+k+1]的最小值。 阅读全文
posted @ 2018-09-29 13:55 degvx 阅读(139) 评论(0) 推荐(0)
摘要:题意:给出一个数组,求其中和小于t的区间数。 先计算前缀和数组sum[i]。对当前的sum[i],查询树状数组中有几个比(sum[i]-t)大的数,那么用sum[i]减它就是一个合法区间。再将当前的sum[i]加入树状数组。 //#pragma comment(linker,"/STACK:1024 阅读全文
posted @ 2018-09-29 09:48 degvx 阅读(211) 评论(0) 推荐(0)
摘要:题意:一个串,右循环移位后,告诉你第一个字母,还能告诉你一个,问你能确定移位后的串的概率。 用map记录每个字母出现的位置。对于每个字母,用arr[j][k]记录它的所有出现位置的后j位是字母k的个数。对每个j数arr[j]中arr[j][k]等于1的个数,取最大,说明k取这个时区分该字母的概率最大 阅读全文
posted @ 2018-09-28 16:30 degvx 阅读(123) 评论(0) 推荐(0)
摘要:题意:一个数组,重新打乱后前缀异或和递增。问这样的排列。 将所有元素按照二进制最高位分组。每次选当前前缀和sum的二进制最低的0位,再从分组中挑一个作为答案。先放首1在较低位的再放首1在较高位的总是可行的。首1都在同一位的先放哪个都是一样的。 阅读全文
posted @ 2018-09-27 20:11 degvx 阅读(149) 评论(0) 推荐(0)
摘要:题意:x轴-100和+100的有敌人飞船,纵坐标由输入数据给出,我方有2飞船在x轴0,y坐标待定。0时刻时敌人同时向我方2飞船发出光线,光线会穿透飞船打到敌人自己,问2飞船放在哪敌人损失最大? 假如-100有飞船a,+100有飞船b,那么在两者y坐标和/2的位置放飞船,就炸掉2个。数据是60*60最 阅读全文
posted @ 2018-09-27 13:42 degvx 阅读(241) 评论(0) 推荐(0)
摘要:题意:n个人要运动ll长,有个bus带其中几个人,问最短时间 最后所有人在同一时间到终点是用时最少的。由于搭bus相当于加速,每个人的加速时间应该一样。先计算bus走过的路程route。看第一个人被搭t分钟(也就是所有人以后都搭t分钟),剩余的人走t分钟,route+=v2*t。bus到了v2*t的 阅读全文
posted @ 2018-09-23 10:45 degvx 阅读(243) 评论(0) 推荐(0)
摘要:题意:开始有个数k,有个数组和几个运算符。遍历数组的过程中花费一个运算符和数组当前元素运算。运算符必须按顺序花费,并且最后要花费完。问得到最大结果。 用maxv[x][y]记录到第x个元素,用完了第y个运算符时的最大值,minv[x][y]为最小。那么maxv[x][y]要么第y个运算符在x-1之前 阅读全文
posted @ 2018-09-21 19:31 degvx 阅读(163) 评论(0) 推荐(0)
摘要:一开始忽略了欧拉定理指数部分是modphi(n-1)没有memset,减法后面没加0; 阅读全文
posted @ 2018-09-21 15:52 degvx 阅读(97) 评论(0) 推荐(0)
摘要:题意:有n个区间[ai,bi],然后有n个人落在[ci,di],每个人能用ki次。问一种方式站满n个区间。 两种区间都用先x后y的升序排序。对于当前的区间[ai,bi],将ci值小于当前ai的全部放入multiset。再lower_bound查第一个>=bi的就是答案。 阅读全文
posted @ 2018-09-21 15:37 degvx 阅读(121) 评论(0) 推荐(0)
摘要:题意:一个圆环上有树,猴子上下其中一棵树,再沿着换跑,再上下另一棵树。给出一个区间,问最大的运动距离是。 给出区间大小dst,和数高数组arr。 设区间[x,y],a[x]=2*arr[x]+dst[1]+dst[2]+......dst[x]。b[x]=2*arr[x]-dst[1]-dst[2] 阅读全文
posted @ 2018-09-20 21:33 degvx 阅读(202) 评论(0) 推荐(0)
摘要:题意:给出数组arr和一个空数组dst。从arr中取出一个元素到dst为一次操作。问每次操作后dst数组中gcd等于1的组合数。由于数据都小于10^6,先将10^6以下的数分解质因数。具体来说从2开始,将2的倍数全部加2因子(用的vector),3的倍数加3因子。4不是质数,它的倍数不加因子。 还要 阅读全文
posted @ 2018-09-19 15:30 degvx 阅读(152) 评论(0) 推荐(0)
摘要:题意:直角边为n的网格巧克力,一格为一块,选择斜边上一点,从左或上吃,直到吃到空气,称为一次操作。给出几个操作,问各能吃几块。如果x是当前要吃的横坐标,在已经吃过的中找x1>=x的第一个x1,即lower_bound()。如果x1==x,结果就是0;否则假设x是往上吃,x1也是往上吃,因为x和x1间 阅读全文
posted @ 2018-09-19 09:18 degvx 阅读(146) 评论(0) 推荐(0)
摘要:题意:有n个点,找到一个顺序走遍这n个点,并且曼哈顿距离不超过25e8。 由于给的点坐标都在0-1e6之间。将x轴分成1000*1000,即1000长度为1块。将落在同一块的按y排序,编号为奇的块和偶的块一个升序,一个降序。有3个量值得关注。一是同一块中x的变化量,其实是不超过1000*n1,n1是 阅读全文
posted @ 2018-09-18 20:52 degvx 阅读(148) 评论(0) 推荐(0)
摘要:题意:给出一个数组,2种操作:。1:x*y然后x消失,2:除掉x(2操作最多只能进行一次)。问最大的结果的一种操作方式。逻辑题,看能不能想全面。 1先数好0,正,负的数量,zero,pos,neg。如果0数量不为0,在所有0的内部用操作1减少到只剩1个0,zero置1;(删去0不影响结果,如果结果是 阅读全文
posted @ 2018-09-18 16:37 degvx 阅读(127) 评论(0) 推荐(0)
摘要:题意:给一个数组,求其中任取2个元素,大的模小的结果最大值。 一个数x,它的倍数-1(即kx-1),模x的值是最大的,然后kx-2,kx-3模x递减。那么lower_bound(kx)的前一个就是最优的值,用它模x更新。一旦最优值是最后一个元素,那么更新完后break;对数组排序完后对每个元素进行如 阅读全文
posted @ 2018-09-18 15:22 degvx 阅读(121) 评论(0) 推荐(0)
摘要:题意:给出区间[ll,rr],求中间一个数二进制表示时一的个数最多。 写出ll和rr的二进制,设出现第一个不同的位置为pos(从高位到低位),找的数为x,那么为了使x在[ll,rr]内,前pos-1个位必须也相同。而rr在pos和pos后如果都为1,那么pos和pos后都取1,否则pos取0,pos 阅读全文
posted @ 2018-09-17 20:49 degvx 阅读(129) 评论(0) 推荐(0)
摘要:题意:打怪兽。可增加自己的属性,怎样在能打倒怪兽的情况下花费最少? 这题关键要找好二分的量。一开始我觉得,只要攻击到101,防御到100,就能必胜,于是我对自己的三个属性的和二分(0到201),内部三层循环(最多到不了200*200*200)。1秒内能过。不过发现如果生命值很便宜,防御很贵的话,买生 阅读全文
posted @ 2018-09-17 15:56 degvx 阅读(149) 评论(0) 推荐(0)
摘要:题意:一个'(' , ')' , '#'组成的串,可将'#'换成至少一个')'。问一个换法能使串匹配。 至少换成一个,那么就先都换成一个,记结果为str。最后一个')'的后面没有未匹配的'('时可行。否则输出-1。因为后面不可能再添加')'了。如果str会因为')'匹配不到'('则无解。否则有解,将 阅读全文
posted @ 2018-09-17 12:14 degvx 阅读(142) 评论(0) 推荐(0)
摘要:题意:给出,n和飞行员高度h,n是区间数。在区间里飞行员高度不变,其它地方每秒高度-1,x坐标+1。问在高度变为0以前,x坐标最多加多少? 用数组gap记录本区间右端到下一个区间左端的距离。用sum记录gap数组的前i项和(前缀和)。其实飞行员能飞过的gap的距离之和必须小于高度h。那么对于i(表示 阅读全文
posted @ 2018-09-17 10:55 degvx 阅读(256) 评论(0) 推荐(0)
摘要:题意:网球有一方赢t球算一场,先赢s场的获胜。数列arr(长度为n)记录了每场的胜利者,问可能的t和s。 首先,合法的场景必须: 1两方赢的场数不一样多。 2赢多的一方最后一场必须赢。 3最后一场必须打满(即胜利者赢了t球) 首先要两个sum数组记录arr前i个元素中有多少个1,多少个2。先枚举t( 阅读全文
posted @ 2018-09-17 10:15 degvx 阅读(232) 评论(0) 推荐(0)
摘要:题意:如题定义的函数,取最大值的数量有多少? 结论只猜对了一半。 首先,如果只有一个元素结果肯定是1.否则。s串中元素数量分别记为a,t,c,g。设另一个串t中数量为a',t',c',g'。那么,固定s串,移动t串时,增加的量为p=a*a'+t*t'+c*c'+g*g'。注意a'+t'+c'+g'是 阅读全文
posted @ 2018-09-15 20:54 degvx 阅读(124) 评论(0) 推荐(0)
摘要:题意:一个等差数列,首项为a,公差为b,无限长。操作cz是区间里选择最多m个不同的非0元素减1,最多操作t次,现给出区间左端ll,在t次操作能使区间全为0的情况下,问右端最大为多少。 这么一个简单题吞了我3小时的时间。主要是没考虑全。 首先,得出ll位置的值a1,如果a1>t那么不可行。 然后分2种 阅读全文
posted @ 2018-09-15 19:14 degvx 阅读(121) 评论(0) 推荐(0)
摘要:题意:有n-1个缝隙,在上面搭桥,每个缝隙有个ll,rr值,ll<=长度<=rr的才能搭上去。求一种搭桥组合。 经典问题,应列入acm必背300题中。属于那种不可能自己想得出来的题。将二元组[ll,rr]排序(ll相同时再rr),长度x排序(升序)。一个全局优先队列pq(rr小的顶部)。for循环, 阅读全文
posted @ 2018-09-14 21:36 degvx 阅读(154) 评论(0) 推荐(0)
摘要:题意:1-n的数字,大的在小的后面,以这种规则已经形成的几个串,现在要转为一个串,可用的操作是在末尾拆或添加,问要操作几次? 模拟了很久还是失败,看题解才知道是数学。看来这种只要结果的题,模拟很不合算。 设结果为res,res先为0,看1在的那个串,在后一位不等于前一位加1的地方断开。res+=剩下 阅读全文
posted @ 2018-09-14 19:44 degvx 阅读(109) 评论(0) 推荐(0)
摘要:题意:定义了字符串的相等,问两串是否相等。 卡了时间,空间,不能新建字符串,否则会卡。 阅读全文
posted @ 2018-09-14 15:47 degvx 阅读(123) 评论(0) 推荐(0)
摘要:题意:面积是sqrt(3)/4的多少倍? 做延长线 阅读全文
posted @ 2018-09-14 14:35 degvx 阅读(90) 评论(0) 推荐(0)
摘要:题意:求使pi(n)*q<=rub(n)*p成立的最大的n。 先收集所有的质数和回文数。质数好搜集。回文数奇回文就0-9的数字,然后在头尾添加一个数。在x前后加a,就是x*10+a+a*pow(10,2)。偶回文同理。然后不能二分,因为比值不是单调的。 乱码: 阅读全文
posted @ 2018-09-14 13:22 degvx 阅读(113) 评论(0) 推荐(0)
摘要:题意:三角形3条边,最多共添加ll长,问组成的合法三角形个数。 本来想用暴搜,觉得会超时就搜题解了。不过保证我解释得更清晰。 先计算ll长分配给3条边有几种分法?由于不分也是合法的,因此最后实际分出去的量从0-ll都有可能。for循环枚举实际分的量(记为i)。对于每个x,分为m,p,q三份(每份可为 阅读全文
posted @ 2018-09-14 10:22 degvx 阅读(128) 评论(0) 推荐(0)
摘要:题意:猜数游戏变种。先选好猜的数,对方会告诉你他想的那个数(1-n)能不能整除你猜的数,问最少猜几个数能保证知道对方想的数是多少? 对一个质数p,如果p^x不猜,那么就无法区分p^(x-1)和p^x,因此所有p^x如果小于等于n都要猜。 乱码: 阅读全文
posted @ 2018-09-13 21:36 degvx 阅读(140) 评论(0) 推荐(0)
摘要:题意:一个数组arr,一个数字x,要使arr-x的最大子段最小,问该最小值。 三分x,复杂度logn,内层是最大子段的模板,只能用n复杂度的。因为是绝对值最大,正负各求一次,取大的。精度卡得不得了,要1e-12左右才能过。看着数据才调出精度的。 乱码: 阅读全文
posted @ 2018-09-13 16:54 degvx 阅读(134) 评论(0) 推荐(0)
摘要:题意:n个数字,最多操作k次,每次乘x,要使结果数组的与值最大。 能推断出结果是对一个元素操作k次,并且这个元素的二进制最高位比较大。并不一定是取最大的,比如1100和1010,乘以一次2,两种选法分别为11000|1010=11010,;;;1100|10100=11100后者更大。 有没有可能k 阅读全文
posted @ 2018-09-13 15:23 degvx 阅读(169) 评论(0) 推荐(0)
摘要:题意:一个等腰直角三角形一样的周期函数(只有x+轴),经过给定的点(a,b),并且半周期为X,使X尽量大,问X最大为多少? 如果a=b,结果就为b 如果a<b无解。 否则,b/(2*k*x-a)=1或者b/(a-2*k*x)=1;以前者为例,x=(a-b)/(2*k)。x越小越好,那么k尽量大,但是 阅读全文
posted @ 2018-09-13 10:16 degvx 阅读(219) 评论(0) 推荐(0)
摘要:题意:一数列an,如果存在一个k,有2^(ai)+2^(aj)+......=2^k成立,那么一次能拿走ai,aj这些全部。问最少拿的次数。 太简单。 乱码 阅读全文
posted @ 2018-09-11 21:03 degvx 阅读(139) 评论(0) 推荐(0)
摘要:题意:从一点到另一点,前t秒的风向与t秒后风向不同,问到另一点的最短时间 挺难的,做不出来,又参考了别人的代码。先得到终点指向起点的向量,设T秒钟能到。如果T>t则受风1作用t秒,风2作用T-t秒,否则只受风1作用t秒。风作用对向量的影响加到向量上。如果该向量长度小于(船速*T)^2的话,说明T秒能 阅读全文
posted @ 2018-09-11 20:29 degvx 阅读(131) 评论(0) 推荐(0)
摘要:题意:一个数组,一次操作为:除首尾不变,其它的=它与前后数字的中位数,这样对数组重复几次后数组会稳定不变。问要操作几次,及最后的稳定数组。 挺难的题,参考了别人的代码和思路。总的来说就是找01010,010101这样的,分别变为00000,000111。不知道谁发现的将它和异或联系起来。比如对010 阅读全文
posted @ 2018-09-11 16:21 degvx 阅读(129) 评论(0) 推荐(0)
摘要:题意:2种操作,转动或者奇偶位互换。 不论怎么交换,1的后两位一定是3,3的后两位一定是5。因此只要记录1,2的位置。 阅读全文
posted @ 2018-09-09 19:17 degvx 阅读(168) 评论(0) 推荐(0)
摘要:题意:有一个01组成的串,告知所有长度为2的子序列中,即00,01,10,11,的个数a,b,c,d。输出一种可能的串。 先求串中0,1的数目x,y。 首先,如果00的个数a不是0的话,设串中有x个0,C(X,2)=a,那么x*(x+1)=2a,解方程(其实只要看sqrt(x)*(sqrt(x)+1 阅读全文
posted @ 2018-09-08 21:08 degvx 阅读(166) 评论(0) 推荐(0)
摘要:题意:纳税额为金额的最大因数(除了本身)。为了逃税将金额n分为n1+n2+......。问怎样分纳税最少。 哥德巴赫猜想: 质数情况: 因此,如果n是偶数,结果就是2。 如果n是奇数。奇数只能拆成一奇一偶。分为2种情况。一偶是2时,那么如果一奇是质数,结果为2。如果一奇不是质数,那么结果至少为3,由 阅读全文
posted @ 2018-09-08 13:46 degvx 阅读(229) 评论(0) 推荐(0)
摘要:可暴力搜索,得到起点和周期后,小的一方加上周期,直到相等。相等值即为结果。 阅读全文
posted @ 2018-09-08 11:39 degvx 阅读(208) 评论(0) 推荐(0)