hdu 4293 dp求最大权值不重合区间
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4293
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std; const int maxn = ; int G[maxn][maxn];
int dp[maxn]; //dp[i]表示前i个人,最大有多少个人没撒谎。 int main()
{
//freopen("E:\\acm\\input.txt","r",stdin);
int N;
while(cin>>N){
memset(G,,sizeof(G));
for(int i=;i<=N;i++){
int a,b;
scanf("%d %d",&a,&b);
if(a+b>=N) continue;
if(a+b<N && G[a][N-b]+a+b<N)
G[a][N-b]++; //G[a][N-b]表示区间(a,N-b]里面元素的个数。
}
memset(dp,,sizeof(dp));
int ans = ;
for(int i=;i<=N;i++){
dp[i] = max(dp[i],dp[i-]);
for(int j=i+;j<=N;j++){
if(G[i][j]){
dp[j] = max(dp[j],dp[i]+G[i][j]);
}
}
}
printf("%d\n",dp[N]);
}
}
//一直错误的原因就是把G[i][j]+i+N-j>N 的全部抹掉了。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std; const int maxn = ; struct Node{
int A,B;
int num;
bool operator < (const Node& rhs) const{
return B > rhs.B;
}
}group[maxn]; int G[maxn][maxn];
int dp[maxn]; //dp[i]表示前i个人,最大有多少个人没撒谎。 int main()
{
//freopen("E:\\acm\\input.txt","r",stdin);
int N;
while(cin>>N){
memset(G,,sizeof(G));
for(int i=;i<=N;i++){
int a,b;
scanf("%d %d",&a,&b);
if(a+b<N && G[a][b]+a+b<N) //这句才是关键。WA的原因。
G[a][b]++;
}
int cnt = ;
for(int i=;i<N;i++)
for(int j=;j<N;j++){
if(G[i][j]){
group[cnt].A = i;
group[cnt].B = j;
group[cnt++].num = G[i][j];
}
}
sort(group,group+cnt);
memset(dp,,sizeof(dp));
int pv = ;
int i;
for(i=;i<=N;i++){
if(pv >= cnt) break;
int a = group[pv].A;
int num = group[pv].num;
int b = group[pv].B;
if(N-b == i){
dp[i] = max(dp[i-],dp[a]+num);
pv++;
while(pv < cnt && N-group[pv].B == i){
dp[i] = max(dp[i],dp[group[pv].A]+group[pv].num);
pv++;
}
}
else{
dp[i] = dp[i-];
}
}
printf("%d\n",dp[i-]);
}
}
hdu 4293 dp求最大权值不重合区间的更多相关文章
- hdu 1853 Cyclic Tour 最大权值匹配 全部点连成环的最小边权和
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1853 Cyclic Tour Time Limit: 1000/1000 MS (Java/Others) ...
- hdu 1506(dp求最大子矩阵)
题意:容易理解... 分析:对于每个单位矩阵,我们先求出连续比它高的最左边的下标假设为l,然后求出比它高的最右边的下标假设为r,然后矩阵的面积就是(r-l+1)*1:我们从左到 右扫一遍,求出每个点的 ...
- hdu 2870(dp求最大子矩阵)
题意:让你求的是由同一字母组成的最大子矩阵,w可以变成a或者b,x可以变成b或者c,y可以变成a或者c,z可以变成a或者b或者c. 分析:这是hdu 1506.hdu 1505的加强版,具体的分析看我 ...
- hdu 1505(dp求最大子矩阵)
题意:就是让你求出全由F组成的最大子矩阵. 分析:这是hdu 1506的加强版,只不过这道题变成了2维的,那我们就一行一行的来.具体的分析见1506的博客:http://www.cnblogs.com ...
- Poj1163 The Triangle(动态规划求最大权值的路径)
一.Description 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (Figure 1) Figure 1 shows a number triangle. Write a pro ...
- 紫书 例题 11-5 UVa 10048 (Floyd求最大权值最小的路径)
这道题是Floyd的变形 改成d[i][j] = min(d[i][j], max(d[i][k], d[k][j]))就好了. #include<cstdio> #include< ...
- 奔小康赚大钱 HDU - 2255(最大权值匹配 KM板题)
奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- HDU 4616 Game(经典树形dp+最大权值和链)
http://acm.hdu.edu.cn/showproblem.php?pid=4616 题意:给出一棵树,每个顶点有权值,还有存在陷阱,现在从任意一个顶点出发,并且每个顶点只能经过一次,如果经过 ...
- HDU 4514 - 湫湫系列故事——设计风景线 - [并查集判无向图环][树形DP求树的直径]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4514 Time Limit: 6000/3000 MS (Java/Others) Memory Li ...
随机推荐
- Ubuntu Server下建立VPN服务器 pptp 模式的方法
对于想要在外部访问内部的网络,除了在防火墙上开启相应服务器所对应的端口,最好的方法应该是建立VPN-Server,使得用户可以在外网任何一台计算机上拨入到内网中进行操作,而且VPN可以记录详细的日志, ...
- winform程序中界面的跳转问题
首先是我们进行窗口间的跳转,尤其注意的是winform程序里面的空间都是中线程安全的.但是注意的是如果你在一个线程中操纵另外的控件,这时候会提示你一个错误,这个错误的解决方法准备单独的在另一篇文章中来 ...
- codevs 4511 信息传递(NOIP2015 day1 T2)
4511 信息传递 NOIP2015 day1 T2 时间限制: 1 s 空间限制: 128000 KB 传送门 题目描述 Description 有个同学(编号为 1 到)正在玩一个信息传递的游戏. ...
- 适合自己的vim配置文件
主要用来写c++的:clang-completer这个是单独安装的,其他的都采用的vundle安装完成. clang-completer:只在centos7.2上安装成功过,6.4上失败了.先要安装一 ...
- Windows phone 之Interaction.Triggers的使用
两个步骤:1.添加以下两个程序集System.Windows.InteractivityMicrosoft.Expression.Interactions 2.添加xmlns:i="clr- ...
- jquery roundabout幻灯片插件3d图片切换支持图片旋转切换滚动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- paramiko模块实现堡垒机
通过SSHClient 执行命令 """通过用户名密码验证""" import paramiko # 创建 SSH 对象 ssh = par ...
- 写了几天的博客-feel
写博客 真的总结我自己的知识.长见识了.记录下自己遇到的东西,算是一个总结,有问题了,还可以回头看一下.很好 真的很好.
- VisualSVN Server 从此告别SVN记事本配置
http://www.visualsvn.com/downloads/ 注意下载的是Server版本,他还会提供一个visual Studio的插件: 安装完毕后,可以在管理界面进行角色添加,创建 ...
- iOS 开发常用的一些工具
http://www.itjhwd.com/ios-tool/ 通用工具 HomeBrew:OS X上非常出色的包管理工具. 源码控制 Git:分布式版本控制系统和源码管理系统,其优点是:快和简单易用 ...