1064 Bamboo和"Coco"

分析题意

每个亡灵至少一个花瓣,相邻的亡灵中思念值高的要获得的花瓣高(思念值相等是不需要花瓣一样多的)。主要考贪心思路,为了使得花瓣总量最少,每次比思念值更低的“邻近亡灵”的花瓣数多一就可以了

思路

都是先保证每个亡灵至少一个花瓣


思路一

直接模拟思路,同时关心左边和右边(或者说前边和后边),一次循环是不够的,比如3 2 1,修改了1号的花瓣数,再修改2号的花瓣数,此时会对一号产生影响。需要多次遍历,直到没有新的改变为止,算法为O(n^2),大的数据主要为卡掉这种暴力的思路

大致代码如下:

 while (flag)
{
flag = false;
for (int i = 0; i < n; i++)
{
if (i != n - 1 && ratings[i] > ratings[i + 1] && candies[i] <= candies[i + 1])
{
candies[i] = candies[i + 1] + 1;
flag = true;
}
if (i > 0 && ratings[i] > ratings[i - 1] && candies[i] <= candies[i - 1])
{
candies[i] = candies[i - 1] + 1;
flag = true;
}
}
}

思路二

两遍循环,先从左到右考虑与左边的亡灵相比,再从右到左考虑与右边的亡灵相比,可以用两个数组也可以用一个数组

两个数组,left[]和right[]分别都初始化为1,各自只考虑左边和右边。

对于left:当前比左边思念值高时,left[i]=left[i-1]+1;

对于right:当前比右边思念值高时,right[i]=right[i+1]+1;

最后要同时满足左右两边的条件,所以ans[i]=max(left[i],right[i])

代码如下:

const int maxx = 1e6+5;
int Left[maxx],Right[maxx];
int thinking[maxx];
int main()
{
int n,x;
while(~scanf("%d",&n))
{
for(int i = 0;i<n;i++)
{
scanf("%d",&thinking[i]);
}
for(int i = 0;i<n;i++)
{
Left[i]=1;Right[i]=1;
} for(int i= 1;i<n;i++)
{
if(thinking[i]>thinking[i-1])
Left[i]=Left[i-1]+1;
}
for(int i = n-2;i>=0;i--)
{
if(thinking[i]>thinking[i+1])
Right[i]=Right[i+1]+1;
}
int res = 0;
for(int i = 0;i<n;i++)
res += max(Left[i],Right[i]);
printf("%d\n",res);
} }

也可以只用一个数组,第二遍从右到左时加点条件即可,节省空间

核心代码如下:

for(int i = 0; i<len-1; i++)
{
if(ratings[i+1]>ratings[i])
num[i+1]=num[i]+1;
}
for(int i = len-1; i>0; i--)
{
if(ratings[i-1]>ratings[i]&&num[i-1]<=num[i])
num[i-1]=num[i]+1;
}
for(int i =0; i<len; i++)res += num[i];

2016级算法第五次上机-C.Bamboo和"Coco"的更多相关文章

  1. 2016级算法第五次上机-B.Bamboo&APTX4844魔发药水

    Bamboo&APTX4844魔发药水 题意 "于是,Bamboo耐着性子,看巫师从袖子里掏出 M 瓶时光泉水和 K 粒绿色能量.每瓶时光泉水重量为 c ,生发效果为 l:每粒绿色能 ...

  2. 2016级算法第五次上机-F.ModricWang的水系法术

    1066 ModricWang的水系法术 思路 比较典型的最大流问题,需要注意的是,题目已经暗示(明示)了这里的边是双向的,在建图的时候需要加上反向边的容量值. 解决最大流问题的基本思路就是不断在残量 ...

  3. 2016级算法第五次上机-E.AlvinZH的学霸养成记IV

    1039 AlvinZH的学霸养成记IV 思路 难题,最大二分图匹配. 难点在于如何转化问题,n对n,一个只能攻击一个,判断是否存在一种攻击方案我方不死团灭对方.可以想到把所有随从看作点,对于可攻击的 ...

  4. 2016级算法第五次上机-A.Beihang Collegiate Pronunciation Contest 2017

    1065 Beihang Collegiate Pronunciation Contest 2017 思路 在字符串中不断做匹配 找到一个匹配就输出 时间复杂度\(O(n)\) ps.模式串是定长的, ...

  5. 2016级算法第五次上机-G.ModricWang的撒币游戏

    1062 ModricWang的撒币游戏 思路 此题为2017年ACM-ICPC亚洲区域赛乌鲁木齐赛区的A题,现场94个队中有38个队做出此题.在这里作为满分以外的题,是为了让大家看一下外面一些题的风 ...

  6. 2016级算法第五次上机-D.AlvinZH的学霸养成记III

    850 AlvinZH的学霸养成记III 思路 难题.概率DP. 第一种思考方式:直接DP dp[i]:从已经有i个学霸到所有人变成学霸的期望. 那么答案为dp[1],需要从后往前逆推.对于某一天,有 ...

  7. 2016级算法第六次上机-E.Bamboo之吃我一拳

    Bamboo之吃我一拳 分析 当两个点的距离<=d时,才可以出拳,想要使得满足出拳条件的点对最少但不为0 寻找最近点对距离,得到的最近距离能够使得可以出拳的组数最少,因为除了最近点对外其他组合均 ...

  8. 2016级算法第六次上机-A.Bamboo之寻找小金刚

    Bamboo之寻找小金刚 分析 可以抽象为许多连续线段,分别计数左拐和右拐的个数.考察叉积的基础应用. 假设ABC三点构成一个夹角∠ABC,B就是拐点,AC是辅助形成夹角.考虑线段AB和BC形成的向量 ...

  9. 2016级算法第四次上机-E.Bamboo and the Ancient Spell

    Bamboo and the Ancient Spell 分析 可能英文读题难度比较大,但是只要看到全大写的 "THE LONGEST COMMON SUBSEQUENCE !"应 ...

随机推荐

  1. Redis清理

    Redis登录: Redis目录: redis-cli.exe -h 127.0.0.1 -p 6739 login:  auth “password”      flushall

  2. Openssl pkeyutl命令

    一.简介 pkeyutl命令能够测试所支持的密钥算法的性能 二.语法 openssl rsautl [-in file] [-out file] [-sigfile file] [-inkey fil ...

  3. No member named 'setResizeMode' in 'QHeaderView' - Convert Qt 4.7 to Qt 5.8

    https://stackoverflow.com/questions/42743141/no-member-named-setresizemode-in-qheaderview-convert-qt ...

  4. ethtool -p eth0 物理口一个灯在不停的闪烁

    摘自:https://blog.csdn.net/morigejile/article/details/78598645 你的  服务器有多个网卡并且已经配置好运行当中,你却没记得eth0.eth1. ...

  5. win10 startup启动目录路径命令

    仅对当前用户生效: C:\Users\Username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 开始-运行 shel ...

  6. Web实践—Rec 1

    累计完成任务情况: 阶段内容 参与人 开会学习作业要求,取得共识 全体 注: 1."阶段内容"划斜线表示完成.2.采用倒序. 具体情况: 正式开展实践作业之前的说明: 按照之前达成 ...

  7. Go 网络编程笔记

    前言: 本文是学习<<go语言程序设计>> -- 清华大学出版社(王鹏 编著) 的2014年1月第一版 做的一些笔记 , 如有侵权, 请告知笔者, 将在24小时内删除, 转载请 ...

  8. 移动开发iOS&Android对比学习--异步处理

    在移动开发里很多时候需要用到异步处理.Android的主线程如果等待超过一定时间的时候直接出现ANR(对不熟悉Android的朋友这里需要解释一下什么叫ANR.ANR就是Application Not ...

  9. mybatis所需pom文件内容以及配置文件

    官方网站http://www.mybatis.org/mybatis-3/zh/index.htmlpom文件<?xml version="1.0" encoding=&qu ...

  10. config的配置文件