题目描述

某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少)。老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯。

为了给村里节省电费,老张记录下了每盏路灯的位置和功率,他每次关灯时也都是尽快地去关,但是老张不知道怎样去关灯才能够最节省电。他每天都是在天亮时首先关掉自己所处位置的路灯,然后可以向左也可以向右去关灯。开始他以为先算一下左边路灯的总功率再算一下右边路灯的总功率,然后选择先关掉功率大的一边,再回过头来关掉另一边的路灯,而事实并非如此,因为在关的过程中适当地调头有可能会更省一些。

现在已知老张走的速度为1m/s,每个路灯的位置(是一个整数,即距路线起点的距离,单位:m)、功率(W),老张关灯所用的时间很短而可以忽略不计。

请你为老张编一程序来安排关灯的顺序,使从老张开始关灯时刻算起所有灯消耗电最少(灯关掉后便不再消耗电了)。

输入输出格式

输入格式:
文件第一行是两个数字n(0

#include<iostream>
#include<cstdio>
using namespace std;
struct cc{int num,p;
}a[55];
int n,k;
int ans=1e9;
void dfs(int x,int l,int r,int sum,int cnt,int now)//向左搜,向右搜
{if(sum>ans)//剪枝{return;}if(cnt==n)//全都关完了{ans=min(ans,sum);return;}if(l>=1){dfs(l,l-1,r,sum+(a[x].num-a[l].num)*now,cnt+1,now-a[l].p);}if(r<=n){dfs(r,l,r+1,sum+(a[r].num-a[x].num)*now,cnt+1,now-a[r].p);}
}
int main()
{int sum=0;scanf("%d%d",&n,&k);for(int i=1;i<=n;i++){scanf("%d%d",&a[i].num,&a[i].p);sum+=a[i].p;}dfs(k,k-1,k+1,0,1,sum-a[k].p);printf("%d",ans);return 0;
}

洛谷 P1220 关路灯(DFS)相关推荐

  1. 【区间dp】洛谷 P1220 关路灯

    P1220 关路灯 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 有一排路灯,老张有一个初始位置,他要把所有路灯都关掉.每个路灯都有各自的功率和坐标,问你关掉所有路灯所消耗 ...

  2. 洛谷P1220 关路灯(区间dp)

    关路灯 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯.为了给村里节 ...

  3. [洛谷]P1220 关路灯 (#区间dp)

    题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯. 为了给村 ...

  4. 洛谷 P1220 关路灯 [动态规划做法]

    题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯. 为了给村 ...

  5. 洛谷 P1433 吃奶酪 dfs剪枝

    洛谷 P1433 吃奶酪 dfs剪枝 题解: dfs+剪枝,不过现在好像被卡时间了,第10个点过不了.. 代码如下: #include<iostream> #include<algo ...

  6. 四川2008省选·洛谷·奖励关

    初见安~这里是传送门:洛谷P2473 题目描述 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出 ...

  7. luogu P1220 关路灯

    题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯. 为了给村 ...

  8. P1220 关路灯 (区间dp)

    题目链接 题解: 在关完路灯 i~j 时,老张要么在 i 处,要么在 j 处. 1. 要么是在关完 j 路灯后再回头关 i 路灯的,要么是在关完第 i+1 盏后继续前进关掉 i 的,在这两种情况中选择 ...

  9. 洛谷 - P1433 - 吃奶酪 - dfs

    https://www.luogu.org/problemnew/show/P1433 并不是每一个求最短距离就是bfs,这个肯定是dfs. 直接计算15!可以知道枚举必定超时,但是! 我们dfs非常 ...

最新文章

  1. 登录界面的滑动_【提醒】电子税务局登录方式有变化! 8月31日关闭“原方式登录”...
  2. ICML 2020 | Google提出最强生成式摘要预训练模型——天马
  3. js确保正确this的几种写法
  4. Java注释:探究和解释
  5. Cloud一分钟 | 谷歌退出美国防部云计算竞标;网络黑灰产业已近千亿,个人信息泄露是源头...
  6. 学习笔记之lvm基本应用及其扩展和缩减实现
  7. Map集合-根据宠物昵称查找宠物
  8. efsframe java_EfsFrame(java开发框架)
  9. Discuz插件,批量Discuz采集发布插件
  10. 商淘软件S2B2C供应链系统 支持多种电商模式
  11. 神经网络过拟合解决方法,神经网络过拟合现象
  12. 【安全牛】一起来打靶第一周笔记
  13. 微信小程序系列4——传值详解
  14. 用Word转换向导批量转换Word文档(转)
  15. Android通过MediaStore获取音乐文件信息的方法
  16. 集赞活动朋友圈案例 餐饮店集赞活动方案 什么叫做集赞拓客?
  17. 20220210纪中集训总结
  18. androd11 编译 Manually written binder interfaces are considered error prone and frequently have bugs.
  19. label标签中的for属性
  20. Android手摸手实现一个画板功能(一)——View的拖拽

热门文章

  1. 详尽Netty(三):Channel
  2. 智能洗地机什么牌子好?智能洗地机排行
  3. 【 MATLAB 】conj 函数介绍(复共轭)
  4. java将excel文件转换成txt格式文件
  5. 从零搭建webpack的react开发/生产环境
  6. 基于 MATLAB 的数字信号发生器
  7. 《UNIX编程艺术》读书笔记
  8. 网站突然报错:502 Bad Gateway
  9. 10个前端动画库让你的交互更加炫酷
  10. 树莓派4B+配件+Intel神经棒2代购机指南