我们设f[i]为保留第i个木块最多的符合未知数 显然f[i]=max(f[j])+1 满足i>j a[i]>a[j] i-j>=a[i]-a[j] 我们把最后一个式子变成a[i]-i<=a[j]-j 三元关系很不好弄对吧,但仔细观察可知,由最后两个式子一定可以推出i>j 那不就水了,排序树状数组即可 1 var f,a,b:array[0..100010] of
转载 2015-05-27 14:33:00
48阅读
2评论
用f[i]表示前i个数,i必须被贡献的答案,考虑转移,枚举下一个被贡献的数j,那么j需要满足:1.$j<i$;2.$a[j]<a[i]$;3.$a[i]-(i-j+1)\le a[j]$,化简后即$j-a[j]\le i-a[i]$;4.$a[i]\le i$这是一个三维偏序,但发现第二个限制和第三
转载 2019-12-21 05:59:00
94阅读
2评论
为啥我考虑了DP考虑了cdq就没考虑考虑两个合起来哩 这个题首先一看就很乱搞。。。 容易想到自己的值减去下标。。。 那么当前位置DP的话能继承什么呢? 首先位置要在自己前面,然后值要比自己小,还有,因为它前面的积木被推了它受影响我也受影响,我们之间的积木被推了我受影响它没事,所以它距离正确位置的距离
转载 2018-08-31 09:55:00
37阅读
2评论
1109: [POI2007]堆积木KloTime Limit:10 SecMemory Limit:162 MBSubmit:530Solved:172[Submit][Status]DescriptionMary在她的生日礼物中有一些积木。那些积木都是相同大小的立方体。每个积木上面都有一个数。M... Read More
转载 2014-09-20 13:43:00
34阅读
2评论
思路:我们考虑dp[ i ] 表示的是 i 在指定位置上 的最大个数, dp[ i ] = max(dp[ j ] + 1) j需要满足3个条件 1. j < i 2. a[ j ] < a[ i ] 3. a[ i ] - a[ j ] <= i - j 通过 2,3 我们能推出1 所以其实是个二
转载 2018-06-17 15:13:00
33阅读
2评论
BZOJ1109】[POI2007]堆积木Klo Description Mary在她的生日礼物中有一些积木。那些积木都是相同大小的立方体。每个积木上面都有一个数。Mary用他的所有积木垒了一个高塔。妈妈告诉Mary游戏的目的是建一个塔,使得最多的积木在正确的位置。一个上面写有数i的积木的正确位置
转载 2017-06-28 17:08:00
52阅读
2评论
题意$n(1 \le n \le 100000)$个数放在一排,可以一走一些数(后面的数向前移),要求最大化$a_i=i$的数目。 分析分析容易得到一个dp方程。 题解$d(i)$表示前$i$个数且第$i$个数放在$a_i$位置的最大答案,则$d(i) = max(d(j)+1) (j < i, ...
原创 2021-08-11 10:57:56
69阅读
Sol 排序+树状数组. 我们要找一个满足下列条件的最长序列. \(j-w[j]<=i-w[i],j<i,w[j]<w[i]\) 就是维护一个偏序集的最长上升子序列,然后第一个和第三个式子加起来可以推出第二个式子,然后就是二维偏序,用树状数组来维护就可以了. Code
原创 2021-08-04 09:08:33
37阅读
1109: [POI2007]堆积木Klo Description Mary在她的生日礼物中有一些积木。那些积木都是相同大小的立方体。每个积木上面都有一个数。Mary用他的所有积木垒了一个高塔。妈妈告诉Mary游戏的目的是建一个塔,使得最多的积木在正确的位置。一个上面写有数i的积木的正确位置是这个塔
转载 2018-05-02 20:51:00
75阅读
2评论
【题意】 n个数的序列,删除一个数后序列左移,求最后满足i==a[i]的最大个数。 【思路】 设最终得到a[i]==i的序列为s,则s应满足: i<j,a[i]<a[j],i-a[i]<=j-a[j] 最后一项代表后边的移动距离不少于前边的。 因为i=i-a[i]+a[i] 所以只要满足i-a[i]
转载 2016-03-19 19:12:00
25阅读
2评论
题目大意:给定一个序列,可以多次将某个位置的数删掉并将后面所有数向左串一位,要求操作后a[i]=i的数最多首先我们假设最后a[i]=i的数的序列为S那么S满足随着i递增,a[i]递增(相对位置不变),i-a[i]单调不减(后面的不会比前面移动的少)这是一个三维偏序问题要是不看题解我就真去写CDQ分治了233我们发现i=(i-a[i])+a[i]也就是说如果一个序列满足i-a
原创 2023-04-19 00:35:39
20阅读
1109: [POI2007]堆积木KloTime Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1143  Solved: 424[Submit][Status][Discuss
原创 2023-07-07 13:42:49
31阅读
题目大意:给定一个序列,能够多次将某个位置的数删掉并将后面全部数向左串一位,要求操作后a[i]=i的数最多首先我们如果最后a[i]=i的数的序列为S那么S满足随着i递增,a[i]递增(相对位置不变),i-a[i]单调不减(后面的不会比前面移动的少)这是一个三维偏序问题要是不看题解我就真去写CDQ分治...
转载 2015-03-29 20:27:00
41阅读
2评论
mdzz写错变量见祖宗#include<bits/stdc++.h>using namespace std;char cb[1<<15],*cs=cb,*ct=cb;#define getc() (cs==ct&&(ct=(cs=cb)+fread(cb,1,1<<15,stdin),cs==ct)?0:*cs++)template<cla
原创 2023-02-21 08:45:09
43阅读
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1109 【题目大意】 Mary在她的生日礼物中有一些积木。那些积木都是相同大小的立方体。 每个积木上面都有一个数。Mary用他的所有积木垒了一个高塔。 妈妈告诉Mary游戏的目的是建一个塔
转载 2017-04-17 14:35:00
20阅读
2评论
结构体二级排序、对库中排序函数的熟悉、
转载 2012-07-06 01:59:00
82阅读
2评论
1 class Solution: 2 def corpFlightBookings(self, bookings: 'List[List[int]]', n: int) -> 'List[int]': 3 dic = dict() 4 for begin,end,val in bookings: 5 if begi
转载 2019-07-07 12:43:00
85阅读
1109. Group Photo (25)时间限制400 ms内存限制65536 kB代码长度限制160ng a grou
原创 2022-08-30 10:10:34
34阅读
题目题意:给定学生身高信息
原创 2023-06-27 10:23:50
81阅读
PAT 1109 C++ 版1.题意2.分析3.代码#include<cstdio>#include<algorithm>#include<string.h>#include<iostream>#define N 10001using namespace std;//新建一个student 结构体,用于保存student的信息...
原创 2021-07-08 11:39:03
31阅读
  • 1
  • 2
  • 3
  • 4
  • 5