题意:

从家到公司,一共 nnn 个红绿灯,一共 n+1n+1n+1 段路。你可以设置每一个红绿灯的开始时间,且每个红绿灯的绿灯时间+红灯时间一致。对于每一种设置,从家出发的时间都任意,因此一定存在一个最坏的情况。先要求输出最坏情况的最小值为多少。(1≤n≤1000)(1\leq n\leq 1000)(1≤n≤1000)


思路:

比赛时无头绪。题意也看了半天才明白。

比赛后知道了解法。答案即为所有路上时间之和加上最大的红灯时间。

但是为什么呢?

其实这是一道构造问题,构造问题的关键在于限制条件。

我们通过调整每个红绿灯的开始时间,使得通过第 iii 个红绿灯之后即可立刻到达第 i+1i+1i+1 个红绿灯。因此我们最多等待一个红绿灯,接下来即可畅通无阻。因此最坏情况就是加上红绿灯的最大值。

但是这就是答案吗?肯定是。因为无论你怎么设置,由于出发时间任意,我都一定可以让你在某个红绿灯处完整等完这个红绿灯。所以只用等最大的红绿灯就是最后的答案。


总结:

一个构造思维题通过题意的复杂性伪装成了一个或暴力或 DPDPDP 或贪心的问题,迷惑选手。

这题一个很关键的地方在于你可以任意设置红绿灯的开始时间,任意设置!任意设置!任意设置!如果枚举所有的设置必然不可能,因此可以考虑先猜一种比较好求解的设置,然后求最坏情况。

构造问题主要要求就是构造的一定要特殊,好求。将题目初始的一大堆变量全部干掉。

因此总结一下,解决此题,主要思考方法应该是:

  1. 小数据开始考虑,一个红绿灯,两个,三个…从小数据中找规律。
  2. 大胆构造特殊情况,将原来的 nnn 个变量全都限制住。在特殊情况下考虑答案,在反证这个构造就是最优答案。

构造思维题继续加油!


代码:

#include <bits/stdc++.h>
#define __ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define rep(i,a,b) for(int i = a; i <= b; i++)
#define LOG1(x1,x2) cout << x1 << ": " << x2 << endl;
#define LOG2(x1,x2,y1,y2) cout << x1 << ": " << x2 << " , " << y1 << ": " << y2 << endl;
#define LOG3(x1,x2,y1,y2,z1,z2) cout << x1 << ": " << x2 << " , " << y1 << ": " << y2 << " , " << z1 << ": " << z2 << endl;
typedef long long ll;
typedef double db;
const db EPS = 1e-9;
using namespace std;int n;
db sum;int main()
{int _; scanf("%d",&_);rep(Ca,1,_){scanf("%d",&n);sum = 0;rep(i,1,n+1){db tp; scanf("%lf",&tp);sum += tp;}db maxn = 0;rep(i,1,n){db tp1,tp2; scanf("%lf%lf",&tp1,&tp2);maxn = max(maxn,tp2);}sum += maxn;printf("Case #%d: %.9f\n",Ca,sum);}return 0;
}

【Gym-101775 C】Traffic Light【思维】相关推荐

  1. IntelliLight: a Reinforcement Learning Approach for Intelligent Traffic Light Control 论文阅读

    IntelliLight 全文脉络 概述 1.本文贡献 1)Experiments with real traffic data. 2)Interpretations of the policy. 3 ...

  2. SystemVerilog例子---traffic light

    SystemVerilog例子---traffic light module traffic_light(output logic green_light,yellow_light,red_light ...

  3. 读书笔记-Coordinated Deep Reinforcement Learners for Traffic Light Control

    Coordinated Deep Reinforcement Learners for Traffic Light Control 本文研究了交通灯的学习控制策略.在交通灯控制问题引入了一种新的奖励函 ...

  4. Traffic light control using deep policy-gradient and value-function-based reinforcement learning

     ISSN 1751-956X 作者:Seyed Sajad Mousavi1 , Michael Schukat1, Enda Howley 黄生词 蓝牛句 绿公式 红生涩 Abstract: Re ...

  5. A Deep Reinforcement Learning Network for Traffic Light Cycle Control 【论文阅读】

    文章脉络[Dueling DQN+Prioritized Memory ,2019年TVT] 1.贡献 1)首次将dueling network,target network,double DQN 和 ...

  6. H - Great Cells Gym - 101194H(数学推导/思维)

    VJ地址 ps:在训练时写这道题 差点被送走了 我们可以发现给出的公式可以转化这样 这个就不说了,就是k^(nm)所以排列的可能; 然后我们要重点观察这个公式,可以发现g * Ag(方案数 * goo ...

  7. SGU traffic light

    占位置.. 转载于:https://www.cnblogs.com/usedrosee/p/4669358.html

  8. 【ZOJ - 4020 】Traffic Light (bfs,分层图)

    题干: n*m矩阵a.若a[i][j]==1则可以往左右走,若a[i][j]==0 则可以往上下走. 每一秒可以按上述规则移动,并且每秒钟矩阵所有的值翻转. n*m<=1e5.问从(sx,sy) ...

  9. Gym - 102394I Interesting Permutation(思维)

    题目链接:https://vjudge.net/contest/398708#problem/I DreamGrid has an interesting permutation of 1,2,-,n ...

  10. Traffic Light

    题目大意 给定一个循环播放的红绿灯标识字段s,红绿灯一秒变一个颜色,只有三种颜色,红绿黄,现在给出你所在时刻的红绿灯的颜色c,但是你并不知道你所处的具体时间点,求从任意一个颜色是c的点出发后最多经过t ...

最新文章

  1. 后盾网lavarel视频项目---lavarel多表关联一对多操作实例
  2. Firefox 网络调试工具
  3. (转载)FPGA基础知识------PS/2基础知识
  4. matlab 中括号
  5. 【ajax】Ajax $().load() 禁用缓存
  6. Android开发时的多点触控是如何实现的?
  7. Hibernate中一二级缓存使用详解
  8. paip.提高用户体验----增添开始菜单类似360小助手按钮总结
  9. 树中两个节点的最低公共祖先
  10. python中init是什么_详细解读Python中的__init__()方法
  11. FAQ(常见问题解答)
  12. 流量卡之家:物联网系统解决交通拥堵 全面开启未来绿色出行
  13. HTTPS(一) -- 基础知识(密钥、对称加密、非对称加密、数字签名、数字证书)
  14. 无油螺杆鼓风机-市场现状及未来发展趋势
  15. android 模拟器 横排,超强横向全面评测!且待揭开安卓模拟器迷雾重重
  16. 霍夫变换c语言程序,霍夫变换 | Cauthy's Blog
  17. 数组与链表的优缺点和区别
  18. 岭回归、LASSO回归(包括公式推导)
  19. stm32串口自定义协议接收一串十六进制数据(将其中两个字节转化为十进制数据)+部分串口基础知识
  20. KITTI数据集去除camera生成bag包(kitti2bag)

热门文章

  1. 敏捷个人A1组第三次练习讨论 你是如何管理你的精力的?
  2. 快餐店选址指南--转
  3. dispatch js实现_js实现对象自定义事件,触发,on监听事件的方式
  4. python 导入excel至oracle,Python读取Excel数据并将其导入Oracle数据库,导入到
  5. r语言集合补集_极速统计教程之八 | 概率和集合
  6. python37安装失败怎么搞_Linux 安装Python37
  7. matlab 频率分布直方图_小葱品题丨高考必考内容—频率分布直方图?!教你三步得满分!...
  8. python脚本画pie饼图_小白学Python(11)——pyecharts,绘制饼图 Pie
  9. python遍历链表_python实现双向循环链表
  10. SLAM--单目尺度漂移(相似变换群Sim3)