C -- 图论你先敲完模板

Time Limit:5s Memory Limit:256MByte

Submissions:660Solved:160

DESCRIPTION

今天HHHH在操场上跑步,HHHH作为一个爱运动的人,肯定会想方设法把跑步所消耗的能量减到最少.

现在这个操场上有nn个可以休息的点,他们的坐标分别为x1,x2...xn(xi≤xi+1)x1,x2...xn(xi≤xi+1),HHHH刚开始在 x1x1 ,并且他只能在这些点休息,在中途不能停下来,否则会因为旁边的音浪太强而被晃到.

如果HHHH连续跑一段长度为ll的距离,那么他将会消耗2l+a2l+a的能量(aa为HHHH的可爱值)

现在给你这些点的坐标,请帮HHHH计算他跑到xnxn点所需要消耗的能量最少是多少.

INPUT
第一行是一个整数T(1≤T≤10)T(1≤T≤10),表示有TT组数据对于每组数据输入一行2个整数n,a (1≤n≤105,1≤a≤106)n,a (1≤n≤105,1≤a≤106)表示总共有nn个休息点,HHHH的可爱值为aa.接着一行nn个数x1,x2...,xn(0≤xi≤3×106,0≤xi+1−xi≤30)x1,x2...,xn(0≤xi≤3×106,0≤xi+1−xi≤30),表示点的位置.
OUTPUT
每组数据输出一行,一个整数,表示最小需要花费的体力
SAMPLE INPUT
2
3 2
3 5 7
3 10
3 5 7

SAMPLE OUTPUT
12
26

HINT
对于第一组样例,最少的体力消耗是先从3跑到5,消耗6点体力,再从5跑到7,消耗6点体力,共12点 对于第二组样例,最少的体力消耗是直接从3跑到7,消耗26点体力.
SOLUTION
“玲珑杯”ACM比赛 Round #18

思路:

很简单的dp,设定dp【i】表示走到点i的最小花费,那么对应转移:

dp【i】=min(dp【i】,dp【j】+花费)【1<=j<=i】,直接跑肯定是要超时而且数据要爆long long int的,

观察到数据范围xi-xi-1<=30. 而且a<=1e6.

所以我们只要保证x【i】-x【j】<=40以内的都可以转移一下,既不会爆long long ,又稳妥。

否则就不用转移了,因为肯定不能通过更远的点来得到更优。

Ac代码:

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long int
ll dp[150000];
ll x[150000];
ll poww[150];
void init()
{memset(poww,0,sizeof(poww));poww[1]=1;for(int i=2;i<=40;i++){poww[i]=poww[i-1]*2;}
}
int main()
{init();int t;scanf("%d",&t);while(t--){int n;ll a;scanf("%d%lld",&n,&a);for(int i=1;i<=n;i++)scanf("%lld",&x[i]);dp[1]=0;for(int i=2;i<=n;i++){dp[i]=1000000000000000000;ll Len=0;for(int j=i-1;j>=1;j--){Len+=x[j+1]-x[j];if(Len<=40){ll tmp=2;dp[i]=min(dp[i],dp[j]+poww[Len]*tmp+a);}else break;}}printf("%lld\n",dp[n]);}
}

“玲珑杯”ACM比赛 Round #18 C -- 图论你先敲完模板【Dp】相关推荐

  1. “玲珑杯”ACM比赛 Round #18 ABC题解

    A -- 计算几何你瞎暴力 Time Limit:5s Memory Limit:256MByte Submissions:1597Solved:301 DESCRIPTION 今天HHHH考完了期末 ...

  2. 玲珑杯”ACM比赛 Round #8-D XJT Loves Boggle(dfs)

    记录一个菜逼的成长.. DESCRIPTION Boggle is a word game designed by Allan Turoff and distributed by Hasbro. It ...

  3. “玲珑杯”ACM比赛 Round #21-C-战舰萝莉(线段树区间更新)

    "玲珑杯"ACM比赛 Round #21 Start Time:2017-09-23 17:00:00 End Time:2017-09-23 19:30:00 Refresh T ...

  4. 玲珑杯”ACM比赛 Round #15 D 咸鱼商店【二分+01背包】

    题目链接:http://www.ifrog.cc/acm/problem/1125 题目大意:中文题目,题意请仔细看题面. 解题思路:二分+01背包     01背包的最终结果与其中的顺序无关,我们要 ...

  5. lonlifeOJ1152 “玲珑杯”ACM比赛 Round #19 概率DP

    E -- Expected value of the expression DESCRIPTION You are given an expression: A0O1A1O2A2⋯OnAnA0O1A1 ...

  6. “玲珑杯”ACM比赛 Round #22 E【贪心】

    题目: http://www.ifrog.cc/acm/problem/1171?contest=1024&no=4 题意: 输入一个字符串,将他重新排列,使得重排之后的字符串的最小表示法,最 ...

  7. “玲珑杯”ACM比赛 Round #24: C. この戦いが終わったら(BFS+bitset优化暴力)

    C -- この戦いが終わったら 给你一个无向图,每次查询的时候给一堆二元组(xi,yi) 求图中有多少个点u与至少一个这次询问给出的二元组(xi,yi)满足dist(u,xi)<=yi,dist ...

  8. “玲珑杯”ACM比赛 Round #19

    A -- A simple math problem Time Limit:2s Memory Limit:128MByte Submissions:1599Solved:270 DESCRIPTIO ...

  9. “玲珑杯”ACM比赛 Round #4

    运气不错有个抱枕. 1046 - chess play 题意: 一个n*m的数组,初始全部是'.',然后3种操作,把一个位置变成'w',或者把一个位置变成'r',或者交换两行. 思路: vector的 ...

最新文章

  1. 癌症治疗新曙光:AI助力科学家更好地观察人类活体细胞
  2. solr与mysql数据同步的方案
  3. 修复efi引导的win7
  4. mysql远程连接数据库的二种方法_mysql 远程连接数据库的二种方法
  5. JEPLUS学习心得之请假单功能的完成——JEPLUS软件快速开发平台
  6. Nginx:几种负载均衡调度策略配置
  7. linux下c语言按q退出_Linux C编程之一:Linux下C语言的开发环境
  8. 1.1-1.5-vim编辑器
  9. ios多线程 -- NSOperation 简介
  10. json qbytearray 串 转_JSON数据采集网关,json转Modbus RTU串IO口RS485转4~20mA边缘计算智能终端...
  11. diskfileitemfactory 需要的包_浅析电动汽车电池包低压线束设计及制造
  12. 《Go语言程序设计》 读书笔记 (八) 包
  13. 总结---JavaScript数组
  14. php框架 tp laravel,TP框架和Laravel框架的区别是什么
  15. 【HAVENT原创】Salesforce (JSforce) 调用示例
  16. 一文搞定java面试相近词的辨析
  17. 【数学】多元函数微分学(宇哥笔记)
  18. 新edge保持百度账号登录
  19. 2019辽宁公务员考试:申论突破80+学习计划第二步
  20. 【Unity3D开发小游戏】《青蛙过河》Unity开发教程

热门文章

  1. EduCoder-Web程序设计基础-html5— 创建文本区域-第1关:textarea控件相关概念
  2. TextureView/SurfaceView/GLSurfaceView/VideoView渲染视频(点播播放器)
  3. 基于28335实现的旋变软解码 1、在0-360°的范围内,与TI方案的偏差非常小,平均偏差最大为0.0009弧度左右
  4. 可调电阻封装图_嵌入式硬件电路杂谈(二)贴片电阻选用
  5. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第二十三章 PS端DP的使用
  6. Ubuntu安装搜狗输入法以及入坑和填坑教程(多图!全!)
  7. 矩形脉冲信号合成_矩形脉冲信号的和成实验报告.doc
  8. TTL电平与RS232电平的区别
  9. 【工业互联网】工业互联网平台建设的四个基本问题
  10. 微信小程序开发常见问题FAQ之四