NOIP 考前DP 复习
POJ 2533 最长不降子序列
#include <cstdio>
const int Maxn=;
int a[Maxn],Pos[Maxn],F[Maxn],n,Ans;
inline int Max(int x,int y) {return x>y?x:y;}
inline int Find(int x)
{
int l=,r=Ans,Res;
while (l<=r)
{
int mid=(l+r)>>;
if (a[Pos[mid]]<x) Res=mid,l=mid+; else r=mid-;
}
return Res;
}
int main()
{
scanf("%d",&n);
for (int i=;i<=n;i++) scanf("%d",&a[i]);
F[]=; Pos[]=; Ans=;
for (int i=;i<=n;i++)
{
int t=Find(a[i]);
Pos[t+]=i;
F[i]=t+;
Ans=Max(Ans,F[i]);
}
printf("%d\n",Ans);
return ;
}
POJ 2533
BZOJ 3886
状压DP+贪心
#include <cstdio>
#include <cstring>
const int Maxn=;
const int Maxm=;
const int Inf=0x3f3f3f3f;
inline int Min(int x,int y) {return x>y?y:x;}
inline int Max(int x,int y) {return x>y?x:y;}
int n,m,f[<<Maxn],Ans=Inf;
int Len[Maxn],P[Maxn],C[Maxn][Maxm];
int find(int x,int id)
{
int l=,r=P[id];
while (l<r)
{
int mid=(l+r+)>>;
if (C[id][mid]<=x) l=mid;
else r=mid-;
}
return l;
}
int main()
{
// freopen("c.in","r",stdin);
scanf("%d%d",&n,&m);
for (int i=;i<=n;i++)
{
scanf("%d%d",&Len[i],&P[i]);
for (int j=;j<=P[i];j++) scanf("%d",&C[i][j]);
}
memset(f,-,sizeof(f)),f[]=;
for (int i=;i<(<<n);i++)
{
if (f[i]==-) continue;
if (f[i]>=m)
{
int j,k;
for (j=,k=i;k;k-=(k&(-k))) j++;
Ans=Min(Ans,j);
continue;
}
for (int j=;j<=n;j++)
{
if (i&(<<(j-))) continue;
int k=find(f[i],j);
if (k==) continue;
f[i|(<<(j-))]=Max(f[i|(<<(j-))],C[j][k]+Len[j]);
}
}
printf("%d\n",Ans==Inf?-:Ans);
return ;
}
BZOJ 3886
NOIP 考前DP 复习的更多相关文章
- NOIP 考前 队列复习
BZOJ 1127 #include <cstdio> #include <cstring> #include <iostream> #include <al ...
- NOIP 考前 数论复习
POJ 2891 x=r1 (mod a1) x=r2 (mod a2) x=a1*x+r1,x=a2*y+r2; a1*x-a2*y=r2-r1; 用Extend_Gcd求出m1*x+m2*y=d; ...
- NOIP 考前 数据结构复习
BZOJ 1455 左偏树即可 #include <cstdio> #define LL long long ; struct Info{LL l,r,v,Dis;}Tree[Maxn]; ...
- NOIP 考前 Tarjan复习
POJ 1236 给定一个有向图,求: 1) 至少要选几个顶点,才能做到从这些顶点出发,可以到达全部顶点 2) 至少要加多少条边,才能使得从任何一个顶点出发,都能到达全部顶点 第一个就是缩点之后有多少 ...
- noip考前模板复习
网络流 Dinic(搭配飞行员) //Serene #include<algorithm> #include<iostream> #include<cstring> ...
- Noip前的大抱佛脚----Noip真题复习
Noip前的大抱佛脚----Noip真题复习 Tags: Noip前的大抱佛脚 Noip2010 题目不难,但是三个半小时的话要写四道题还是需要码力,不过按照现在的实力应该不出意外可以AK的. 机器翻 ...
- NOIP考前划水
NOIP考前划水 君指先跃动の光は.私の一生不変の信仰に.唯私の超電磁砲永世生き! 要开始背配置了? 3行不谢. (setq c-default-style "awk") (glo ...
- 区间DP复习
区间DP复习 (难度排序:(A,B),(F,G,E,D,H,I,K),(C),(J,L)) 这是一个基本全在bzoj上的复习专题 没有什么可以说的,都是一些基本的dp思想 A [BZOJ1996] [ ...
- 集训DP复习整理
DP复习 集训%你赛2:测绘(审题DP) 经过2000+个小时的努力终于把这道题做出来的蒟蒻通 分析: 这道题我一直没做出来的原因就是因为我太蒟了题面看不懂,题面读懂了,其实不是特别难. 题目翻译: ...
随机推荐
- angularjs的一些坑关于 $sec
今天遇到$sec的问题 app.filter('to_trusted', ['$sce', function ($sce) { return function (text) { return $sce ...
- 苹果下如果安装nginx,给nginx安装markdown第三方插件
用brew install nginx 这样安装的是最新版的nginx, 但是在有些情况下,安装第三方插件需要特定的版本,更高一级的版本可能装不上. 它的原理是下载安装包进行自动安装,建立软链,这样就 ...
- [转+整理] Android 分辨率,密度,像素单位说明
Android支持下列所有单位: px(像素):屏幕上的一个点.不同设备显示效果相同,一般我们HVGA代表320×480像素,这个用的比较多.in(英寸):长度单位.mm(毫米):长度单位.pt(磅) ...
- C#winform调整控件的位置
现在有三个控件并排放置 第二个控件有隐藏功能 隐藏后第一个控件和第三个控件的距离要缩小,于是就要改变第三个控件的位置 尝试用Location.X属性去设置,但是被告知此非变量 于是只能另外想办法 搜到 ...
- [原创]Win7、Win8、Win10始终以管理员身份运行程序。
在Win7.Win8.Win10系统中,以管理员身份运行程序很麻烦,一般有以下几种方式: 1.在可执行程序或快捷方式上右键,以管理员身份运行: 2.在可执行程序或快捷方式上右键->属性-> ...
- yii2 框架的 save() 方法 执行模式条件。
save() 方法会调用 insert() 和 update() 中的一个, 用哪个取决于当前 AR 对象是不是新对象(在函数内部,他会检查 yii\db\ActiveRecord::isNewRe ...
- Adb refused a command 解决方法
原文:How To Fix Android Error Adb Refused A Command 地址:http://downloadfixit.com/android-error-adb-refu ...
- javascript温故知新
1 javascript作用域 初学javascript的时候,变量的作用域就感觉有些麻烦,他不像C#或java那样清晰明了,貌似处处都在作用域内,但有时会处处都是空. javascript中,变量的 ...
- iOS开发_内存泄漏、内存溢出和野指针之间的区别
今天,在工作群中,被问到了内存泄漏和野指针指向的区别,自己答的不是很好,特意回来查了资料,在博文中总结一下经验,欢迎指正. 内存泄漏:是指在堆区,alloc 或new 创建了一个对象,但是并没有放到自 ...
- μC/OS-Ⅲ系统的任务挂起表
在μC/OS-Ⅲ系统中任务挂起表与任务就续表十分相似,只不过任务就续表记录就绪状态的任务,任务挂起表记录等待某个内核对象的任务.任务挂起表是一个类型为OS_PEND_LIST的数据结构,包含三个成员: ...