1402最大值:正向从1到n,如果没有限制,就依次递增1,如果有限制,就取那个限制和递增到这的最小值。这样保证1和每个限制点后面都是符合题意的递增,但是限制点前面这个位置可能会有落差(之前递增多了)。不过我们再反向来一遍,再使每一个限制点前面都是符合题意的递增,每个位置取反向这个过程和正向扫过的最小值。再对全局取max。

  2479小b分糖果:正向从1到n,如果相邻且评分更高,就递增1,反向从n到1如果相邻且评分更高,就取后面位置递增1和正向扫过的最大值(前面的糖果已经是最少的了,不能减了)。再对全局求和。

1042:

 #include <bits/stdc++.h>
using namespace std;
#define maxn 100050
int s[maxn], ans1[maxn],ans2[maxn];
int main() {
std::ios::sync_with_stdio ();
cin.tie ();
int t; cin >> t;
while (t--) {
int n, m; cin >> n >> m;
memset (s, -, sizeof (s));
memset (ans1, , sizeof (ans1));
memset (ans2, , sizeof (ans2));
for (int i = ; i < m; i++) {
int id, x; cin >>id>>x ; s[id]=x;
}
for (int i = ; i <= n; i++) {
ans1[i]=ans1[i-]+;
if(s[i]!=-) ans1[i]=min(ans1[i],s[i]);
}
ans2[n]=ans1[n];
for(int i = n - ; i > ; i--){
ans2[i]=ans2[i+]+;
if(s[i]!=-) ans2[i]=min(ans2[i],s[i]);
}
int maxx=;
for(int i=;i<=n;i++)
maxx=max(maxx,min(ans1[i],ans2[i])); cout<<maxx<<endl;
} return ;
}

2479:

 ///这题碰见两次了
#include <bits/stdc++.h>
using namespace std;
#define maxn 50050
int num[maxn],a[maxn];
int main(){
std::ios::sync_with_stdio();
cin.tie();
int n; cin>>n;
long long ans=;
for(int i=;i<n;i++) cin>>a[i];
fill(num,num+n,);
for(int i=;i<n;i++)
if(a[i]>a[i-]) num[i]=num[i-]+; for(int i=n-;i>=;i--)
if(a[i]>a[i+]) num[i]=max(num[i],num[i+]+); for(int i=;i<n;i++) ans+=num[i];
cout<<ans<<endl;
return ;
}

51nod——1402最大值、2479小b分糖果 (套路)的更多相关文章

  1. 51nod 1402 最大值 3级算法题 排序后修改限制点 时间复杂度O(m^2)

    代码: 题意,第一个数为0,相邻的数相差0或者1,有一些点有限制,不大于给定值,求这组数中可能的最大的那个数. 这题我们看一个例子:第5个数的限制为2 1 2 3 4 5 6 7 8 9 0 1 2 ...

  2. 51nod 1402 最大值(贪心)

    原题链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1402 思路:借鉴了这篇博文http://blog.csdn.n ...

  3. hunnu11543:小明的烦恼——分糖果

    Problem description   小明在班里一直是个非常公正的孩子.这点同学和老师都非常清楚,这不,老师每周都会从家里带来一些糖果.然后叫小明把糖果分给其它小朋友,但这个班里的同学都有一个非 ...

  4. 小智的糖果(Candy) 51nod 提高组试题

    luogu AC通道! (官方数据) 题目描述 小智家里来了很多的朋友,总共有N个人,站成一排,分别编号为0到N-1,小智要给他们分糖果.但 是有的朋友有一些特殊的要求,有的人要求他左右的两个人(左边 ...

  5. Java实现 LeetCode 575 分糖果(看看是你的长度小还是我的种类少)

    575. 分糖果 给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果.你需要把这些糖果平均分给一个弟弟和一个妹妹.返回妹妹可以获得的最大糖果的种类数. 示例 1: 输入 ...

  6. CSDN 分糖果算法的思路和求助

    昨天晚上 在csdn上做了一道分糖果的题目,我自个测的是没有问题,但是提交答案后,老失败,提示 你的程序正常运行并输出了结果,但是答案错误你的程序输出结果与测试数据中的输出结果不符 我先把自个思路说一 ...

  7. P3817 小A的糖果(洛谷月赛)

    P3817 小A的糖果 题目描述 小A有N个糖果盒,第i个盒中有a[i]颗糖果. 小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖 ...

  8. 【BZOJ4548】小奇的糖果 set(链表)+树状数组

    [BZOJ4548]小奇的糖果 Description 有 N 个彩色糖果在平面上.小奇想在平面上取一条水平的线段,并拾起它上方或下方的所有糖果.求出最多能够拾起多少糖果,使得获得的糖果并不包含所有的 ...

  9. 【BZOJ-4548&3658】小奇的糖果&Jabberwocky 双向链表 + 树状数组

    4548: 小奇的糖果 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 103  Solved: 47[Submit][Status][Discuss] ...

随机推荐

  1. JSON长度

    import com.jayway.jsonpath.JsonPath; import com.jayway.jsonpath.Predicate; import net.minidev.json.J ...

  2. 利用Putty连接树莓派

    解决emergency mode问题 记得上一次玩我的树莓派是做一个小型的服务器,挂载一个8GB的USB做服务器,在Windows电脑上直接进行访问.结果今天就开启不了树莓派了,总是进入emergen ...

  3. [Leetcode]011. Container With Most Water

    public class Solution { public int maxArea(int[] height) { int left = 0, right = height.length - 1; ...

  4. Linux命令发送Http的get或post请求(curl和wget两种方法)

    Http请求指的是客户端向服务器的请求消息,Http请求主要分为get或post两种,在Linux系统下可以用curl和wget命令来模拟Http的请求.下面就来介绍一下Linux系统如何模拟Http ...

  5. maven插件: shade, assembly

    shade插件的作用: 通过版本的exclution无法解决jar冲突的问题, 解决方案是把依赖的包打到本model的jar中,打包的时候由mvn plugin自动修改代码中的依赖jar包名 relo ...

  6. (转)linux 系统下虚拟用户的作用

    原文:http://blog.csdn.net/luoshao20120430/article/details/16900653            http://blog.csdn.net/u01 ...

  7. IIS下FTP服务器的PASV端口范围修改方法

    应该有不少使用IIS自带的FTP服务器,IIS的FTP里的PASV模式下默认端口范围1024 - 65535,连接时会从中随机选择到响应.这样的超大范围就给服务器安全带来的隐患. 虽然可以通过一些方法 ...

  8. Quartz.NET实现作业调度(3.0版本实现)定时执行一个任务

    2.0版本请参考https://www.cnblogs.com/best/p/7658573.html这里的文章很详细: 我们现在想每5秒钟往txt文件夹里存储一个时间 首先:定义一个类,实现Quar ...

  9. OAuth相关知识

    什么是OAuth认证 1.一种安全认证的协议;2.协议为用户资源的授权提供了一个安全的.开放又简易的标准;3.OAuth的授权不会使第三方触及到用户的账户信息(例如用户名和密码) 网址:www.oau ...

  10. Erlang 001--开篇

    有段时间没有更新博客了,最近稍微接触了下一门相对小众的语言Erlang,个人感觉学习一段时间有必要总结总结,本文作为该系列的开篇,仅仅列举一些与Java的一些不同点和个人对Erlang的一些主观印象, ...