B(two point)

题意:

  给出长度为n的非递减数组E[1..n],对于所有三元组(i,j,k),1<=i<j<k<=n且Ek-Ei<=U,我们需要计算出最大的(Ek-Ej)/(Ek-Ei)

  n<=1e5

分析:

  考虑枚举i和k,那么j一定是i+1

  容易发现k越靠右值越大,所以k是满足Ek-Ei<=U的最大的k

  于是two point就行了

C(思维)

题意:

  主角每天对河流水位进行标记,相同水位不重复标记。给定每天的在河流水位上的标记数,求最小的所有天的河流水位下的标记数之和。

  n<=1e5

分析:

  等价于我们要最小化每天的标记总数

  我们可以得到一些限制条件,f(i)>=f(i-1) f(i)>=m(i)+1

  我们可以先从前到后扫一遍得到f

  但有些问题,就是可能会发生标记数突变,即有两天标记数差值超过1

  所以我们只能从后向前将依次递增,最后得到正确的f(i)

  答案就是Σf(i)-m(i)-1

D(二维偏序)

题意:
  在一个数轴上有n个飞机,每个飞机都有个飞行速度和初始位置。风速的范围是[-w,w]

  若两架飞机i,j可以在某个风速下同时到达0号点,我们就计数一次

  问最后计数的结果是多少

  n<=1e5,w<=1e5

分析:

  我们考虑作出每架飞机的到达时间与风速的函数图像,一定是光滑的单调曲线

  如果两架飞机可以同时到达原点,那么就是两条曲线有交点,那就是(ta-ta')(tb-tb')<=0

  于是就变成了一个二维偏序计数的问题,直接BIT就行了

E(dp)

题意:

  有n个箱子,每个箱子都有一个高度,部分箱子是重要箱子,部分箱子是非重要箱子。

  你需要找个垒箱子的顺序,使得底面高度在[l,r]范围内的重要箱子个数最多。

  n<=10000,保证所有箱子的高度和<=10000

分析:

  容易发现一个性质,那就是在[l,r]内连续放置的箱子一定是从小到大垒的

  于是我们可以枚举在[l,r]内放连续的最小的x个重要箱子,然后其它箱子作为垒高度用的

  但是可能会在这x个重要箱子上再放一个比较高的箱子,答案会+1

  于是dp[j]表示凑出高度j最少需要多少个重要箱子,就可以根据dp[j]的值判断是否答案加1了

  时间复杂度O(nh)

 #include<bits/stdc++.h>
using namespace std;
const int maxn=;
struct wjmzbmr
{
int a,b;
bool operator < (const wjmzbmr &x) const
{
if(b!=x.b) return b<x.b;
return a>x.a;
}
}a[maxn+];
int dp[maxn+];
int s[maxn+];
int n,l,r,m;
int ans;
int main()
{
scanf("%d%d%d",&n,&l,&r);
for(int i=;i<=n;++i) scanf("%d",&a[i].a);
for(int i=;i<=n;++i) scanf("%d",&a[i].b);
sort(a+,a+n+);
for(int i=;i<=maxn;++i) dp[i]=n+;
for(int i=n;i>=;--i) s[i]=s[i+]+a[i].a;
for(int i=;i<=n;++i) if(a[i].b==) ++m;else break;
//for(int i=1;i<=n;++i) printf("%d %d\n",a[i].a,a[i].b);
dp[]=;
for(int i=;i<=n;++i)
{
if(i>m)
for(int j=l;j+s[i]<=r;++j)
if(dp[j]<=n)
ans=max(ans,n-i++(dp[j]+m<i-));
for(int j=r;j>=a[i].a;--j)
dp[j]=min(dp[j],dp[j-a[i].a]+a[i].b);
}
for(int j=l;j<=r;++j)
if(dp[j]<n-m) ans=max(ans,);
printf("%d\n",ans);
return ;
}

codeforces #472(div 1)的更多相关文章

  1. Codeforces #344 Div.2

    Codeforces #344 Div.2 Interview 题目描述:求两个序列的子序列或操作的和的最大值 solution 签到题 时间复杂度:\(O(n^2)\) Print Check 题目 ...

  2. Codeforces #345 Div.1

    Codeforces #345 Div.1 打CF有助于提高做题的正确率. Watchmen 题目描述:求欧拉距离等于曼哈顿距离的点对个数. solution 签到题,其实就是求有多少对点在同一行或同 ...

  3. Codeforces Beta Round #27 (Codeforces format, Div. 2)

    Codeforces Beta Round #27 (Codeforces format, Div. 2) http://codeforces.com/contest/27 A #include< ...

  4. Codeforces#441 Div.2 四小题

    Codeforces#441 Div.2 四小题 链接 A. Trip For Meal 小熊维尼喜欢吃蜂蜜.他每天要在朋友家享用N次蜂蜜 , 朋友A到B家的距离是 a ,A到C家的距离是b ,B到C ...

  5. codeforces #592(Div.2)

    codeforces #592(Div.2) A Pens and Pencils Tomorrow is a difficult day for Polycarp: he has to attend ...

  6. codeforces #578(Div.2)

    codeforces #578(Div.2) A. Hotelier Amugae has a hotel consisting of 1010 rooms. The rooms are number ...

  7. codeforces #577(Div.2)

    codeforces #577(Div.2) A  Important Exam A class of students wrote a multiple-choice test. There are ...

  8. codeforces #332 div 2 D. Spongebob and Squares

    http://codeforces.com/contest/599/problem/D 题意:给出总的方格数x,问有多少种不同尺寸的矩形满足题意,输出方案数和长宽(3,5和5,3算两种) 思路:比赛的 ...

  9. Codeforces Round #472 Div. 1

    A:某个格子被染黑说明该行和该列同时被选中,使用并查集合并,最后看每个集合中是否有未被染黑的格子即可. #include<iostream> #include<cstdio> ...

随机推荐

  1. shell脚本,配置文件加载顺序,以及什么时候加载。

    在linux系统中,有/etc/profile,/etc/bashrc ,~/.bash_profile,~/bashrc这四个配置文件,这些文件,会自动的在某些时候加载,也就是点一下,一般都是些别名 ...

  2. Xcode 6 创建 Empty Application

    1.创建一个 Single View Application: 2.删除工程目录下的 Main.storyboard 和 LaunchScreen.xib: 3.打开 Supporting Files ...

  3. 响应式web设计视图工具及插件总结----20150113

    响应式web设计可以说火不火是迟早的,下面就对于最开始的视口调试的方法汇总,希望有好的方法大家一起交流. 1.火狐:从Firefox升级到29.0之后就不直接支持Firesizer了. 先安装Add- ...

  4. [LUOGU] P1551 亲戚

    题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 题目描述 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚.如 ...

  5. MySQL binlog-server搭建

    MySQL binlog-server搭建 binlog在备份中起着至关重要的作用,备份binlog文件时,只能先在本地备份,然后才能传送到远程服务器上.从MySQL5.6版本后,可以利用mysqlb ...

  6. json数据格式 与 for in

    格式一: var json1={ name:'json', age:'23' }; json1.name='金毛'; 格式二: (比较安全)  属性名字里有空格或者有连字符‘-’或者有保留字例如‘fo ...

  7. fshc之请求仲裁机制(from mcu and cache)

    1.arbiter模块本身放在sclk时钟域,但是输入都是来之HCLK时钟域. 2.当MCU/CACHE访问FSHC时,FSHC不接受其他请求,FSHC只可以同时处理一个请求的操作. 3.如果原子操作 ...

  8. 《linux设备驱动开发详解》笔记——11内存与IO访问

    内存访问与映射是linux驱动常见操作,操作硬件时离不开内存的映射,本章比较重要. 11.1 CPU与内存.I/O 目前的嵌入式处理器,都不提供专门的I/O空间,而仅存在内存空间:各种外设寄存器都直接 ...

  9. SVN 如何提交 SO 库文件

    今天提交代码时候发现,svn add 还是 svn st 均查看不到想要提交的 so 文件. 后来才知道原来是配置文件出了问题,把so文件的提交给屏蔽掉了. 修改步骤如下: 1.Ubuntu 系统,点 ...

  10. **没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案

    一.现象 我将之前Redhat9.0编译好的uboot,转到ubuntu12.04环境.在ubuntu环境下对 uboot重新编译提示错误.编译过程如下: root@hailin-virtual-ma ...