hdu 5037 Frog

基于用户的协同过滤算法(userCF) 1.定义 userCF:当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。这种方法称为基于用户的协同过滤算法。 基于用户的协同过滤算法主要包括两个步骤: 2.第一步:找到和目标用户兴趣相似的用户集合。 利用行为的相似度计算兴趣的相似度。给定用户u和用户v,令N(u)表示用户u曾经有过正反馈的物品集合,令N(v)为用户v曾经有过... 阅读详情

        题意:一条宽为m的河,上面已经有n块石头在各自的位置,青蛙每次最多跳l个单位距离。你作为上帝可以增加一些石头使得青蛙能跳到对岸,不过调皮的你想让青蛙跳的次数最多。青蛙很聪明,总会在你添加石头之后选择最少的跳跃次数。问青蛙需要跳多少次。

        思路:贪心。一定要巨贪才行。方法是记录当前的位置cur和上一次的位置pre,开始是pre置为-l(因为贪)。然后让青蛙跳到能跳的最远的石头。如果跳不到,只能补石头了,但是需要补得尽可能近,也就是补在pre刚好跳不到的位置(pre+l+1,因为贪),如此重复就可以了。不过还有一个问题,河可能非常宽,如果一块一块石头补,会超时。所以我们推一个公式计算出补多少,补完之后的cur和pre,具体见代码。


#include<iostream>
#include<cmath>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<string.h>
#include<cstdio>

using namespace std;

int a[200010];

int main(){
	int t;
	cin>>t;
	for(int cas=1;cas<=t;cas++){
		int n,m,l;
		scanf("%d%d%d",&n,&m,&l);
		for(int i=1;i<=n;i++){
			scanf("%d",&a[i]);
		}
		a[0]=0; a[n+1]=m;
		sort(a,a+n+1);
		
		int pre=-l;
		int cur=0;
		int k=0;
		int ans=1;
		while(cur+l<m){
			if(a[k+1]>cur+l){
				//避免超时,一次性补上多步 
				int x=(a[k+1]-pre-l)/(l+1);
				int y;
				pre+=x*(l+1);
				if(pre+l>=a[k+1])y=x-1;
				else y=x;
				cur+=y*(l+1);
				if(pre>cur)swap(pre,cur);
				ans+=(x+y);	
				if(x==0){//至少跳一步 
					ans++;
					int tmp=cur;
					cur=pre+l+1;
					pre=tmp;
				}
			}else{
				while(a[k+1]<=cur+l){
					k++;
				}
				pre=cur;
				cur=a[k];
				ans++;
			}
		}
		printf("Case #%d: %d\n",cas,ans);
	}
	return 0;
}


5分钟搞定Google Custom Search API申请:从注册到获取CX Key全流程 本文详细介绍了如何快速申请和配置Google Custom Search API,从Google Cloud项目创建、启用计费、获取API Key,到在Programmable Search Engine控制台创建自定义搜索引擎并获取关键的CX Key,提供了全流程实战指南。文章还包含安全配置建议、API调用测试方法及前端与后端的集成代码示例,帮助开发者高效实现网站或应用的智能搜索功能。 阅读详情

相关推荐

NAT反向代理技术的实现(外网访问内网)

NAT反向代理技术的实现(外网访问内网)(版权所有,引用 请联系作者,注明出处) NAT技术是网络中的重要应用之一。当有一个场景:内网搭建了服务器,需要外网访问时,可以借助NAT映射来实现。如:单位建立了一个Web服务器,我们希望在员工回家之后,依然可以访问到它,那怎么实现呢? 下面的拓扑图,就用来示范这个应用反面场景的实现过程。 一、题目要求: 地址配置如图。使用静态路由: 1、配置右侧交换机2950T,实现单臂路由; 2、配置路由使网络连通; 3、配置NAT访问,实现外网对风网服务器的

joyousmime的博客 8487

HDU——5037——Frog

http://acm.hdu.edu.cn/showproblem.php?pid=5037 贪心,一个月没做题了,这道题卡了半天0 0~ 只要考虑清楚走两个时,为了保证最优,使得距离要是L+1,如果小于这个值,会导致能直接走到这里,就不是最优了 题目要求最差情况下青蛙走的最佳情况,所以每次开始都使他只走1,然后走N #include <cstdio> #inc...

dgjm4087的博客 225

实战避坑:示波器测量非隔离开关电源的炸机风险与隔离方案

本文详细分析了使用示波器测量非隔离开关电源时的炸机风险,揭示了地线环路导致的短路问题,并对比了四种防炸机解决方案,包括示波器隔离供电、拔掉电源地线、使用差分探头和被测板隔离供电。重点推荐使用隔离变压器方案,确保测量安全与精度,同时提供了实操建议与经验分享,帮助工程师避免常见测量事故。

weixin_29224309的博客 556

HDU 5037 Frog

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5037 题意:一只青蛙从0跳到m,最远能跳l,只能在石头上跳。给出一开始n个石头的位置,我们是上帝,能放无数个石头,我们的任务是找到一种放石头的方式使青蛙要跳最多下才能到达m。 题记:这题关键在于要想到青蛙在l+1的距离下跳两次,这样青蛙能跳的距离最短。 例如青蛙在0,一次能跳五格,我们把石头放在1、6...

moyangxian 204

多租户Saas架构设计分析(基础篇)

本篇先给大家介绍一下相关的概念和常见问题。 实践篇链接:https://blog.youkuaiyun.com/haponchang/article/details/104246317 SaaS简介 SaaS是Software-as-a-Service(软件即服务)的简称,“软件即服务”?是不是有点拗口?其实你就理解成为“按需租用别人提供的软件服务”就可以了,它是一种软件交付模式。...

haponchang的博客 1万+

针对中文CLIP模型训练失效的解决方案记录

解决了中文CLIP模型无法正确训练的问题

weixin_45906434的博客 1621

hdu 5037 Frog(贪心)

题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5037 题解:为了让放的石头有意义肯定是没l+1的距离放2个也就是说假设现在位置为pos那么在pos+1放一个在pos+l+1放一个这样就需要跳两次。于是这题要考虑的就是当前位置和前一个石头放的位置因为如果前一个石头的位置到a[i]的距离小于等于l那么当前位置就不能被走到。...

awow80285的博客 206

如何利用GMS构建地下水数值模拟模型?

第一步:点图中三维网格的图标然后点Grid→Create Grid这个界面是用于创建一个有限差分网格的设置窗口。它允许你定义网格在三维空间中的范围、分辨率以及其他相关属性。这个界面提供了一个直观的方式来定义一个三维的有限差分网格,你需要指定每个维度上的范围、划分的单元格数量,以及一些控制单元格大小分布和网格方向的参数。这个网格通常会被用于数值模拟,例如地下水流模拟。在点击 "OK" 之前,请务必仔细检查所有参数是否符合你的建模需求。1. X-Dimension (X 轴维度)2. Y-Dimension (

weixin_44259522的博客 2093

hdu 5037 Frog(高效)

题目链接:hdu 5037 Frog 题目大意:给定N,M,L,表示有一只条宽为M的河,青蛙要从0跳到M,青蛙的最大跳跃能力为L,现在已经存在了N块石头,现在要放任意数量的石头,使得说青蛙需要用最多的步数跳到M。 解题思路:维护两个指针,pos表示青蛙当前的位置,mv表示青蛙在前一个位置能跳到的最远位置。然后周期L+1的长度可以让青蛙需要跳两次。但注意每一段长度的最后一个周期需要特判,

不慌不忙、不急不躁 1279

【WRF数据准备】土地利用数据-MODIS MCD12Q1数据下载及制备

【WRF数据准备】MODIS静态地理数据下载及制备

WW、forever的博客 3413

Unity内存优化:从崩溃到流畅的终极指南

Emscripten 为 WebAssembly 设定的内存布局(Static、Stack 和 Heap)为开发者提供了一个清晰的内存管理框架。理解这些内存区域的特性和用途,有助于开发者在 WebGL 项目中更有效地管理内存,优化性能,减少内存使用峰值。在 Unity WebGL 中,Dynamic Memory 是 UnityHeap 的主要组成部分,负责存储游戏运行时所需的各种数据。Dynamic Memory 主要分为两类:Managed Memory 和 Native Memory。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 358

HDU——5037 Frog

题意:聪明的青蛙过河,河宽M,qingwa

u014086857的专栏 567

【硬刚Hive】HIVE基础(20):Hive函数(9) over 窗口函数

欢迎关注博客主页:微信搜:import_bigdata,大数据领域硬核原创作者_王知无(import_bigdata)_优快云博客 欢迎点赞、收藏、留言 ,欢迎留言交流!本文由【王知无】原创,首发于 优快云博客!本文首发优快云论坛,未经过官方和本人允许,严禁转载! 本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的Hive部分补充。 hive窗口函数语法 在前言中我们已经说了avg()、sum()、max()、min()是分析函数,而over()才是窗..

微信搜:import_bigdata,大数据领域硬核原创作者 888

hdu5037Frog 贪心

//一只青蛙从0跳到m //每次只能跳(0~L)的长度,它只能在石头上停留 //在[0,m]之间有n个石头 , //问在哪些地方添加石头能使得其青蛙能从0跳到m且 //跳的步数最大 , 青蛙采用最优策略 //n<=2e5 , m ,l<= 1e9 //贪心策略:对于青蛙到了位置now其下一个石头如果能 //跳到 , 那么跳到能到达的最远的石头 //如果不能跳到 , 那么在其pre+l+1添加一块

ijbuhv的专栏 669

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

hdu 5037——Frog

题意:河宽为m,里面有n个石头,青蛙一次跳的长度是l,青蛙想跳过

char256 641

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

hdu5037 Frog --- 贪心

有一只萌萌哒小青蛙要过河,过河路线可以看成一个数轴,起点为0,终点为m。 小青蛙不会游泳,只能跳到数轴上一些有树桩的点直到跳过河,小青蛙一次能跳的最大距离是L。 小青蛙想用尽量少的步数过河,而你想让他跳尽量多的次数。 现在你可以向数轴上一些位置添加树桩,使青蛙顺利过河,并达到你的目的。青蛙是以最佳策略过河的。 纠结的题意。。 首先分析一下青蛙的最佳策略,一定是每次跳的越远越好,

Unknown 1789

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

hdu5037 Frog 贪心

Frog Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 754    Accepted Submission(s): 185 Problem Description Once upon a time, there i

vickey 1045

hdu 5037 Frog 【贪心】

点击打开链接 题意:            一个青蛙过河,他它跳跃范围是k (k范围内能跳到任何地方),它不能游泳,只能通过河上面的木桩,可以看作是线性的,抵达m起点是0,           你首先一定要让它能过和,然后让他条约次数最大。 题解:          很明显,在他的跳跃范围内,他一定会选择一个最远的点来跳跃。如果这个范围内有石头,你就不应该添加石头,你在改石头

zoro_n的博客 381

HDU 5037 Frog(模拟跳石头的过程)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5037 AC代码:

风尘_浪子 1013

hdu 5037 Frog 贪心

hdu 5037 Frog 贪心 一只青蛙要过河,河看成是一个一维坐标,0代表青蛙的位置,m代表河对岸的位置,河中间有石头,青蛙每次最多走过l个石头,即如果当前在cur位置,那么最多跳到cur+l的位置,当然青蛙每次只能跳到石头上,河中本来有石头,可能需要添加石头才能确保青蛙可以跳到河对岸,你的任务是添加一些石头,保证青蛙跳到河对岸,但尽可能让青蛙跳的次数多。 假定青蛙当前的位置是cur,前一

gwq5210的专栏 570
上一篇: hdu 5029 Relief grain
下一篇: hdu 5035 Delivery
squee_spoon
博客等级 码龄14年 61粉丝 455原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值