暴力区间dp
某n2n^2姿势一直没学会

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
const int u=4010;
struct rec{int x,l,r;}a[u];
int f[u][u],d[u][u],v[u][u],b[u],n,m,i;
vector<int> c[u];int dp(int l,int r)
{if(l>r) return 0;if(f[l][r]!=-1) return f[l][r];f[l][r]=dp(l+1,r);int i,j;for(i=0;i<c[l].size();i++)if(a[j=c[l][i]].r<r&&dp(l,a[j].r)+dp(a[j].r,r)>f[l][r])f[l][r]=f[l][a[j].r]+f[a[j].r][r],d[l][r]=j;return f[l][r]+=(v[l][r]>0);
}void print(int l,int r)
{if(l>r) return;if(v[l][r]) printf("%d ",v[l][r]);if(d[l][r]) print(l,a[d[l][r]].r),print(a[d[l][r]].r,r);else print(l+1,r);
}int main()
{cin>>n;for(i=1;i<=n;i++){scanf("%d%d",&a[i].x,&a[i].r);a[i].l=a[i].x-a[i].r,a[i].r+=a[i].x;b[++m]=a[i].l,b[++m]=a[i].r;}sort(b+1,b+m+1);m=unique(b+1,b+m+1)-b-1;for(i=1;i<=n;i++){a[i].l=lower_bound(b+1,b+m+1,a[i].l)-b;a[i].r=lower_bound(b+1,b+m+1,a[i].r)-b;c[a[i].l].push_back(i);v[a[i].l][a[i].r]=i;}memset(f,-1,sizeof(f));cout<<dp(1,m)<<endl;print(1,m);return 0;
}

CodeForces 39C相关推荐

  1. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  2. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  3. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  4. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

  5. codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...

    题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...

  6. CodeForces 595A

    题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...

  7. codeforces A. Jeff and Digits 解题报告

    题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...

  8. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  9. Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)

    Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...

最新文章

  1. join为什么每个字符都分割了 js_JS截取与分割字符串常用技巧总结
  2. arcgis坐标系学习总结
  3. oracle易忘函数用法(5)
  4. dijkstra算法原理_这 10 大基础算法,程序员必知必会!
  5. hystrix断路器引发的相关概念
  6. IIC驱动5150遇到麻烦
  7. android自定义控件(6)-详解在onMeasure()方法中如何测量一个控件尺寸
  8. Linux 新加一块硬盘,添加到已有逻辑卷扩容
  9. 使用FPM打包工具打rpm包
  10. es6 嵌套数组循环_ES6 常用数组循环
  11. mapreduce优化总结
  12. MySQL 添加字段报错1005 Can‘t create table ‘#sql-12d23_4bd‘ (errno: 28)
  13. 有时我都非常讨厌自己,特别容易相信人
  14. 如何在VB6.0里动态使用具有事件的对象
  15. does not esixt in the current content error
  16. [转]Git 撤销操作
  17. matplotlib的学习,全是源码,勿喷
  18. fopen用java代码实现_C语言基础(20)-文件操作(fopen,getc,fclose)
  19. 图形学经典参考书籍 电子书下载
  20. C++日志系统log4cxx

热门文章

  1. 【Apple Studio Display】-苹果5K显示器黑屏问题处理
  2. 购买计算机如何选择CPU,电脑CPU如何挑选 电脑小白选购CPU注意事项
  3. github 拉取指定 tag 版本
  4. 中文分词的python实现-基于FMM算法
  5. 奥林匹克计算机竞赛保送,奥数再见!清北保送生为什么都选信息学奥赛
  6. 给python点颜色青少年学编程_给老师的新年祝福语
  7. 请用面向对象的思想,谈一谈这次面试的过程
  8. python实现进制转换器_python实现进制转换(二、八、十六进制;十进制)
  9. java 网络编程详细解析
  10. C语言:练习3-8 查询水果价格.2021-07-19